forked from Mirrors/freeswitch
76 lines
1.6 KiB
Plaintext
76 lines
1.6 KiB
Plaintext
/**
|
|
|
|
@defgroup CryptoKernel Cryptographic Kernel
|
|
|
|
All of the cryptographic functions are contained in a kernel.
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
@defgroup CipherImplementations Ciphers
|
|
@ingroup CryptoKernel
|
|
|
|
@brief A generic cipher type enables cipher agility, that is, the
|
|
ability to write code that runs with multiple cipher types.
|
|
Ciphers can be used through the crypto kernel, or can be accessed
|
|
directly, if need be.
|
|
|
|
@{
|
|
|
|
*/
|
|
|
|
/**
|
|
* @brief Allocates a cipher of a particular type.
|
|
* @warning May be implemented as a macro.
|
|
*/
|
|
err_status_t
|
|
cipher_type_alloc(cipher_type_t *ctype, cipher_t **cipher,
|
|
unsigned key_len);
|
|
|
|
/**
|
|
* @brief Initialized a cipher to use a particular key. May
|
|
* be invoked more than once on the same cipher.
|
|
* @warning May be implemented as a macro.
|
|
*/
|
|
|
|
err_status_t
|
|
cipher_init(cipher_t *cipher, const uint8_t *key);
|
|
|
|
/**
|
|
* @brief Sets the initialization vector of a given cipher.
|
|
* @warning May be implemented as a macro.
|
|
*/
|
|
|
|
err_status_t
|
|
cipher_set_iv(cipher_t *cipher, void *iv);
|
|
|
|
/**
|
|
* @brief Encrypts a buffer with a given cipher.
|
|
* @warning May be implemented as a macro.
|
|
*/
|
|
|
|
err_status_t
|
|
cipher_encrypt(cipher_t *cipher, void *buf, unsigned int *len);
|
|
|
|
/**
|
|
* @brief Sets a buffer to the keystream generated by the cipher.
|
|
* @warning May be implemented as a macro.
|
|
*/
|
|
err_status_t
|
|
cipher_output(cipher_t *c, uint8_t *buffer, int num_octets_to_output);
|
|
|
|
/**
|
|
* @brief Deallocates a cipher.
|
|
* @warning May be implemented as a macro.
|
|
*/
|
|
err_status_t
|
|
cipher_dealloc(cipher_t *cipher);
|
|
|
|
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
*/ |