diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-09-01 18:41:34 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-09-01 18:41:34 +0200 |
commit | 18b0ee5a1cbbbdf8813c8ebdebae27684d75b1cd (patch) | |
tree | a9aa639ebddd92a80ca787a67c9797047d301588 /examples/shm/aes.h | |
parent | e592413c53d1a2b27323c6014b4d471be26ad54c (diff) | |
download | cryptodev-linux-18b0ee5a1cbbbdf8813c8ebdebae27684d75b1cd.tar.gz cryptodev-linux-18b0ee5a1cbbbdf8813c8ebdebae27684d75b1cd.tar.xz cryptodev-linux-18b0ee5a1cbbbdf8813c8ebdebae27684d75b1cd.zip |
Added an emulation of a userspace application that provides encryption service.
Diffstat (limited to 'examples/shm/aes.h')
-rw-r--r-- | examples/shm/aes.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/examples/shm/aes.h b/examples/shm/aes.h new file mode 100644 index 0000000..ee13dcb --- /dev/null +++ b/examples/shm/aes.h @@ -0,0 +1,40 @@ +/* + * Common values for AES algorithms + */ + +#ifndef _CRYPTO_AES_H +#define _CRYPTO_AES_H +# include <stdint.h> +# include <string.h> + +#define AES_MIN_KEY_SIZE 16 +#define AES_MAX_KEY_SIZE 32 +#define AES_KEYSIZE_128 16 +#define AES_KEYSIZE_192 24 +#define AES_KEYSIZE_256 32 +#define AES_BLOCK_SIZE 16 +#define AES_MAX_KEYLENGTH (15 * 16) +#define AES_MAX_KEYLENGTH_U32 (AES_MAX_KEYLENGTH / sizeof(uint32_t)) + +/* + * Please ensure that the first two fields are 16-byte aligned + * relative to the start of the structure, i.e., don't move them! + */ +struct crypto_aes_ctx { + uint32_t key_enc[AES_MAX_KEYLENGTH_U32]; + uint32_t key_dec[AES_MAX_KEYLENGTH_U32]; + uint32_t key_length; +}; + +extern const uint32_t crypto_ft_tab[4][256]; +extern const uint32_t crypto_fl_tab[4][256]; +extern const uint32_t crypto_it_tab[4][256]; +extern const uint32_t crypto_il_tab[4][256]; + +int crypto_aes_expand_key(struct crypto_aes_ctx *ctx, const uint8_t *in_key, + unsigned int key_len); + +int crypto_cbc_encrypt(const struct crypto_aes_ctx *ctx, + void* src, int nbytes, void* dst, void* iv); + +#endif |