mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-06 21:40:52 +02:00
fix: EVP_CIPHER_iv_length returns 0 for CFB/OFB modes
This commit is contained in:
@@ -501,6 +501,28 @@ int test_wolfSSL_EVP_CIPHER_iv_length(void)
|
||||
#if defined(HAVE_CHACHA) && defined(HAVE_POLY1305)
|
||||
NID_chacha20_poly1305,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_CFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
NID_aes_128_cfb128,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
NID_aes_192_cfb128,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
NID_aes_256_cfb128,
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_CFB */
|
||||
#ifdef WOLFSSL_AES_OFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
NID_aes_128_ofb,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
NID_aes_192_ofb,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
NID_aes_256_ofb,
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_OFB */
|
||||
};
|
||||
int iv_lengths[] = {
|
||||
#if defined(HAVE_AES_CBC) || defined(WOLFSSL_AES_DIRECT)
|
||||
@@ -546,6 +568,28 @@ int test_wolfSSL_EVP_CIPHER_iv_length(void)
|
||||
#if defined(HAVE_CHACHA) && defined(HAVE_POLY1305)
|
||||
CHACHA20_POLY1305_AEAD_IV_SIZE,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_CFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
AES_BLOCK_SIZE,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
AES_BLOCK_SIZE,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
AES_BLOCK_SIZE,
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_CFB */
|
||||
#ifdef WOLFSSL_AES_OFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
AES_BLOCK_SIZE,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
AES_BLOCK_SIZE,
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
AES_BLOCK_SIZE,
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_OFB */
|
||||
};
|
||||
int i;
|
||||
int nidsLen = (sizeof(nids)/sizeof(int));
|
||||
|
||||
@@ -9960,6 +9960,61 @@ int wolfSSL_EVP_CIPHER_iv_length(const WOLFSSL_EVP_CIPHER* cipher)
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
#endif /* WOLFSSL_AES_XTS && (!defined(HAVE_FIPS) || FIPS_VERSION_GE(5,3)) */
|
||||
|
||||
#ifdef WOLFSSL_AES_OFB
|
||||
#ifdef WOLFSSL_AES_128
|
||||
if (XSTRCMP(name, EVP_AES_128_OFB) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
if (XSTRCMP(name, EVP_AES_192_OFB) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
if (XSTRCMP(name, EVP_AES_256_OFB) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_OFB */
|
||||
#ifdef WOLFSSL_AES_CFB
|
||||
#ifndef WOLFSSL_NO_AES_CFB_1_8
|
||||
#ifdef WOLFSSL_AES_128
|
||||
if (XSTRCMP(name, EVP_AES_128_CFB1) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
if (XSTRCMP(name, EVP_AES_192_CFB1) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
if (XSTRCMP(name, EVP_AES_256_CFB1) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_128
|
||||
if (XSTRCMP(name, EVP_AES_128_CFB8) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
if (XSTRCMP(name, EVP_AES_192_CFB8) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
if (XSTRCMP(name, EVP_AES_256_CFB8) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#endif /* !WOLFSSL_NO_AES_CFB_1_8 */
|
||||
#ifdef WOLFSSL_AES_128
|
||||
if (XSTRCMP(name, EVP_AES_128_CFB128) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_192
|
||||
if (XSTRCMP(name, EVP_AES_192_CFB128) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_256
|
||||
if (XSTRCMP(name, EVP_AES_256_CFB128) == 0)
|
||||
return WC_AES_BLOCK_SIZE;
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_CFB */
|
||||
|
||||
#endif
|
||||
#ifdef HAVE_ARIA
|
||||
if (XSTRCMP(name, EVP_ARIA_128_GCM) == 0)
|
||||
|
||||
Reference in New Issue
Block a user