# hcrypto function controlling behavior

## Functions
int | EVP_CIPHER_CTX_rand_key (EVP_CIPHER_CTX *ctx, void *key)
int | EVP_CIPHER_CTX_ctrl (EVP_CIPHER_CTX *ctx, int type, int arg, void *data)
void | OpenSSL_add_all_algorithms (void)
void | OpenSSL_add_all_algorithms_conf (void)
void | OpenSSL_add_all_algorithms_noconf (void)

## Detailed Description

## Function Documentation

int EVP_CIPHER_CTX_ctrl | ( | EVP_CIPHER_CTX * | ctx,
|  | int | type,
|  | int | arg,
|  | void * | data |
| ) |  |  |

Perform a operation on a ctx

Parameters:

  | ctx | context to perform operation on.
  | type | type of operation.
  | arg | argument to operation.
  | data | addition data to operation.

Returns:
  1 for success, 0 for failure.

int EVP_CIPHER_CTX_rand_key | ( | EVP_CIPHER_CTX * | ctx,
|  | void * | key |
| ) |  |  |

Generate a random key for the specificed EVP_CIPHER.

Parameters:

  | ctx | EVP_CIPHER_CTX type to build the key for.
  | key | return key, must be at least EVP_CIPHER_key_length() byte long.

Returns:
  1 for success, 0 for failure.

void OpenSSL_add_all_algorithms | ( | void |  | ) |

Add all algorithms to the crypto core.

void OpenSSL_add_all_algorithms_conf | ( | void |  | ) |

Add all algorithms to the crypto core using configuration file.

void OpenSSL_add_all_algorithms_noconf | ( | void |  | ) |

Add all algorithms to the crypto core, but don't use the configuration file.