FreeRDP
custom-crypto.h File Reference
#include <winpr/winpr.h>
#include <winpr/wtypes.h>
#include <winpr/error.h>
This graph shows which files directly or indirectly include this file:

Macros

#define WINPR_MD4_DIGEST_LENGTH   16
 
#define WINPR_MD5_DIGEST_LENGTH   16
 
#define WINPR_SHA1_DIGEST_LENGTH   20
 
#define WINPR_SHA224_DIGEST_LENGTH   28
 
#define WINPR_SHA256_DIGEST_LENGTH   32
 
#define WINPR_SHA384_DIGEST_LENGTH   48
 
#define WINPR_SHA512_DIGEST_LENGTH   64
 
#define WINPR_RIPEMD160_DIGEST_LENGTH   20
 
#define WINPR_SHA3_224_DIGEST_LENGTH   28
 
#define WINPR_SHA3_256_DIGEST_LENGTH   32
 
#define WINPR_SHA3_384_DIGEST_LENGTH   48
 
#define WINPR_SHA3_512_DIGEST_LENGTH   64
 
#define WINPR_SHAKE128_DIGEST_LENGTH   16
 
#define WINPR_SHAKE256_DIGEST_LENGTH   32
 
#define WINPR_AES_BLOCK_SIZE   16
 
#define WINPR_ENCRYPT   0
 
#define WINPR_DECRYPT   1
 
#define WINPR_CIPHER_NONE   0
 
#define WINPR_CIPHER_NULL   1
 
#define WINPR_CIPHER_AES_128_ECB   2
 
#define WINPR_CIPHER_AES_192_ECB   3
 
#define WINPR_CIPHER_AES_256_ECB   4
 
#define WINPR_CIPHER_AES_128_CBC   5
 
#define WINPR_CIPHER_AES_192_CBC   6
 
#define WINPR_CIPHER_AES_256_CBC   7
 
#define WINPR_CIPHER_AES_128_CFB128   8
 
#define WINPR_CIPHER_AES_192_CFB128   9
 
#define WINPR_CIPHER_AES_256_CFB128   10
 
#define WINPR_CIPHER_AES_128_CTR   11
 
#define WINPR_CIPHER_AES_192_CTR   12
 
#define WINPR_CIPHER_AES_256_CTR   13
 
#define WINPR_CIPHER_AES_128_GCM   14
 
#define WINPR_CIPHER_AES_192_GCM   15
 
#define WINPR_CIPHER_AES_256_GCM   16
 
#define WINPR_CIPHER_CAMELLIA_128_ECB   17
 
#define WINPR_CIPHER_CAMELLIA_192_ECB   18
 
#define WINPR_CIPHER_CAMELLIA_256_ECB   19
 
#define WINPR_CIPHER_CAMELLIA_128_CBC   20
 
#define WINPR_CIPHER_CAMELLIA_192_CBC   21
 
#define WINPR_CIPHER_CAMELLIA_256_CBC   22
 
#define WINPR_CIPHER_CAMELLIA_128_CFB128   23
 
#define WINPR_CIPHER_CAMELLIA_192_CFB128   24
 
#define WINPR_CIPHER_CAMELLIA_256_CFB128   25
 
#define WINPR_CIPHER_CAMELLIA_128_CTR   26
 
#define WINPR_CIPHER_CAMELLIA_192_CTR   27
 
#define WINPR_CIPHER_CAMELLIA_256_CTR   28
 
#define WINPR_CIPHER_CAMELLIA_128_GCM   29
 
#define WINPR_CIPHER_CAMELLIA_192_GCM   30
 
#define WINPR_CIPHER_CAMELLIA_256_GCM   31
 
#define WINPR_CIPHER_DES_ECB   32
 
#define WINPR_CIPHER_DES_CBC   33
 
#define WINPR_CIPHER_DES_EDE_ECB   34
 
#define WINPR_CIPHER_DES_EDE_CBC   35
 
#define WINPR_CIPHER_DES_EDE3_ECB   36
 
#define WINPR_CIPHER_DES_EDE3_CBC   37
 
