windows-nt/Source/XPSP1/NT/public/internal/ds/inc/crypto/rc4.h

54 lines
1.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifndef __RC4_H__
#define __RC4_H__
#ifndef RSA32API
#define RSA32API __stdcall
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Key structure */
#if defined(_WIN64) && !defined(MIDL_PASS)
__declspec(align(8))
#endif
typedef struct RC4_KEYSTRUCT
{
unsigned char S[256]; /* State table */
unsigned char i,j; /* Indices */
} RC4_KEYSTRUCT;
/* rc4_key()
*
* Generate the key control structure. Key can be any size.
*
* Parameters:
* Key A KEYSTRUCT structure that will be initialized.
* dwLen Size of the key, in bytes.
* pbKey Pointer to the key.
*
* MTS: Assumes pKS is locked against simultaneous use.
*/
void RSA32API rc4_key(struct RC4_KEYSTRUCT *pKS, unsigned int dwLen, unsigned char *pbKey);
/* rc4()
*
* Performs the actual encryption
*
* Parameters:
*
* pKS Pointer to the KEYSTRUCT created using rc4_key().
* dwLen Size of buffer, in bytes.
* pbuf Buffer to be encrypted.
*
* MTS: Assumes pKS is locked against simultaneous use.
*/
void RSA32API rc4(struct RC4_KEYSTRUCT *pKS, unsigned int dwLen, unsigned char *pbuf);
#ifdef __cplusplus
}
#endif
#endif // __RC4_H__