summaryrefslogtreecommitdiff
path: root/lib/crypto/c_src/cipher.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/crypto/c_src/cipher.c')
-rw-r--r--lib/crypto/c_src/cipher.c82
1 files changed, 42 insertions, 40 deletions
diff --git a/lib/crypto/c_src/cipher.c b/lib/crypto/c_src/cipher.c
index 3db2258d5e..f9fac1761a 100644
--- a/lib/crypto/c_src/cipher.c
+++ b/lib/crypto/c_src/cipher.c
@@ -26,72 +26,74 @@
#define COND_NO_DES_PTR(Ptr) (NULL)
#endif
+#define NOT_AEAD {{0,0,0}}
+
static struct cipher_type_t cipher_types[] =
{
#ifdef HAVE_RC2
- {{"rc2_cbc"}, {&EVP_rc2_cbc}, 0, NO_FIPS_CIPHER},
+ {{"rc2_cbc"}, {&EVP_rc2_cbc}, 0, NO_FIPS_CIPHER, NOT_AEAD},
#else
- {{"rc2_cbc"}, {NULL}, 0, NO_FIPS_CIPHER},
+ {{"rc2_cbc"}, {NULL}, 0, NO_FIPS_CIPHER, NOT_AEAD},
#endif
#ifdef HAVE_RC4
- {{"rc4"}, {&EVP_rc4}, 0, NO_FIPS_CIPHER},
+ {{"rc4"}, {&EVP_rc4}, 0, NO_FIPS_CIPHER, NOT_AEAD},
#else
- {{"rc4"}, {NULL}, 0, NO_FIPS_CIPHER},
+ {{"rc4"}, {NULL}, 0, NO_FIPS_CIPHER, NOT_AEAD},
#endif
- {{"des_cbc"}, {COND_NO_DES_PTR(&EVP_des_cbc)}, 0, NO_FIPS_CIPHER},
- {{"des_cfb"}, {COND_NO_DES_PTR(&EVP_des_cfb8)}, 0, NO_FIPS_CIPHER},
- {{"des_ecb"}, {COND_NO_DES_PTR(&EVP_des_ecb)}, 0, NO_FIPS_CIPHER | ECB_BUG_0_9_8L},
+ {{"des_cbc"}, {COND_NO_DES_PTR(&EVP_des_cbc)}, 0, NO_FIPS_CIPHER, NOT_AEAD},
+ {{"des_cfb"}, {COND_NO_DES_PTR(&EVP_des_cfb8)}, 0, NO_FIPS_CIPHER, NOT_AEAD},
+ {{"des_ecb"}, {COND_NO_DES_PTR(&EVP_des_ecb)}, 0, NO_FIPS_CIPHER | ECB_BUG_0_9_8L, NOT_AEAD},
- {{"des_ede3_cbc"}, {COND_NO_DES_PTR(&EVP_des_ede3_cbc)}, 0, 0},
+ {{"des_ede3_cbc"}, {COND_NO_DES_PTR(&EVP_des_ede3_cbc)}, 0, 0, NOT_AEAD},
#ifdef HAVE_DES_ede3_cfb_encrypt
- {{"des_ede3_cfb"}, {COND_NO_DES_PTR(&EVP_des_ede3_cfb8)}, 0, 0},
+ {{"des_ede3_cfb"}, {COND_NO_DES_PTR(&EVP_des_ede3_cfb8)}, 0, 0, NOT_AEAD},
#else
- {{"des_ede3_cfb"}, {NULL}, 0, 0},
+ {{"des_ede3_cfb"}, {NULL}, 0, 0, NOT_AEAD},
#endif
#ifdef HAVE_BF
- {{"blowfish_cbc"}, {&EVP_bf_cbc}, 0, NO_FIPS_CIPHER},
- {{"blowfish_cfb64"}, {&EVP_bf_cfb64}, 0, NO_FIPS_CIPHER},
- {{"blowfish_ofb64"}, {&EVP_bf_ofb}, 0, NO_FIPS_CIPHER},
- {{"blowfish_ecb"}, {&EVP_bf_ecb}, 0, NO_FIPS_CIPHER | ECB_BUG_0_9_8L},
+ {{"blowfish_cbc"}, {&EVP_bf_cbc}, 0, NO_FIPS_CIPHER, NOT_AEAD},
+ {{"blowfish_cfb64"}, {&EVP_bf_cfb64}, 0, NO_FIPS_CIPHER, NOT_AEAD},
+ {{"blowfish_ofb64"}, {&EVP_bf_ofb}, 0, NO_FIPS_CIPHER, NOT_AEAD},
+ {{"blowfish_ecb"}, {&EVP_bf_ecb}, 0, NO_FIPS_CIPHER | ECB_BUG_0_9_8L, NOT_AEAD},
#else
- {{"blowfish_cbc"}, {NULL}, 0, 0},
- {{"blowfish_cfb64"}, {NULL}, 0, 0},
- {{"blowfish_ofb64"}, {NULL}, 0, 0},
- {{"blowfish_ecb"}, {NULL}, 0, 0},
+ {{"blowfish_cbc"}, {NULL}, 0, 0, NOT_AEAD},
+ {{"blowfish_cfb64"}, {NULL}, 0, 0, NOT_AEAD},
+ {{"blowfish_ofb64"}, {NULL}, 0, 0, NOT_AEAD},
+ {{"blowfish_ecb"}, {NULL}, 0, 0, NOT_AEAD},
#endif
- {{"aes_128_cbc"}, {&EVP_aes_128_cbc}, 16, 0},
- {{"aes_192_cbc"}, {&EVP_aes_192_cbc}, 24, 0},
- {{"aes_256_cbc"}, {&EVP_aes_256_cbc}, 32, 0},
+ {{"aes_128_cbc"}, {&EVP_aes_128_cbc}, 16, 0, NOT_AEAD},
+ {{"aes_192_cbc"}, {&EVP_aes_192_cbc}, 24, 0, NOT_AEAD},
+ {{"aes_256_cbc"}, {&EVP_aes_256_cbc}, 32, 0, NOT_AEAD},
- {{"aes_128_cfb8"}, {&EVP_aes_128_cfb8}, 16, AES_CFBx},
- {{"aes_192_cfb8"}, {&EVP_aes_192_cfb8}, 24, AES_CFBx},
- {{"aes_256_cfb8"}, {&EVP_aes_256_cfb8}, 32, AES_CFBx},
+ {{"aes_128_cfb8"}, {&EVP_aes_128_cfb8}, 16, AES_CFBx, NOT_AEAD},
+ {{"aes_192_cfb8"}, {&EVP_aes_192_cfb8}, 24, AES_CFBx, NOT_AEAD},
+ {{"aes_256_cfb8"}, {&EVP_aes_256_cfb8}, 32, AES_CFBx, NOT_AEAD},
- {{"aes_128_cfb128"}, {&EVP_aes_128_cfb128}, 16, AES_CFBx},
- {{"aes_192_cfb128"}, {&EVP_aes_192_cfb128}, 24, AES_CFBx},
- {{"aes_256_cfb128"}, {&EVP_aes_256_cfb128}, 32, AES_CFBx},
+ {{"aes_128_cfb128"}, {&EVP_aes_128_cfb128}, 16, AES_CFBx, NOT_AEAD},
+ {{"aes_192_cfb128"}, {&EVP_aes_192_cfb128}, 24, AES_CFBx, NOT_AEAD},
+ {{"aes_256_cfb128"}, {&EVP_aes_256_cfb128}, 32, AES_CFBx, NOT_AEAD},
- {{"aes_128_ecb"}, {&EVP_aes_128_ecb}, 16, ECB_BUG_0_9_8L},
- {{"aes_192_ecb"}, {&EVP_aes_192_ecb}, 24, ECB_BUG_0_9_8L},
- {{"aes_256_ecb"}, {&EVP_aes_256_ecb}, 32, ECB_BUG_0_9_8L},
+ {{"aes_128_ecb"}, {&EVP_aes_128_ecb}, 16, ECB_BUG_0_9_8L, NOT_AEAD},
+ {{"aes_192_ecb"}, {&EVP_aes_192_ecb}, 24, ECB_BUG_0_9_8L, NOT_AEAD},
+ {{"aes_256_ecb"}, {&EVP_aes_256_ecb}, 32, ECB_BUG_0_9_8L, NOT_AEAD},
#if defined(HAVE_EVP_AES_CTR)
- {{"aes_128_ctr"}, {&EVP_aes_128_ctr}, 16, 0},
- {{"aes_192_ctr"}, {&EVP_aes_192_ctr}, 24, 0},
- {{"aes_256_ctr"}, {&EVP_aes_256_ctr}, 32, 0},
+ {{"aes_128_ctr"}, {&EVP_aes_128_ctr}, 16, 0, NOT_AEAD},
+ {{"aes_192_ctr"}, {&EVP_aes_192_ctr}, 24, 0, NOT_AEAD},
+ {{"aes_256_ctr"}, {&EVP_aes_256_ctr}, 32, 0, NOT_AEAD},
#else
- {{"aes_128_ctr"}, {NULL}, 16, AES_CTR_COMPAT},
- {{"aes_192_ctr"}, {NULL}, 24, AES_CTR_COMPAT},
- {{"aes_256_ctr"}, {NULL}, 32, AES_CTR_COMPAT},
+ {{"aes_128_ctr"}, {NULL}, 16, AES_CTR_COMPAT, NOT_AEAD},
+ {{"aes_192_ctr"}, {NULL}, 24, AES_CTR_COMPAT, NOT_AEAD},
+ {{"aes_256_ctr"}, {NULL}, 32, AES_CTR_COMPAT, NOT_AEAD},
#endif
#if defined(HAVE_CHACHA20)
- {{"chacha20"}, {&EVP_chacha20}, 32, NO_FIPS_CIPHER},
+ {{"chacha20"}, {&EVP_chacha20}, 32, NO_FIPS_CIPHER, NOT_AEAD},
#else
- {{"chacha20"}, {NULL}, 0, NO_FIPS_CIPHER},
+ {{"chacha20"}, {NULL}, 0, NO_FIPS_CIPHER, NOT_AEAD},
#endif
/*==== AEAD ciphers ====*/
@@ -123,12 +125,12 @@ static struct cipher_type_t cipher_types[] =
/*==== Specialy handled ciphers, only for inclusion in algorithm's list ====*/
#ifdef HAVE_AES_IGE
- {{"aes_ige256"}, {NULL}, 0, NO_FIPS_CIPHER | NON_EVP_CIPHER},
+ {{"aes_ige256"}, {NULL}, 0, NO_FIPS_CIPHER | NON_EVP_CIPHER, NOT_AEAD},
#endif
/*==== End of list ==== */
- {{NULL},{NULL},0,0}
+ {{NULL},{NULL},0,0,NOT_AEAD}
};
ErlNifResourceType* evp_cipher_ctx_rtype;