#define WINPR_CIPHER_BLOWFISH_ECB   38
 
#define WINPR_CIPHER_BLOWFISH_CBC   39
 
#define WINPR_CIPHER_BLOWFISH_CFB64   40
 
#define WINPR_CIPHER_BLOWFISH_CTR   41
 
#define WINPR_CIPHER_ARC4_128   42
 
#define WINPR_CIPHER_AES_128_CCM   43
 
#define WINPR_CIPHER_AES_192_CCM   44
 
#define WINPR_CIPHER_AES_256_CCM   45
 
#define WINPR_CIPHER_CAMELLIA_128_CCM   46
 
#define WINPR_CIPHER_CAMELLIA_192_CCM   47
 
#define WINPR_CIPHER_CAMELLIA_256_CCM   48
 

Typedefs

typedef struct winpr_rc4_ctx_private_st WINPR_RC4_CTX
 
typedef struct winpr_cipher_ctx_private_st WINPR_CIPHER_CTX
 

Enumerations

enum  WINPR_MD_TYPE {
  WINPR_MD_NONE = 0 , WINPR_MD_MD2 = 1 , WINPR_MD_MD4 = 2 , WINPR_MD_MD5 = 3 ,
  WINPR_MD_SHA1 = 4 , WINPR_MD_SHA224 = 5 , WINPR_MD_SHA256 = 6 , WINPR_MD_SHA384 = 7 ,
  WINPR_MD_SHA512 = 8 , WINPR_MD_RIPEMD160 = 9 , WINPR_MD_SHA3_224 = 10 , WINPR_MD_SHA3_256 = 11 ,
  WINPR_MD_SHA3_384 = 12 , WINPR_MD_SHA3_512 = 13 , WINPR_MD_SHAKE128 = 14 , WINPR_MD_SHAKE256 = 15
}
 

Functions

WINPR_API WINPR_MD_TYPE winpr_md_type_from_string (const char *name)
 
WINPR_API const char * winpr_md_type_to_string (WINPR_MD_TYPE md)
 
WINPR_API WINPR_HMAC_CTX * winpr_HMAC_New (void)
 
WINPR_API BOOL winpr_HMAC_Init (WINPR_HMAC_CTX *ctx, WINPR_MD_TYPE md, const BYTE *key, size_t keylen)
 
WINPR_API BOOL winpr_HMAC_Update (WINPR_HMAC_CTX *ctx, const BYTE *input, size_t ilen)
 
WINPR_API BOOL winpr_HMAC_Final (WINPR_HMAC_CTX *ctx, BYTE *output, size_t ilen)
 
WINPR_API void winpr_HMAC_Free (WINPR_HMAC_CTX *ctx)
 
WINPR_API BOOL winpr_HMAC (WINPR_MD_TYPE md, const BYTE *key, size_t keylen, const BYTE *input, size_t ilen, BYTE *output, size_t olen)
 
WINPR_API WINPR_DIGEST_CTX * winpr_Digest_New (void)
 
WINPR_API BOOL winpr_Digest_Init_Allow_FIPS (WINPR_DIGEST_CTX *ctx, WINPR_MD_TYPE md)
 
WINPR_API BOOL winpr_Digest_Init (WINPR_DIGEST_CTX *ctx, WINPR_MD_TYPE md)
 
WINPR_API BOOL winpr_Digest_Update (WINPR_DIGEST_CTX *ctx, const BYTE *input, size_t ilen)
 
WINPR_API BOOL winpr_Digest_Final (WINPR_DIGEST_CTX *ctx, BYTE *output, size_t ilen)
 
WINPR_API void winpr_Digest_Free (WINPR_DIGEST_CTX *ctx)
 
WINPR_API BOOL winpr_Digest_Allow_FIPS (WINPR_MD_TYPE md, const BYTE *input, size_t ilen, BYTE *output, size_t olen)
 
WINPR_API BOOL winpr_Digest (WINPR_MD_TYPE md, const BYTE *input, size_t ilen, BYTE *output, size_t olen)
 
