diff options
author | Andy Polyakov <appro@openssl.org> | 2011-11-15 12:19:56 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-11-15 12:19:56 +0000 |
commit | e6ccc6ed70ca66c12737fbd9d35dfa6e588883aa (patch) | |
tree | 6db98012f65d99b243f9f621ce906f695b2a0b9f /crypto/evp | |
parent | e959a01faca639958eb22c5705ac221f27ebeaa6 (diff) |
Configure, e_aes.c: allow for XTS assembler implementation [from HEAD].
Diffstat (limited to 'crypto/evp')
-rw-r--r-- | crypto/evp/e_aes.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c index 0c6ef73bb1..1e4af0cb75 100644 --- a/crypto/evp/e_aes.c +++ b/crypto/evp/e_aes.c @@ -144,6 +144,14 @@ void AES_ctr32_encrypt(const unsigned char *in, unsigned char *out, size_t blocks, const AES_KEY *key, const unsigned char ivec[AES_BLOCK_SIZE]); #endif +#ifdef AES_XTS_ASM +void AES_xts_encrypt(const char *inp,char *out,size_t len, + const AES_KEY *key1, const AES_KEY *key2, + const unsigned char iv[16]); +void AES_xts_decrypt(const char *inp,char *out,size_t len, + const AES_KEY *key1, const AES_KEY *key2, + const unsigned char iv[16]); +#endif #if defined(AES_ASM) && !defined(I386_ONLY) && ( \ ((defined(__i386) || defined(__i386__) || \ @@ -1050,7 +1058,11 @@ static int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, if (key) do { +#ifdef AES_XTS_ASM + xctx->stream = enc ? AES_xts_encrypt : AES_xts_decrypt; +#else xctx->stream = NULL; +#endif /* key_len is two AES keys */ #ifdef BSAES_CAPABLE if (BSAES_CAPABLE) |