12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /**
- @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);
- /**
- * @}
- */
- */
|