WINPR_API int winpr_RAND (void *output, size_t len)
 
WINPR_API int winpr_RAND_pseudo (void *output, size_t len)
 
WINPR_API WINPR_RC4_CTXwinpr_RC4_New_Allow_FIPS (const BYTE *key, size_t keylen)
 
WINPR_API WINPR_RC4_CTXwinpr_RC4_New (const BYTE *key, size_t keylen)
 
WINPR_API BOOL winpr_RC4_Update (WINPR_RC4_CTX *ctx, size_t length, const BYTE *input, BYTE *output)
 
WINPR_API void winpr_RC4_Free (WINPR_RC4_CTX *ctx)
 
WINPR_API WINPR_CIPHER_CTXwinpr_Cipher_New (int cipher, int op, const BYTE *key, const BYTE *iv)
 
WINPR_API BOOL winpr_Cipher_Update (WINPR_CIPHER_CTX *ctx, const BYTE *input, size_t ilen, BYTE *output, size_t *olen)
 
WINPR_API BOOL winpr_Cipher_Final (WINPR_CIPHER_CTX *ctx, BYTE *output, size_t *olen)
 
WINPR_API void winpr_Cipher_Free (WINPR_CIPHER_CTX *ctx)
 
WINPR_API int winpr_Cipher_BytesToKey (int cipher, int md, const BYTE *salt, const BYTE *data, int datal, int count, BYTE *key, BYTE *iv)
 

Macro Definition Documentation

◆ WINPR_AES_BLOCK_SIZE

#define WINPR_AES_BLOCK_SIZE   16

Generic Cipher API

◆ WINPR_CIPHER_AES_128_CBC

#define WINPR_CIPHER_AES_128_CBC   5

◆ WINPR_CIPHER_AES_128_CCM

#define WINPR_CIPHER_AES_128_CCM   43

◆ WINPR_CIPHER_AES_128_CFB128

#define WINPR_CIPHER_AES_128_CFB128   8

◆ WINPR_CIPHER_AES_128_CTR

#define WINPR_CIPHER_AES_128_CTR   11

◆ WINPR_CIPHER_AES_128_ECB

#define WINPR_CIPHER_AES_128_ECB   2

◆ WINPR_CIPHER_AES_128_GCM

#define WINPR_CIPHER_AES_128_GCM   14

◆ WINPR_CIPHER_AES_192_CBC

#define WINPR_CIPHER_AES_192_CBC   6

◆ WINPR_CIPHER_AES_192_CCM

#define WINPR_CIPHER_AES_192_CCM   44

◆ WINPR_CIPHER_AES_192_CFB128

#define WINPR_CIPHER_AES_192_CFB128   9

◆ WINPR_CIPHER_AES_192_CTR

#define WINPR_CIPHER_AES_192_CTR   12

◆ WINPR_CIPHER_AES_192_ECB

#define WINPR_CIPHER_AES_192_ECB   3

◆ WINPR_CIPHER_AES_192_GCM

#define WINPR_CIPHER_AES_192_GCM   15

◆ WINPR_CIPHER_AES_256_CBC

#define WINPR_CIPHER_AES_256_CBC   7

◆ WINPR_CIPHER_AES_256_CCM

#define WINPR_CIPHER_AES_256_CCM   45

◆ WINPR_CIPHER_AES_256_CFB128

#define WINPR_CIPHER_AES_256_CFB128   10

◆ WINPR_CIPHER_AES_256_CTR

#define WINPR_CIPHER_AES_256_CTR   13

◆ WINPR_CIPHER_AES_256_ECB

#define WINPR_CIPHER_AES_256_ECB   4

◆ WINPR_CIPHER_AES_256_GCM

#define WINPR_CIPHER_AES_256_GCM   16

◆ WINPR_CIPHER_ARC4_128

#define WINPR_CIPHER_ARC4_128   42

◆ WINPR_CIPHER_BLOWFISH_CBC

#define WINPR_CIPHER_BLOWFISH_CBC   39

◆ WINPR_CIPHER_BLOWFISH_CFB64

