mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +02:00
Fix CFB and OFB
This commit is contained in:
69
src/ssl.c
69
src/ssl.c
@ -18077,7 +18077,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
||||
ctx->flags |= WOLFSSL_EVP_CIPH_XTS_MODE;
|
||||
ctx->keyLen = 32;
|
||||
ctx->block_size = 1;
|
||||
ctx->ivSz = 16;
|
||||
ctx->ivSz = AES_BLOCK_SIZE;
|
||||
|
||||
if (iv)
|
||||
XMEMCPY(ctx->iv, iv, ctx->ivSz);
|
||||
@ -18105,7 +18105,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
||||
ctx->flags |= WOLFSSL_EVP_CIPH_XTS_MODE;
|
||||
ctx->keyLen = 64;
|
||||
ctx->block_size = 1;
|
||||
ctx->ivSz = 16;
|
||||
ctx->ivSz = AES_BLOCK_SIZE;
|
||||
|
||||
if (iv)
|
||||
XMEMCPY(ctx->iv, iv, ctx->ivSz);
|
||||
@ -18595,7 +18595,38 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
||||
XMEMCPY(ctx->iv, &ctx->cipher.aes.reg, AES_BLOCK_SIZE);
|
||||
break;
|
||||
#endif /* WOLFSSL_AES_COUNTER */
|
||||
|
||||
#ifdef WOLFSSL_AES_CFB
|
||||
#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
|
||||
case AES_128_CFB1_TYPE:
|
||||
case AES_192_CFB1_TYPE:
|
||||
case AES_256_CFB1_TYPE:
|
||||
WOLFSSL_MSG("AES CFB1");
|
||||
break;
|
||||
case AES_128_CFB8_TYPE:
|
||||
case AES_192_CFB8_TYPE:
|
||||
case AES_256_CFB8_TYPE:
|
||||
WOLFSSL_MSG("AES CFB8");
|
||||
break;
|
||||
#endif /* !HAVE_SELFTEST && !HAVE_FIPS */
|
||||
case AES_128_CFB128_TYPE:
|
||||
case AES_192_CFB128_TYPE:
|
||||
case AES_256_CFB128_TYPE:
|
||||
WOLFSSL_MSG("AES CFB128");
|
||||
break;
|
||||
#endif /* WOLFSSL_AES_CFB */
|
||||
#if defined(WOLFSSL_AES_OFB)
|
||||
case AES_128_OFB_TYPE:
|
||||
case AES_192_OFB_TYPE:
|
||||
case AES_256_OFB_TYPE:
|
||||
WOLFSSL_MSG("AES OFB");
|
||||
break;
|
||||
#endif /* WOLFSSL_AES_OFB */
|
||||
#ifdef WOLFSSL_AES_XTS
|
||||
case AES_128_XTS_TYPE:
|
||||
case AES_256_XTS_TYPE:
|
||||
WOLFSSL_MSG("AES XTS");
|
||||
break;
|
||||
#endif /* WOLFSSL_AES_XTS */
|
||||
#endif /* NO_AES */
|
||||
|
||||
#ifndef NO_DES3
|
||||
@ -33704,6 +33735,38 @@ int wolfSSL_EVP_CIPHER_CTX_iv_length(const WOLFSSL_EVP_CIPHER_CTX* ctx)
|
||||
WOLFSSL_MSG("ARC4");
|
||||
return 0;
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_CFB
|
||||
#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
|
||||
case AES_128_CFB1_TYPE:
|
||||
case AES_192_CFB1_TYPE:
|
||||
case AES_256_CFB1_TYPE:
|
||||
WOLFSSL_MSG("AES CFB1");
|
||||
return AES_BLOCK_SIZE;
|
||||
case AES_128_CFB8_TYPE:
|
||||
case AES_192_CFB8_TYPE:
|
||||
case AES_256_CFB8_TYPE:
|
||||
WOLFSSL_MSG("AES CFB8");
|
||||
return AES_BLOCK_SIZE;
|
||||
#endif /* !HAVE_SELFTEST && !HAVE_FIPS */
|
||||
case AES_128_CFB128_TYPE:
|
||||
case AES_192_CFB128_TYPE:
|
||||
case AES_256_CFB128_TYPE:
|
||||
WOLFSSL_MSG("AES CFB128");
|
||||
return AES_BLOCK_SIZE;
|
||||
#endif /* WOLFSSL_AES_CFB */
|
||||
#if defined(WOLFSSL_AES_OFB)
|
||||
case AES_128_OFB_TYPE:
|
||||
case AES_192_OFB_TYPE:
|
||||
case AES_256_OFB_TYPE:
|
||||
WOLFSSL_MSG("AES OFB");
|
||||
return AES_BLOCK_SIZE;
|
||||
#endif /* WOLFSSL_AES_OFB */
|
||||
#ifdef WOLFSSL_AES_XTS
|
||||
case AES_128_XTS_TYPE:
|
||||
case AES_256_XTS_TYPE:
|
||||
WOLFSSL_MSG("AES XTS");
|
||||
return AES_BLOCK_SIZE;
|
||||
#endif /* WOLFSSL_AES_XTS */
|
||||
|
||||
case NULL_CIPHER_TYPE :
|
||||
WOLFSSL_MSG("NULL");
|
||||
|
@ -6423,27 +6423,6 @@ EVP_TEST_END:
|
||||
}
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
#ifdef WOLFSSL_AES_192
|
||||
/* 192 key tests */
|
||||
#ifdef OPENSSL_EXTRA
|
||||
ret = EVP_test(EVP_aes_192_cfb8(), key2, iv2, msg2, sizeof(msg2),
|
||||
cipher2, sizeof(cipher2));
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_192 */
|
||||
#ifdef WOLFSSL_AES_256
|
||||
/* 192 key tests */
|
||||
#ifdef OPENSSL_EXTRA
|
||||
ret = EVP_test(EVP_aes_256_cfb8(), key3, iv3, msg3, sizeof(msg3),
|
||||
cipher3, sizeof(cipher3));
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
|
||||
#ifdef WOLFSSL_AES_192
|
||||
/* 192 key tests */
|
||||
ret = wc_AesSetKey(&enc, key2, sizeof(key2), iv2, AES_ENCRYPTION);
|
||||
@ -6635,6 +6614,49 @@ EVP_TEST_END:
|
||||
return -4746;
|
||||
#endif /* HAVE_AES_DECRYPT */
|
||||
#endif /* WOLFSSL_AES_128 */
|
||||
#ifdef WOLFSSL_AES_192
|
||||
/* 192 key tests */
|
||||
ret = wc_AesSetKey(&enc, key2, sizeof(key2), iv2, AES_ENCRYPTION);
|
||||
if (ret != 0)
|
||||
return -4749;
|
||||
|
||||
XMEMSET(cipher, 0, sizeof(cipher));
|
||||
ret = wc_AesCfb8Encrypt(&enc, cipher, msg2, sizeof(msg2));
|
||||
if (ret != 0)
|
||||
return -4750;
|
||||
if (XMEMCMP(cipher, cipher2, sizeof(msg2)) != 0)
|
||||
return -4751;
|
||||
#ifdef OPENSSL_EXTRA
|
||||
ret = EVP_test(EVP_aes_192_cfb8(), key2, iv2, msg2, sizeof(msg2),
|
||||
cipher2, sizeof(msg2));
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* WOLFSSL_AES_192 */
|
||||
|
||||
#ifdef WOLFSSL_AES_256
|
||||
/* 256 key tests */
|
||||
ret = wc_AesSetKey(&enc, key3, sizeof(key3), iv3, AES_ENCRYPTION);
|
||||
if (ret != 0)
|
||||
return -4754;
|
||||
|
||||
XMEMSET(cipher, 0, sizeof(cipher));
|
||||
ret = wc_AesCfb8Encrypt(&enc, cipher, msg3, sizeof(msg3));
|
||||
if (ret != 0)
|
||||
return -4755;
|
||||
if (XMEMCMP(cipher, cipher3, sizeof(cipher3)) != 0)
|
||||
return -4756;
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
ret = EVP_test(EVP_aes_256_cfb8(), key3, iv3, msg3, sizeof(msg3),
|
||||
cipher3, sizeof(msg3));
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif /* WOLFSSL_AES_256 */
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user