Functions
EVP generic crypto functions

## Functions
const EVP_CIPHER * | EVP_wincrypt_des_ede3_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_aes_128_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_aes_192_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_aes_256_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_aes_128_cfb8 (void)
const EVP_CIPHER * | EVP_hcrypto_aes_192_cfb8 (void)
const EVP_CIPHER * | EVP_hcrypto_aes_256_cfb8 (void)
const EVP_MD * | EVP_hcrypto_sha256 (void)
const EVP_MD * | EVP_hcrypto_sha384 (void)
const EVP_MD * | EVP_hcrypto_sha512 (void)
const EVP_MD * | EVP_hcrypto_sha1 (void)
const EVP_MD * | EVP_hcrypto_md5 (void)
const EVP_MD * | EVP_hcrypto_md4 (void)
const EVP_CIPHER * | EVP_hcrypto_des_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_des_ede3_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_rc2_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_rc2_40_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_rc2_64_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_camellia_128_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_camellia_192_cbc (void)
const EVP_CIPHER * | EVP_hcrypto_camellia_256_cbc (void)
| OSSL_CIPHER_ALGORITHM (rc2_cbc, hc_EVP_CIPH_CBC_MODE|hc_EVP_CIPH_VARIABLE_LENGTH) OSSL_CIPHER_ALGORITHM(rc2_40_cbc
hc_EVP_CIPH_CBC_MODE | OSSL_CIPHER_ALGORITHM (rc2_64_cbc, hc_EVP_CIPH_CBC_MODE|hc_EVP_CIPH_VARIABLE_LENGTH) OSSL_CIPHER_ALGORITHM(rc4
| WINCNG_CIPHER_ALGORITHM (des_ede3_cbc, BCRYPT_3DES_ALGORITHM, 8, 24, 8, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (des_cbc, BCRYPT_DES_ALGORITHM, 8, 8, 8, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (aes_128_cbc, BCRYPT_AES_ALGORITHM, 16, 16, 16, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (aes_192_cbc, BCRYPT_AES_ALGORITHM, 16, 24, 16, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (aes_256_cbc, BCRYPT_AES_ALGORITHM, 16, 32, 16, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (aes_128_cfb8, BCRYPT_AES_ALGORITHM, 16, 16, 16, EVP_CIPH_CFB8_MODE)
| WINCNG_CIPHER_ALGORITHM (aes_192_cfb8, BCRYPT_AES_ALGORITHM, 16, 24, 16, EVP_CIPH_CFB8_MODE)
| WINCNG_CIPHER_ALGORITHM (aes_256_cfb8, BCRYPT_AES_ALGORITHM, 16, 32, 16, EVP_CIPH_CFB8_MODE)
| WINCNG_CIPHER_ALGORITHM (rc2_cbc, BCRYPT_RC2_ALGORITHM, 8, 16, 8, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (rc2_40_cbc, BCRYPT_RC2_ALGORITHM, 8, 5, 8, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM (rc2_64_cbc, BCRYPT_RC2_ALGORITHM, 8, 8, 8, EVP_CIPH_CBC_MODE)
| WINCNG_CIPHER_ALGORITHM_UNAVAILABLE (camellia_128_cbc)
| WINCNG_CIPHER_ALGORITHM_UNAVAILABLE (camellia_192_cbc)
| WINCNG_CIPHER_ALGORITHM_UNAVAILABLE (camellia_256_cbc)
| WINCNG_CIPHER_ALGORITHM (rc4, BCRYPT_RC4_ALGORITHM, 1, 16, 0, EVP_CIPH_STREAM_CIPHER|EVP_CIPH_VARIABLE_LENGTH)
| WINCNG_CIPHER_ALGORITHM (rc4_40, BCRYPT_RC4_ALGORITHM, 1, 5, 0, EVP_CIPH_STREAM_CIPHER|EVP_CIPH_VARIABLE_LENGTH)
size_t | EVP_MD_size (const EVP_MD *md)
size_t | EVP_MD_block_size (const EVP_MD *md)
EVP_MD_CTX * | EVP_MD_CTX_create (void)
void | EVP_MD_CTX_init (EVP_MD_CTX *ctx) HC_DEPRECATED
void | EVP_MD_CTX_destroy (EVP_MD_CTX *ctx)
int | EVP_MD_CTX_cleanup (EVP_MD_CTX *ctx) HC_DEPRECATED
const EVP_MD * | EVP_MD_CTX_md (EVP_MD_CTX *ctx)
size_t | EVP_MD_CTX_size (EVP_MD_CTX *ctx)
size_t | EVP_MD_CTX_block_size (EVP_MD_CTX *ctx)
int | EVP_DigestInit_ex (EVP_MD_CTX *ctx, const EVP_MD *md, ENGINE *engine)
int | EVP_DigestUpdate (EVP_MD_CTX *ctx, const void *data, size_t size)
int | EVP_DigestFinal_ex (EVP_MD_CTX *ctx, void *hash, unsigned int *size)
int | EVP_Digest (const void *data, size_t dsize, void *hash, unsigned int *hsize, const EVP_MD *md, ENGINE *engine)
const EVP_MD * | EVP_sha256 (void)
const EVP_MD * | EVP_sha384 (void)
const EVP_MD * | EVP_sha512 (void)
const EVP_MD * | EVP_sha1 (void)
const EVP_MD * | EVP_sha (void)
const EVP_MD * | EVP_md5 (void)
const EVP_MD * | EVP_md4 (void)
const EVP_MD * | EVP_md_null (void)
size_t | EVP_CIPHER_block_size (const EVP_CIPHER *c)
size_t | EVP_CIPHER_key_length (const EVP_CIPHER *c)
size_t | EVP_CIPHER_iv_length (const EVP_CIPHER *c)
void | EVP_CIPHER_CTX_init (EVP_CIPHER_CTX *c)
int | EVP_CIPHER_CTX_cleanup (EVP_CIPHER_CTX *c)
int | EVP_CIPHER_CTX_set_key_length (EVP_CIPHER_CTX *c, int length)
const EVP_CIPHER * | EVP_CIPHER_CTX_cipher (EVP_CIPHER_CTX *ctx)
size_t | EVP_CIPHER_CTX_block_size (const EVP_CIPHER_CTX *ctx)
size_t | EVP_CIPHER_CTX_key_length (const EVP_CIPHER_CTX *ctx)
size_t | EVP_CIPHER_CTX_iv_length (const EVP_CIPHER_CTX *ctx)
unsigned long | EVP_CIPHER_CTX_flags (const EVP_CIPHER_CTX *ctx)
int | EVP_CIPHER_CTX_mode (const EVP_CIPHER_CTX *ctx)
void * | EVP_CIPHER_CTX_get_app_data (EVP_CIPHER_CTX *ctx)
void | EVP_CIPHER_CTX_set_app_data (EVP_CIPHER_CTX *ctx, void *data)
int | EVP_CipherInit_ex (EVP_CIPHER_CTX *ctx, const EVP_CIPHER *c, ENGINE *engine, const void *key, const void *iv, int encp)
int | EVP_CipherUpdate (EVP_CIPHER_CTX *ctx, void *out, int *outlen, void *in, size_t inlen)
int | EVP_CipherFinal_ex (EVP_CIPHER_CTX *ctx, void *out, int *outlen)
const EVP_CIPHER * | EVP_enc_null (void)
const EVP_CIPHER * | EVP_rc2_cbc (void)
const EVP_CIPHER * | EVP_rc2_40_cbc (void)
const EVP_CIPHER * | EVP_rc2_64_cbc (void)
const EVP_CIPHER * | EVP_rc4 (void)
const EVP_CIPHER * | EVP_rc4_40 (void)
const EVP_CIPHER * | EVP_des_cbc (void)
const EVP_CIPHER * | EVP_des_ede3_cbc (void)
const EVP_CIPHER * | EVP_aes_128_cbc (void)
const EVP_CIPHER * | EVP_aes_192_cbc (void)
const EVP_CIPHER * | EVP_aes_256_cbc (void)
const EVP_CIPHER * | EVP_aes_128_cfb8 (void)
const EVP_CIPHER * | EVP_aes_192_cfb8 (void)
const EVP_CIPHER * | EVP_aes_256_cfb8 (void)
const EVP_CIPHER * | EVP_camellia_128_cbc (void)
const EVP_CIPHER * | EVP_camellia_192_cbc (void)
const EVP_CIPHER * | EVP_camellia_256_cbc (void)
const EVP_CIPHER * | EVP_get_cipherbyname (const char *name)
int | EVP_BytesToKey (const EVP_CIPHER *type, const EVP_MD *md, const void *salt, const void *data, size_t datalen, unsigned int count, void *keydata, void *ivdata)

## Detailed Description

See the EVP - generic crypto interface for description and examples.

## Function Documentation

## ◆ EVP_aes_128_cbc()

const EVP_CIPHER* EVP_aes_128_cbc | ( | void |  | ) |

The AES-128 cipher type

Returns
  the AES-128 EVP_CIPHER pointer.

Examples
  example_evp_cipher.c.

## ◆ EVP_aes_128_cfb8()

const EVP_CIPHER* EVP_aes_128_cfb8 | ( | void |  | ) |

The AES-128 cipher type

Returns
  the AES-128 EVP_CIPHER pointer.

## ◆ EVP_aes_192_cbc()

const EVP_CIPHER* EVP_aes_192_cbc | ( | void |  | ) |

The AES-192 cipher type

Returns
  the AES-192 EVP_CIPHER pointer.

## ◆ EVP_aes_192_cfb8()

const EVP_CIPHER* EVP_aes_192_cfb8 | ( | void |  | ) |

The AES-192 cipher type

Returns
  the AES-192 EVP_CIPHER pointer.

## ◆ EVP_aes_256_cbc()

const EVP_CIPHER* EVP_aes_256_cbc | ( | void |  | ) |

The AES-256 cipher type

Returns
  the AES-256 EVP_CIPHER pointer.

## ◆ EVP_aes_256_cfb8()

const EVP_CIPHER* EVP_aes_256_cfb8 | ( | void |  | ) |

The AES-256 cipher type

Returns
  the AES-256 EVP_CIPHER pointer.

## ◆ EVP_BytesToKey()

int EVP_BytesToKey | ( | const EVP_CIPHER * | type,
|  | const EVP_MD * | md,
|  | const void * | salt,
|  | const void * | data,
|  | size_t | datalen,
|  | unsigned int | count,
|  | void * | keydata,
|  | void * | ivdata
| ) |  |

Provides a legancy string to key function, used in PEM files.

New protocols should use new string to key functions like NIST SP56-800A or PKCS#5 v2.0 (see PKCS5_PBKDF2_HMAC_SHA1()).

Parameters

  type | type of cipher to use
  md | message digest to use
  salt | salt salt string, should be an binary 8 byte buffer.
  data | the password/input key string.
  datalen | length of data parameter.
  count | iteration counter.
  keydata | output keydata, needs to of the size EVP_CIPHER_key_length().
  ivdata | output ivdata, needs to of the size EVP_CIPHER_block_size().

Returns
  the size of derived key.

## ◆ EVP_camellia_128_cbc()

const EVP_CIPHER* EVP_camellia_128_cbc | ( | void |  | ) |

The Camellia-128 cipher type

Returns
  the Camellia-128 EVP_CIPHER pointer.

## ◆ EVP_camellia_192_cbc()

const EVP_CIPHER* EVP_camellia_192_cbc | ( | void |  | ) |

The Camellia-198 cipher type

Returns
  the Camellia-198 EVP_CIPHER pointer.

## ◆ EVP_camellia_256_cbc()

const EVP_CIPHER* EVP_camellia_256_cbc | ( | void |  | ) |

The Camellia-256 cipher type

Returns
  the Camellia-256 EVP_CIPHER pointer.

## ◆ EVP_CIPHER_block_size()

size_t EVP_CIPHER_block_size | ( | const EVP_CIPHER * | c | ) |

Return the block size of the cipher.

Parameters

  c | cipher to get the block size from.

Returns
  the block size of the cipher.

Examples
  example_evp_cipher.c.

## ◆ EVP_CIPHER_CTX_block_size()

size_t EVP_CIPHER_CTX_block_size | ( | const EVP_CIPHER_CTX * | ctx | ) |

Return the block size of the cipher context.

Parameters

  ctx | cipher context to get the block size from.

Returns
  the block size of the cipher context.

## ◆ EVP_CIPHER_CTX_cipher()

const EVP_CIPHER* EVP_CIPHER_CTX_cipher | ( | EVP_CIPHER_CTX * | ctx | ) |

Return the EVP_CIPHER for a EVP_CIPHER_CTX context.

Parameters

  ctx | the context to get the cipher type from.

Returns
  the EVP_CIPHER pointer.

## ◆ EVP_CIPHER_CTX_cleanup()

int EVP_CIPHER_CTX_cleanup | ( | EVP_CIPHER_CTX * | c | ) |

Clean up the EVP_CIPHER_CTX context.

Parameters

  c | the cipher to clean up.

Returns
  1 on success.

Examples
  example_evp_cipher.c.

## ◆ EVP_CIPHER_CTX_flags()

unsigned long EVP_CIPHER_CTX_flags | ( | const EVP_CIPHER_CTX * | ctx | ) |

Get the flags for an EVP_CIPHER_CTX context.

Parameters

  ctx | the EVP_CIPHER_CTX to get the flags from

Returns
  the flags for an EVP_CIPHER_CTX.

## ◆ EVP_CIPHER_CTX_get_app_data()

void* EVP_CIPHER_CTX_get_app_data | ( | EVP_CIPHER_CTX * | ctx | ) |

Get the app data for an EVP_CIPHER_CTX context.

Parameters

  ctx | the EVP_CIPHER_CTX to get the app data from

Returns
  the app data for an EVP_CIPHER_CTX.

## ◆ EVP_CIPHER_CTX_init()

void EVP_CIPHER_CTX_init | ( | EVP_CIPHER_CTX * | c | ) |

Initiate a EVP_CIPHER_CTX context. Clean up with EVP_CIPHER_CTX_cleanup().

Parameters

  c | the cipher initiate.

Examples
  example_evp_cipher.c.

## ◆ EVP_CIPHER_CTX_iv_length()

size_t EVP_CIPHER_CTX_iv_length | ( | const EVP_CIPHER_CTX * | ctx | ) |

Return the IV size of the cipher context.

Parameters

  ctx | cipher context to get the IV size from.

Returns
  the IV size of the cipher context.

## ◆ EVP_CIPHER_CTX_key_length()

size_t EVP_CIPHER_CTX_key_length | ( | const EVP_CIPHER_CTX * | ctx | ) |

Return the key size of the cipher context.

Parameters

  ctx | cipher context to get the key size from.

Returns
  the key size of the cipher context.

## ◆ EVP_CIPHER_CTX_mode()

int EVP_CIPHER_CTX_mode | ( | const EVP_CIPHER_CTX * | ctx | ) |

Get the mode for an EVP_CIPHER_CTX context.

Parameters

  ctx | the EVP_CIPHER_CTX to get the mode from

Returns
  the mode for an EVP_CIPHER_CTX.

## ◆ EVP_CIPHER_CTX_set_app_data()

void EVP_CIPHER_CTX_set_app_data | ( | EVP_CIPHER_CTX * | ctx,
|  | void * | data
| ) |  |

Set the app data for an EVP_CIPHER_CTX context.

Parameters

  ctx | the EVP_CIPHER_CTX to set the app data for
  data | the app data to set for an EVP_CIPHER_CTX.

## ◆ EVP_CIPHER_CTX_set_key_length()

int EVP_CIPHER_CTX_set_key_length | ( | EVP_CIPHER_CTX * | c,
|  | int | length
| ) |  |

If the cipher type supports it, change the key length

Parameters

  c | the cipher context to change the key length for
  length | new key length

Returns
  1 on success.

## ◆ EVP_CIPHER_iv_length()

size_t EVP_CIPHER_iv_length | ( | const EVP_CIPHER * | c | ) |

Return the IV size of the cipher.

Parameters

  c | cipher to get the IV size from.

Returns
  the IV size of the cipher.

Examples
  example_evp_cipher.c.

## ◆ EVP_CIPHER_key_length()

size_t EVP_CIPHER_key_length | ( | const EVP_CIPHER * | c | ) |

Return the key size of the cipher.

Parameters

  c | cipher to get the key size from.

Returns
  the key size of the cipher.

Examples
  example_evp_cipher.c.

## ◆ EVP_CipherFinal_ex()

int EVP_CipherFinal_ex | ( | EVP_CIPHER_CTX * | ctx,
|  | void * | out,
|  | int * | outlen
| ) |  |

Encipher/decipher final data

Parameters

  ctx | the cipher context.
  out | output data from the operation.
  outlen | output length

The input length needs to be at least EVP_CIPHER_block_size() bytes long.

See EVP Cipher for an example how to use this function.

Returns
  1 on success.

Examples
  example_evp_cipher.c.

## ◆ EVP_CipherInit_ex()

int EVP_CipherInit_ex | ( | EVP_CIPHER_CTX * | ctx,
|  | const EVP_CIPHER * | c,
|  | ENGINE * | engine,
|  | const void * | key,
|  | const void * | iv,
|  | int | encp
| ) |  |

Initiate the EVP_CIPHER_CTX context to encrypt or decrypt data. Clean up with EVP_CIPHER_CTX_cleanup().

Parameters

  ctx | context to initiate
  c | cipher to use.
  engine | crypto engine to use, NULL to select default.
  key | the crypto key to use, NULL will use the previous value.
  iv | the IV to use, NULL will use the previous value.
  encp | non zero will encrypt, -1 use the previous value.

Returns
  1 on success.

Examples
  example_evp_cipher.c.

## ◆ EVP_CipherUpdate()

int EVP_CipherUpdate | ( | EVP_CIPHER_CTX * | ctx,
|  | void * | out,
|  | int * | outlen,
|  | void * | in,
|  | size_t | inlen
| ) |  |

Encipher/decipher partial data

Parameters

  ctx | the cipher context.
  out | output data from the operation.
  outlen | output length
  in | input data to the operation.
  inlen | length of data.

The output buffer length should at least be EVP_CIPHER_block_size() byte longer then the input length.

See EVP Cipher for an example how to use this function.

Returns
  1 on success.

If there in no spare bytes in the left from last Update and the input length is on the block boundery, the EVP_CipherUpdate() function can take a shortcut (and preformance gain) and directly encrypt the data, otherwise we hav to fix it up and store extra it the EVP_CIPHER_CTX.

Examples
  example_evp_cipher.c.

## ◆ EVP_des_cbc()

const EVP_CIPHER* EVP_des_cbc | ( | void |  | ) |

The DES cipher type

Returns
  the DES-CBC EVP_CIPHER pointer.

## ◆ EVP_des_ede3_cbc()

const EVP_CIPHER* EVP_des_ede3_cbc | ( | void |  | ) |

The triple DES cipher type

Returns
  the DES-EDE3-CBC EVP_CIPHER pointer.

## ◆ EVP_Digest()

int EVP_Digest | ( | const void * | data,
|  | size_t | dsize,
|  | void * | hash,
|  | unsigned int * | hsize,
|  | const EVP_MD * | md,
|  | ENGINE * | engine
| ) |  |

Do the whole EVP_MD_CTX_create(), EVP_DigestInit_ex(), EVP_DigestUpdate(), EVP_DigestFinal_ex(), EVP_MD_CTX_destroy() dance in one call.

Parameters

  data | the data to update the context with
  dsize | length of data
  hash | output data of at least EVP_MD_size() length.
  hsize | output length of hash.
  md | message digest to use
  engine | engine to use, NULL for default engine.

Returns
  1 on success.

## ◆ EVP_DigestFinal_ex()

int EVP_DigestFinal_ex | ( | EVP_MD_CTX * | ctx,
|  | void * | hash,
|  | unsigned int * | size
| ) |  |

Complete the message digest.

Parameters

  ctx | the context to complete.
  hash | the output of the message digest function. At least EVP_MD_size().
  size | the output size of hash.

Returns
  1 on success.

## ◆ EVP_DigestInit_ex()

int EVP_DigestInit_ex | ( | EVP_MD_CTX * | ctx,
|  | const EVP_MD * | md,
|  | ENGINE * | engine
| ) |  |

Init a EVP_MD_CTX for use a specific message digest and engine.

Parameters

  ctx | the message digest context to init.
  md | the message digest to use.
  engine | the engine to use, NULL to use the default engine.

Returns
  1 on success.

## ◆ EVP_DigestUpdate()

int EVP_DigestUpdate | ( | EVP_MD_CTX * | ctx,
|  | const void * | data,
|  | size_t | size
| ) |  |

Update the digest with some data.

Parameters

  ctx | the context to update
  data | the data to update the context with
  size | length of data

Returns
  1 on success.

## ◆ EVP_enc_null()

const EVP_CIPHER* EVP_enc_null | ( | void |  | ) |

The NULL cipher type, does no encryption/decryption.

Returns
  the null EVP_CIPHER pointer.

## ◆ EVP_get_cipherbyname()

const EVP_CIPHER* EVP_get_cipherbyname | ( | const char * | name | ) |

Get the cipher type using their name.

Parameters

  name | the name of the cipher.

Returns
  the selected EVP_CIPHER pointer or NULL if not found.

## ◆ EVP_hcrypto_aes_128_cbc()

const EVP_CIPHER* EVP_hcrypto_aes_128_cbc | ( | void |  | ) |

The AES-128 cipher type (hcrypto)

Returns
  the AES-128 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_aes_128_cfb8()

const EVP_CIPHER* EVP_hcrypto_aes_128_cfb8 | ( | void |  | ) |

The AES-128 CFB8 cipher type (hcrypto)

Returns
  the AES-128 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_aes_192_cbc()

const EVP_CIPHER* EVP_hcrypto_aes_192_cbc | ( | void |  | ) |

The AES-192 cipher type (hcrypto)

Returns
  the AES-192 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_aes_192_cfb8()

const EVP_CIPHER* EVP_hcrypto_aes_192_cfb8 | ( | void |  | ) |

The AES-192 CFB8 cipher type (hcrypto)

Returns
  the AES-192 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_aes_256_cbc()

const EVP_CIPHER* EVP_hcrypto_aes_256_cbc | ( | void |  | ) |

The AES-256 cipher type (hcrypto)

Returns
  the AES-256 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_aes_256_cfb8()

const EVP_CIPHER* EVP_hcrypto_aes_256_cfb8 | ( | void |  | ) |

The AES-256 CFB8 cipher type (hcrypto)

Returns
  the AES-256 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_camellia_128_cbc()

const EVP_CIPHER* EVP_hcrypto_camellia_128_cbc | ( | void |  | ) |

The Camellia-128 cipher type - hcrypto

Returns
  the Camellia-128 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_camellia_192_cbc()

const EVP_CIPHER* EVP_hcrypto_camellia_192_cbc | ( | void |  | ) |

The Camellia-198 cipher type - hcrypto

Returns
  the Camellia-198 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_camellia_256_cbc()

const EVP_CIPHER* EVP_hcrypto_camellia_256_cbc | ( | void |  | ) |

The Camellia-256 cipher type - hcrypto

Returns
  the Camellia-256 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_des_cbc()

const EVP_CIPHER* EVP_hcrypto_des_cbc | ( | void |  | ) |

The DES cipher type

Returns
  the DES-CBC EVP_CIPHER pointer.

## ◆ EVP_hcrypto_des_ede3_cbc()

const EVP_CIPHER* EVP_hcrypto_des_ede3_cbc | ( | void |  | ) |

The triple DES cipher type - hcrypto

Returns
  the DES-EDE3-CBC EVP_CIPHER pointer.

## ◆ EVP_hcrypto_md4()

const EVP_MD* EVP_hcrypto_md4 | ( | void |  | ) |

The message digest MD4 - hcrypto

Returns
  the message digest type.

## ◆ EVP_hcrypto_md5()

const EVP_MD* EVP_hcrypto_md5 | ( | void |  | ) |

The message digest MD5 - hcrypto

Returns
  the message digest type.

## ◆ EVP_hcrypto_rc2_40_cbc()

const EVP_CIPHER* EVP_hcrypto_rc2_40_cbc | ( | void |  | ) |

The RC2-40 cipher type

Returns
  the RC2-40 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_rc2_64_cbc()

const EVP_CIPHER* EVP_hcrypto_rc2_64_cbc | ( | void |  | ) |

The RC2-64 cipher type

Returns
  the RC2-64 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_rc2_cbc()

const EVP_CIPHER* EVP_hcrypto_rc2_cbc | ( | void |  | ) |

The RC2 cipher type - hcrypto

Returns
  the RC2 EVP_CIPHER pointer.

## ◆ EVP_hcrypto_sha1()

const EVP_MD* EVP_hcrypto_sha1 | ( | void |  | ) |

The message digest SHA1 - hcrypto

Returns
  the message digest type.

## ◆ EVP_hcrypto_sha256()

const EVP_MD* EVP_hcrypto_sha256 | ( | void |  | ) |

The message digest SHA256 - hcrypto

Returns
  the message digest type.

## ◆ EVP_hcrypto_sha384()

const EVP_MD* EVP_hcrypto_sha384 | ( | void |  | ) |

The message digest SHA384 - hcrypto

Returns
  the message digest type.

## ◆ EVP_hcrypto_sha512()

const EVP_MD* EVP_hcrypto_sha512 | ( | void |  | ) |

The message digest SHA512 - hcrypto

Returns
  the message digest type.

## ◆ EVP_md4()

const EVP_MD* EVP_md4 | ( | void |  | ) |

The message digest MD4

Returns
  the message digest type.

## ◆ EVP_md5()

const EVP_MD* EVP_md5 | ( | void |  | ) |

The message digest MD5

Returns
  the message digest type.

## ◆ EVP_MD_block_size()

size_t EVP_MD_block_size | ( | const EVP_MD * | md | ) |

Return the blocksize of the message digest function.

Parameters

  md | the evp message

Returns
  size size of the message digest block size

## ◆ EVP_MD_CTX_block_size()

size_t EVP_MD_CTX_block_size | ( | EVP_MD_CTX * | ctx | ) |

Return the blocksize of the message digest function.

Parameters

  ctx | the evp message digest context

Returns
  size size of the message digest block size

## ◆ EVP_MD_CTX_cleanup()

int EVP_MD_CTX_cleanup | ( | EVP_MD_CTX * | ctx | ) |

Free the resources used by the EVP_MD context.

Parameters

  ctx | the context to free the resources from.

Returns
  1 on success.

## ◆ EVP_MD_CTX_create()

EVP_MD_CTX* EVP_MD_CTX_create | ( | void |  | ) |

Allocate a messsage digest context object. Free with EVP_MD_CTX_destroy().

Returns
  a newly allocated message digest context object.

## ◆ EVP_MD_CTX_destroy()

void EVP_MD_CTX_destroy | ( | EVP_MD_CTX * | ctx | ) |

Free a messsage digest context object.

Parameters

  ctx | context to free.

## ◆ EVP_MD_CTX_init()

void EVP_MD_CTX_init | ( | EVP_MD_CTX * | ctx | ) |

Initiate a messsage digest context object. Deallocate with EVP_MD_CTX_cleanup(). Please use EVP_MD_CTX_create() instead.

Parameters

  ctx | variable to initiate.

## ◆ EVP_MD_CTX_md()

const EVP_MD* EVP_MD_CTX_md | ( | EVP_MD_CTX * | ctx | ) |

Get the EVP_MD use for a specified context.

Parameters

  ctx | the EVP_MD context to get the EVP_MD for.

Returns
  the EVP_MD used for the context.

## ◆ EVP_MD_CTX_size()

size_t EVP_MD_CTX_size | ( | EVP_MD_CTX * | ctx | ) |

Return the output size of the message digest function.

Parameters

  ctx | the evp message digest context

Returns
  size output size of the message digest function.

## ◆ EVP_md_null()

const EVP_MD* EVP_md_null | ( | void |  | ) |

The null message digest

Returns
  the message digest type.

## ◆ EVP_MD_size()

size_t EVP_MD_size | ( | const EVP_MD * | md | ) |

Return the output size of the message digest function.

Parameters

  md | the evp message

Returns
  size output size of the message digest function.

## ◆ EVP_rc2_40_cbc()

const EVP_CIPHER* EVP_rc2_40_cbc | ( | void |  | ) |

The RC2 cipher type

Returns
  the RC2 EVP_CIPHER pointer.

## ◆ EVP_rc2_64_cbc()

const EVP_CIPHER* EVP_rc2_64_cbc | ( | void |  | ) |

The RC2 cipher type

Returns
  the RC2 EVP_CIPHER pointer.

## ◆ EVP_rc2_cbc()

const EVP_CIPHER* EVP_rc2_cbc | ( | void |  | ) |

The RC2 cipher type

Returns
  the RC2 EVP_CIPHER pointer.

## ◆ EVP_rc4()

const EVP_CIPHER* EVP_rc4 | ( | void |  | ) |

The RC4 cipher type

Returns
  the RC4 EVP_CIPHER pointer.

## ◆ EVP_rc4_40()

const EVP_CIPHER* EVP_rc4_40 | ( | void |  | ) |

The RC4-40 cipher type

Returns
  the RC4-40 EVP_CIPHER pointer.

## ◆ EVP_sha()

const EVP_MD* EVP_sha | ( | void |  | ) |

The message digest SHA1

Returns
  the message digest type.

## ◆ EVP_sha1()

const EVP_MD* EVP_sha1 | ( | void |  | ) |

The message digest SHA1

Returns
  the message digest type.

## ◆ EVP_sha256()

const EVP_MD* EVP_sha256 | ( | void |  | ) |

The message digest SHA256

Returns
  the message digest type.

## ◆ EVP_sha384()

const EVP_MD* EVP_sha384 | ( | void |  | ) |

The message digest SHA384

Returns
  the message digest type.

## ◆ EVP_sha512()

const EVP_MD* EVP_sha512 | ( | void |  | ) |

The message digest SHA512

Returns
  the message digest type.

## ◆ EVP_wincrypt_des_ede3_cbc()

const EVP_CIPHER* EVP_wincrypt_des_ede3_cbc | ( | void |  | ) |

The triple DES cipher type (Micrsoft crypt provider)

Returns
  the DES-EDE3-CBC EVP_CIPHER pointer.

## ◆ OSSL_CIPHER_ALGORITHM() [1/2]

hc_EVP_CIPH_CBC_MODE OSSL_CIPHER_ALGORITHM | ( | rc2_64_cbc | ,
|  | hc_EVP_CIPH_CBC_MODE| | hc_EVP_CIPH_VARIABLE_LENGTH
| ) |  |

The RC2-64 cipher type - OpenSSL

Returns
  the RC2-64 EVP_CIPHER pointer. The Camellia-128 cipher type - OpenSSL
  the Camellia-128 EVP_CIPHER pointer. The Camellia-198 cipher type - OpenSSL
  the Camellia-198 EVP_CIPHER pointer. The Camellia-256 cipher type - OpenSSL
  the Camellia-256 EVP_CIPHER pointer. The RC4 cipher type (OpenSSL provider)
  the RC4 EVP_CIPHER pointer.

## ◆ OSSL_CIPHER_ALGORITHM() [2/2]

OSSL_CIPHER_ALGORITHM | ( | rc2_cbc | ,
|  | hc_EVP_CIPH_CBC_MODE| | hc_EVP_CIPH_VARIABLE_LENGTH
| ) |  |

The triple DES cipher type (OpenSSL provider)

Returns
  the DES-EDE3-CBC EVP_CIPHER pointer. The DES cipher type (OpenSSL provider)
  the DES-CBC EVP_CIPHER pointer. The AES-128 cipher type (OpenSSL provider)
  the AES-128-CBC EVP_CIPHER pointer. The AES-192 cipher type (OpenSSL provider)
  the AES-192-CBC EVP_CIPHER pointer. The AES-256 cipher type (OpenSSL provider)
  the AES-256-CBC EVP_CIPHER pointer. The AES-128 CFB8 cipher type (OpenSSL provider)
  the AES-128-CFB8 EVP_CIPHER pointer. The AES-192 CFB8 cipher type (OpenSSL provider)
  the AES-192-CFB8 EVP_CIPHER pointer. The AES-256 CFB8 cipher type (OpenSSL provider)
  the AES-256-CFB8 EVP_CIPHER pointer. The RC2 cipher type - OpenSSL
  the RC2 EVP_CIPHER pointer. The RC2-40 cipher type - OpenSSL
  the RC2-40 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [1/13]

WINCNG_CIPHER_ALGORITHM | ( | aes_128_cbc | ,
|  | BCRYPT_AES_ALGORITHM | ,
|  | 16 | ,
|  | 16 | ,
|  | 16 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The AES-128 cipher type (Windows CNG provider)

Returns
  the AES-128-CBC EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [2/13]

WINCNG_CIPHER_ALGORITHM | ( | aes_128_cfb8 | ,
|  | BCRYPT_AES_ALGORITHM | ,
|  | 16 | ,
|  | 16 | ,
|  | 16 | ,
|  | EVP_CIPH_CFB8_MODE |
| ) |  |

The AES-128 CFB8 cipher type (Windows CNG provider)

Returns
  the AES-128-CFB8 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [3/13]

WINCNG_CIPHER_ALGORITHM | ( | aes_192_cbc | ,
|  | BCRYPT_AES_ALGORITHM | ,
|  | 16 | ,
|  | 24 | ,
|  | 16 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The AES-192 cipher type (Windows CNG provider)

Returns
  the AES-192-CBC EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [4/13]

WINCNG_CIPHER_ALGORITHM | ( | aes_192_cfb8 | ,
|  | BCRYPT_AES_ALGORITHM | ,
|  | 16 | ,
|  | 24 | ,
|  | 16 | ,
|  | EVP_CIPH_CFB8_MODE |
| ) |  |

The AES-192 CFB8 cipher type (Windows CNG provider)

Returns
  the AES-192-CFB8 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [5/13]

WINCNG_CIPHER_ALGORITHM | ( | aes_256_cbc | ,
|  | BCRYPT_AES_ALGORITHM | ,
|  | 16 | ,
|  | 32 | ,
|  | 16 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The AES-256 cipher type (Windows CNG provider)

Returns
  the AES-256-CBC EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [6/13]

WINCNG_CIPHER_ALGORITHM | ( | aes_256_cfb8 | ,
|  | BCRYPT_AES_ALGORITHM | ,
|  | 16 | ,
|  | 32 | ,
|  | 16 | ,
|  | EVP_CIPH_CFB8_MODE |
| ) |  |

The AES-256 CFB8 cipher type (Windows CNG provider)

Returns
  the AES-256-CFB8 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [7/13]

WINCNG_CIPHER_ALGORITHM | ( | des_cbc | ,
|  | BCRYPT_DES_ALGORITHM | ,
|  | 8 | ,
|  | 8 | ,
|  | 8 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The DES cipher type (Windows CNG provider)

Returns
  the DES-CBC EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [8/13]

WINCNG_CIPHER_ALGORITHM | ( | des_ede3_cbc | ,
|  | BCRYPT_3DES_ALGORITHM | ,
|  | 8 | ,
|  | 24 | ,
|  | 8 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The triple DES cipher type (Windows CNG provider)

Returns
  the DES-EDE3-CBC EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [9/13]

WINCNG_CIPHER_ALGORITHM | ( | rc2_40_cbc | ,
|  | BCRYPT_RC2_ALGORITHM | ,
|  | 8 | ,
|  | 5 | ,
|  | 8 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The RC2-40 cipher type - Windows CNG

Returns
  the RC2-40 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [10/13]

WINCNG_CIPHER_ALGORITHM | ( | rc2_64_cbc | ,
|  | BCRYPT_RC2_ALGORITHM | ,
|  | 8 | ,
|  | 8 | ,
|  | 8 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The RC2-64 cipher type - Windows CNG

Returns
  the RC2-64 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [11/13]

WINCNG_CIPHER_ALGORITHM | ( | rc2_cbc | ,
|  | BCRYPT_RC2_ALGORITHM | ,
|  | 8 | ,
|  | 16 | ,
|  | 8 | ,
|  | EVP_CIPH_CBC_MODE |
| ) |  |

The RC2 cipher type - Windows CNG

Returns
  the RC2 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [12/13]

WINCNG_CIPHER_ALGORITHM | ( | rc4 | ,
|  | BCRYPT_RC4_ALGORITHM | ,
|  | 1 | ,
|  | 16 | ,
|  | 0 | ,
|  | EVP_CIPH_STREAM_CIPHER| | EVP_CIPH_VARIABLE_LENGTH
| ) |  |

The RC4 cipher type (Windows CNG provider)

Returns
  the RC4 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM() [13/13]

WINCNG_CIPHER_ALGORITHM | ( | rc4_40 | ,
|  | BCRYPT_RC4_ALGORITHM | ,
|  | 1 | ,
|  | 5 | ,
|  | 0 | ,
|  | EVP_CIPH_STREAM_CIPHER| | EVP_CIPH_VARIABLE_LENGTH
| ) |  |

The RC4-40 cipher type (Windows CNG provider)

Returns
  the RC4 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM_UNAVAILABLE() [1/3]

WINCNG_CIPHER_ALGORITHM_UNAVAILABLE | ( | camellia_128_cbc |  | ) |

The Camellia-128 cipher type - CommonCrypto

Returns
  the Camellia-128 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM_UNAVAILABLE() [2/3]

WINCNG_CIPHER_ALGORITHM_UNAVAILABLE | ( | camellia_192_cbc |  | ) |

The Camellia-198 cipher type - CommonCrypto

Returns
  the Camellia-198 EVP_CIPHER pointer.

## ◆ WINCNG_CIPHER_ALGORITHM_UNAVAILABLE() [3/3]

WINCNG_CIPHER_ALGORITHM_UNAVAILABLE | ( | camellia_256_cbc |  | ) |

The Camellia-256 cipher type - CommonCrypto

Returns
  the Camellia-256 EVP_CIPHER pointer.