#define WINPR_CIPHER_BLOWFISH_CFB64   40

◆ WINPR_CIPHER_BLOWFISH_CTR

#define WINPR_CIPHER_BLOWFISH_CTR   41

◆ WINPR_CIPHER_BLOWFISH_ECB

#define WINPR_CIPHER_BLOWFISH_ECB   38

◆ WINPR_CIPHER_CAMELLIA_128_CBC

#define WINPR_CIPHER_CAMELLIA_128_CBC   20

◆ WINPR_CIPHER_CAMELLIA_128_CCM

#define WINPR_CIPHER_CAMELLIA_128_CCM   46

◆ WINPR_CIPHER_CAMELLIA_128_CFB128

#define WINPR_CIPHER_CAMELLIA_128_CFB128   23

◆ WINPR_CIPHER_CAMELLIA_128_CTR

#define WINPR_CIPHER_CAMELLIA_128_CTR   26

◆ WINPR_CIPHER_CAMELLIA_128_ECB

#define WINPR_CIPHER_CAMELLIA_128_ECB   17

◆ WINPR_CIPHER_CAMELLIA_128_GCM

#define WINPR_CIPHER_CAMELLIA_128_GCM   29

◆ WINPR_CIPHER_CAMELLIA_192_CBC

#define WINPR_CIPHER_CAMELLIA_192_CBC   21

◆ WINPR_CIPHER_CAMELLIA_192_CCM

#define WINPR_CIPHER_CAMELLIA_192_CCM   47

◆ WINPR_CIPHER_CAMELLIA_192_CFB128

#define WINPR_CIPHER_CAMELLIA_192_CFB128   24

◆ WINPR_CIPHER_CAMELLIA_192_CTR

#define WINPR_CIPHER_CAMELLIA_192_CTR   27

◆ WINPR_CIPHER_CAMELLIA_192_ECB

#define WINPR_CIPHER_CAMELLIA_192_ECB   18

◆ WINPR_CIPHER_CAMELLIA_192_GCM

#define WINPR_CIPHER_CAMELLIA_192_GCM   30

◆ WINPR_CIPHER_CAMELLIA_256_CBC

#define WINPR_CIPHER_CAMELLIA_256_CBC   22

◆ WINPR_CIPHER_CAMELLIA_256_CCM

#define WINPR_CIPHER_CAMELLIA_256_CCM   48

◆ WINPR_CIPHER_CAMELLIA_256_CFB128

#define WINPR_CIPHER_CAMELLIA_256_CFB128   25

◆ WINPR_CIPHER_CAMELLIA_256_CTR

#define WINPR_CIPHER_CAMELLIA_256_CTR   28

◆ WINPR_CIPHER_CAMELLIA_256_ECB

#define WINPR_CIPHER_CAMELLIA_256_ECB   19

◆ WINPR_CIPHER_CAMELLIA_256_GCM

#define WINPR_CIPHER_CAMELLIA_256_GCM   31

◆ WINPR_CIPHER_DES_CBC

#define WINPR_CIPHER_DES_CBC   33

◆ WINPR_CIPHER_DES_ECB

#define WINPR_CIPHER_DES_ECB   32

◆ WINPR_CIPHER_DES_EDE3_CBC

#define WINPR_CIPHER_DES_EDE3_CBC   37

◆ WINPR_CIPHER_DES_EDE3_ECB

#define WINPR_CIPHER_DES_EDE3_ECB   36

◆ WINPR_CIPHER_DES_EDE_CBC

#define WINPR_CIPHER_DES_EDE_CBC   35

◆ WINPR_CIPHER_DES_EDE_ECB

#define WINPR_CIPHER_DES_EDE_ECB   34

◆ WINPR_CIPHER_NONE

#define WINPR_CIPHER_NONE   0

◆ WINPR_CIPHER_NULL

#define WINPR_CIPHER_NULL   1

◆ WINPR_DECRYPT

#define WINPR_DECRYPT   1

◆ WINPR_ENCRYPT

#define WINPR_ENCRYPT   0

◆ WINPR_MD4_DIGEST_LENGTH

