mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 12:14:38 +02:00
Merge pull request #2947 from SparkiDev/tls13_integ_fix
Fix TLS 1.3 integrity only for interop
This commit is contained in:
12
src/keys.c
12
src/keys.c
@@ -1074,7 +1074,7 @@ int SetCipherSpecs(WOLFSSL* ssl)
|
|||||||
ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;
|
ssl->specs.hash_size = WC_SHA256_DIGEST_SIZE;
|
||||||
ssl->specs.pad_size = PAD_SHA;
|
ssl->specs.pad_size = PAD_SHA;
|
||||||
ssl->specs.static_ecdh = 0;
|
ssl->specs.static_ecdh = 0;
|
||||||
ssl->specs.key_size = WC_SHA256_DIGEST_SIZE / 2;
|
ssl->specs.key_size = WC_SHA256_DIGEST_SIZE;
|
||||||
ssl->specs.block_size = 0;
|
ssl->specs.block_size = 0;
|
||||||
ssl->specs.iv_size = HMAC_NONCE_SZ;
|
ssl->specs.iv_size = HMAC_NONCE_SZ;
|
||||||
ssl->specs.aead_mac_size = WC_SHA256_DIGEST_SIZE;
|
ssl->specs.aead_mac_size = WC_SHA256_DIGEST_SIZE;
|
||||||
@@ -1092,7 +1092,7 @@ int SetCipherSpecs(WOLFSSL* ssl)
|
|||||||
ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE;
|
ssl->specs.hash_size = WC_SHA384_DIGEST_SIZE;
|
||||||
ssl->specs.pad_size = PAD_SHA;
|
ssl->specs.pad_size = PAD_SHA;
|
||||||
ssl->specs.static_ecdh = 0;
|
ssl->specs.static_ecdh = 0;
|
||||||
ssl->specs.key_size = WC_SHA384_DIGEST_SIZE / 2;
|
ssl->specs.key_size = WC_SHA384_DIGEST_SIZE;
|
||||||
ssl->specs.block_size = 0;
|
ssl->specs.block_size = 0;
|
||||||
ssl->specs.iv_size = HMAC_NONCE_SZ;
|
ssl->specs.iv_size = HMAC_NONCE_SZ;
|
||||||
ssl->specs.aead_mac_size = WC_SHA384_DIGEST_SIZE;
|
ssl->specs.aead_mac_size = WC_SHA384_DIGEST_SIZE;
|
||||||
@@ -2931,11 +2931,15 @@ static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
|
|||||||
|
|
||||||
if (side == WOLFSSL_CLIENT_END) {
|
if (side == WOLFSSL_CLIENT_END) {
|
||||||
if (enc) {
|
if (enc) {
|
||||||
|
XMEMCPY(keys->aead_enc_imp_IV, keys->client_write_IV,
|
||||||
|
HMAC_NONCE_SZ);
|
||||||
hmacRet = wc_HmacSetKey(enc->hmac, hashType,
|
hmacRet = wc_HmacSetKey(enc->hmac, hashType,
|
||||||
keys->client_write_key, specs->key_size);
|
keys->client_write_key, specs->key_size);
|
||||||
if (hmacRet != 0) return hmacRet;
|
if (hmacRet != 0) return hmacRet;
|
||||||
}
|
}
|
||||||
if (dec) {
|
if (dec) {
|
||||||
|
XMEMCPY(keys->aead_dec_imp_IV, keys->server_write_IV,
|
||||||
|
HMAC_NONCE_SZ);
|
||||||
hmacRet = wc_HmacSetKey(dec->hmac, hashType,
|
hmacRet = wc_HmacSetKey(dec->hmac, hashType,
|
||||||
keys->server_write_key, specs->key_size);
|
keys->server_write_key, specs->key_size);
|
||||||
if (hmacRet != 0) return hmacRet;
|
if (hmacRet != 0) return hmacRet;
|
||||||
@@ -2943,11 +2947,15 @@ static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (enc) {
|
if (enc) {
|
||||||
|
XMEMCPY(keys->aead_enc_imp_IV, keys->server_write_IV,
|
||||||
|
HMAC_NONCE_SZ);
|
||||||
hmacRet = wc_HmacSetKey(enc->hmac, hashType,
|
hmacRet = wc_HmacSetKey(enc->hmac, hashType,
|
||||||
keys->server_write_key, specs->key_size);
|
keys->server_write_key, specs->key_size);
|
||||||
if (hmacRet != 0) return hmacRet;
|
if (hmacRet != 0) return hmacRet;
|
||||||
}
|
}
|
||||||
if (dec) {
|
if (dec) {
|
||||||
|
XMEMCPY(keys->aead_dec_imp_IV, keys->client_write_IV,
|
||||||
|
HMAC_NONCE_SZ);
|
||||||
hmacRet = wc_HmacSetKey(dec->hmac, hashType,
|
hmacRet = wc_HmacSetKey(dec->hmac, hashType,
|
||||||
keys->client_write_key, specs->key_size);
|
keys->client_write_key, specs->key_size);
|
||||||
if (hmacRet != 0) return hmacRet;
|
if (hmacRet != 0) return hmacRet;
|
||||||
|
@@ -72,6 +72,9 @@
|
|||||||
#ifndef NO_SHA256
|
#ifndef NO_SHA256
|
||||||
#include <wolfssl/wolfcrypt/sha256.h>
|
#include <wolfssl/wolfcrypt/sha256.h>
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(WOLFSSL_SHA384)
|
||||||
|
#include <wolfssl/wolfcrypt/sha512.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_OCSP
|
#ifdef HAVE_OCSP
|
||||||
#include <wolfssl/ocsp.h>
|
#include <wolfssl/ocsp.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -1355,7 +1358,17 @@ enum Misc {
|
|||||||
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2))
|
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2))
|
||||||
MAX_SYM_KEY_SIZE = AES_256_KEY_SIZE,
|
MAX_SYM_KEY_SIZE = AES_256_KEY_SIZE,
|
||||||
#else
|
#else
|
||||||
MAX_SYM_KEY_SIZE = WC_MAX_SYM_KEY_SIZE,
|
#if defined(HAVE_NULL_CIPHER) && defined(WOLFSSL_TLS13)
|
||||||
|
#if defined(WOLFSSL_SHA384) && WC_MAX_SYM_KEY_SIZE < 48
|
||||||
|
MAX_SYM_KEY_SIZE = WC_SHA384_DIGEST_SIZE,
|
||||||
|
#elif !defined(NO_SHA256) && WC_MAX_SYM_KEY_SIZE < 32
|
||||||
|
MAX_SYM_KEY_SIZE = WC_SHA256_DIGEST_SIZE,
|
||||||
|
#else
|
||||||
|
MAX_SYM_KEY_SIZE = WC_MAX_SYM_KEY_SIZE,
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
MAX_SYM_KEY_SIZE = WC_MAX_SYM_KEY_SIZE,
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SELFTEST
|
#ifdef HAVE_SELFTEST
|
||||||
|
Reference in New Issue
Block a user