X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Faes.h;h=6315c02aa93d9fc6a4cda3f52f4912c8ebe2e5a0;hb=9902c113ade2c9af701785b982a1a4db4a2395ec;hp=d9bb3876140649fd343bc11e67f671c6736e6fac;hpb=6e7b9f4fa0aed88051d6700afa510430b5d3fb69;p=u-boot diff --git a/include/aes.h b/include/aes.h index d9bb387614..6315c02aa9 100644 --- a/include/aes.h +++ b/include/aes.h @@ -8,6 +8,13 @@ #ifndef _AES_REF_H_ #define _AES_REF_H_ +#ifdef USE_HOSTCC +/* Define compat stuff for use in fw_* tools. */ +typedef unsigned char u8; +typedef unsigned int u32; +#define debug(...) do {} while (0) +#endif + /* * AES encryption library, with small code size, supporting only 128-bit AES * @@ -53,6 +60,17 @@ void aes_encrypt(u8 *in, u8 *expkey, u8 *out); */ void aes_decrypt(u8 *in, u8 *expkey, u8 *out); +/** + * Apply chain data to the destination using EOR + * + * Each array is of length AES_KEY_LENGTH. + * + * @cbc_chain_data Chain data + * @src Source data + * @dst Destination data, which is modified here + */ +void aes_apply_cbc_chain_data(u8 *cbc_chain_data, u8 *src, u8 *dst); + /** * aes_cbc_encrypt_blocks() - Encrypt multiple blocks of data with AES CBC. * @@ -63,4 +81,14 @@ void aes_decrypt(u8 *in, u8 *expkey, u8 *out); */ void aes_cbc_encrypt_blocks(u8 *key_exp, u8 *src, u8 *dst, u32 num_aes_blocks); +/** + * Decrypt multiple blocks of data with AES CBC. + * + * @key_exp Expanded key to use + * @src Source data to decrypt + * @dst Destination buffer + * @num_aes_blocks Number of AES blocks to decrypt + */ +void aes_cbc_decrypt_blocks(u8 *key_exp, u8 *src, u8 *dst, u32 num_aes_blocks); + #endif /* _AES_REF_H_ */