#define WINPR_MD4_DIGEST_LENGTH   16

WinPR: Windows Portable Runtime Cryptography API (CryptoAPI)

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Custom Crypto API Abstraction Layer

◆ WINPR_MD5_DIGEST_LENGTH

#define WINPR_MD5_DIGEST_LENGTH   16

◆ WINPR_RIPEMD160_DIGEST_LENGTH

#define WINPR_RIPEMD160_DIGEST_LENGTH   20

◆ WINPR_SHA1_DIGEST_LENGTH

#define WINPR_SHA1_DIGEST_LENGTH   20

◆ WINPR_SHA224_DIGEST_LENGTH

#define WINPR_SHA224_DIGEST_LENGTH   28

◆ WINPR_SHA256_DIGEST_LENGTH

#define WINPR_SHA256_DIGEST_LENGTH   32

◆ WINPR_SHA384_DIGEST_LENGTH

#define WINPR_SHA384_DIGEST_LENGTH   48

◆ WINPR_SHA3_224_DIGEST_LENGTH

#define WINPR_SHA3_224_DIGEST_LENGTH   28

◆ WINPR_SHA3_256_DIGEST_LENGTH

#define WINPR_SHA3_256_DIGEST_LENGTH   32

◆ WINPR_SHA3_384_DIGEST_LENGTH

#define WINPR_SHA3_384_DIGEST_LENGTH   48

◆ WINPR_SHA3_512_DIGEST_LENGTH

#define WINPR_SHA3_512_DIGEST_LENGTH   64

◆ WINPR_SHA512_DIGEST_LENGTH

#define WINPR_SHA512_DIGEST_LENGTH   64

◆ WINPR_SHAKE128_DIGEST_LENGTH

#define WINPR_SHAKE128_DIGEST_LENGTH   16

◆ WINPR_SHAKE256_DIGEST_LENGTH

#define WINPR_SHAKE256_DIGEST_LENGTH   32

Typedef Documentation

◆ WINPR_CIPHER_CTX

typedef struct winpr_cipher_ctx_private_st WINPR_CIPHER_CTX

◆ WINPR_RC4_CTX

typedef struct winpr_rc4_ctx_private_st WINPR_RC4_CTX

RC4

Enumeration Type Documentation

◆ WINPR_MD_TYPE

HMAC

Enumerator
WINPR_MD_NONE 
WINPR_MD_MD2 
WINPR_MD_MD4 
WINPR_MD_MD5 
WINPR_MD_SHA1 
WINPR_MD_SHA224 
WINPR_MD_SHA256 
WINPR_MD_SHA384 
WINPR_MD_SHA512 
WINPR_MD_RIPEMD160 
WINPR_MD_SHA3_224 
WINPR_MD_SHA3_256 
WINPR_MD_SHA3_384 
WINPR_MD_SHA3_512 
WINPR_MD_SHAKE128 
WINPR_MD_SHAKE256 

Function Documentation

◆ winpr_Cipher_BytesToKey()

WINPR_API int winpr_Cipher_BytesToKey ( int  cipher,
int  md,
const BYTE salt,
const BYTE data,
int  datal,
int  count,
BYTE key,
BYTE iv 
)

Key Generation

Key and IV generation compatible with OpenSSL EVP_BytesToKey(): https://www.openssl.org/docs/manmaster/crypto/EVP_BytesToKey.html

Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Cipher_Final()

WINPR_API BOOL winpr_Cipher_Final ( WINPR_CIPHER_CTX ctx,
BYTE output,
size_t *  olen 
)
Here is the caller graph for this function:

◆ winpr_Cipher_Free()

WINPR_API void winpr_Cipher_Free ( WINPR_CIPHER_CTX ctx)
Here is the caller graph for this function:

◆ winpr_Cipher_New()

WINPR_API WINPR_CIPHER_CTX* winpr_Cipher_New ( int  cipher,
int  op,
const BYTE key,
const BYTE iv 
)

Generic Cipher API

Here is the caller graph for this function:

◆ winpr_Cipher_Update()

WINPR_API BOOL winpr_Cipher_Update ( WINPR_CIPHER_CTX ctx,
const BYTE input,
size_t  ilen,
BYTE output,
size_t *  olen 
)
Here is the caller graph for this function:

◆ winpr_Digest()

WINPR_API BOOL winpr_Digest ( WINPR_MD_TYPE  md,
const BYTE input,
size_t  ilen,
BYTE output,
size_t  olen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Digest_Allow_FIPS()

WINPR_API BOOL winpr_Digest_Allow_FIPS ( WINPR_MD_TYPE  md,
const BYTE input,
size_t  ilen,
BYTE output,
size_t  olen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Digest_Final()

WINPR_API BOOL winpr_Digest_Final ( WINPR_DIGEST_CTX *  ctx,
BYTE output,
size_t  ilen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Digest_Free()

WINPR_API void winpr_Digest_Free ( WINPR_DIGEST_CTX *  ctx)
Here is the caller graph for this function:

◆ winpr_Digest_Init()

WINPR_API BOOL winpr_Digest_Init ( WINPR_DIGEST_CTX *  ctx,
WINPR_MD_TYPE  md 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Digest_Init_Allow_FIPS()

WINPR_API BOOL winpr_Digest_Init_Allow_FIPS ( WINPR_DIGEST_CTX *  ctx,
WINPR_MD_TYPE  md 
)
Here is the caller graph for this function:

◆ winpr_Digest_New()

WINPR_API WINPR_DIGEST_CTX* winpr_Digest_New ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_Digest_Update()

WINPR_API BOOL winpr_Digest_Update ( WINPR_DIGEST_CTX *  ctx,
const BYTE input,
size_t  ilen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_HMAC()

WINPR_API BOOL winpr_HMAC ( WINPR_MD_TYPE  md,
const BYTE key,
size_t  keylen,
const BYTE input,
size_t  ilen,
BYTE output,
size_t  olen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_HMAC_Final()

WINPR_API BOOL winpr_HMAC_Final ( WINPR_HMAC_CTX *  ctx,
BYTE output,
size_t  ilen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_HMAC_Free()

WINPR_API void winpr_HMAC_Free ( WINPR_HMAC_CTX *  ctx)
Here is the caller graph for this function:

◆ winpr_HMAC_Init()

WINPR_API BOOL winpr_HMAC_Init ( WINPR_HMAC_CTX *  ctx,
WINPR_MD_TYPE  md,
const BYTE key,
size_t  keylen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_HMAC_New()

WINPR_API WINPR_HMAC_CTX* winpr_HMAC_New ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_HMAC_Update()

WINPR_API BOOL winpr_HMAC_Update ( WINPR_HMAC_CTX *  ctx,
const BYTE input,
size_t  ilen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_md_type_from_string()

WINPR_API WINPR_MD_TYPE winpr_md_type_from_string ( const char *  name)
Here is the call graph for this function:

◆ winpr_md_type_to_string()

WINPR_API const char* winpr_md_type_to_string ( WINPR_MD_TYPE  md)
Here is the caller graph for this function:

◆ winpr_RAND()

WINPR_API int winpr_RAND ( void *  output,
size_t  len 
)

Random Number Generation

WinPR: Windows Portable Runtime

Copyright 2015 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ winpr_RAND_pseudo()

WINPR_API int winpr_RAND_pseudo ( void *  output,
size_t  len 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_RC4_Free()

WINPR_API void winpr_RC4_Free ( WINPR_RC4_CTX ctx)
Here is the caller graph for this function:

◆ winpr_RC4_New()

WINPR_API WINPR_RC4_CTX* winpr_RC4_New ( const BYTE key,
size_t  keylen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_RC4_New_Allow_FIPS()

WINPR_API WINPR_RC4_CTX* winpr_RC4_New_Allow_FIPS ( const BYTE key,
size_t  keylen 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_RC4_Update()

WINPR_API BOOL winpr_RC4_Update ( WINPR_RC4_CTX ctx,
size_t  length,
const BYTE input,
BYTE output 
)
Here is the caller graph for this function: