提交 1aac20f5 编写于 作者: M Matt Caswell

Fix no-ec in combination with no-dh

Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6321)
上级 d61e6040
...@@ -721,6 +721,7 @@ int tls_parse_ctos_key_share(SSL *s, PACKET *pkt, unsigned int context, X509 *x, ...@@ -721,6 +721,7 @@ int tls_parse_ctos_key_share(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
int tls_parse_ctos_cookie(SSL *s, PACKET *pkt, unsigned int context, X509 *x, int tls_parse_ctos_cookie(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
size_t chainidx) size_t chainidx)
{ {
#ifndef OPENSSL_NO_TLS1_3
unsigned int format, version, key_share, group_id; unsigned int format, version, key_share, group_id;
EVP_MD_CTX *hctx; EVP_MD_CTX *hctx;
EVP_PKEY *pkey; EVP_PKEY *pkey;
...@@ -936,6 +937,7 @@ int tls_parse_ctos_cookie(SSL *s, PACKET *pkt, unsigned int context, X509 *x, ...@@ -936,6 +937,7 @@ int tls_parse_ctos_cookie(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
s->hello_retry_request = 1; s->hello_retry_request = 1;
s->ext.cookieok = 1; s->ext.cookieok = 1;
#endif
return 1; return 1;
} }
...@@ -1694,14 +1696,16 @@ EXT_RETURN tls_construct_stoc_key_share(SSL *s, WPACKET *pkt, ...@@ -1694,14 +1696,16 @@ EXT_RETURN tls_construct_stoc_key_share(SSL *s, WPACKET *pkt,
/* SSLfatal() already called */ /* SSLfatal() already called */
return EXT_RETURN_FAIL; return EXT_RETURN_FAIL;
} }
#endif
return EXT_RETURN_SENT; return EXT_RETURN_SENT;
#else
return EXT_RETURN_FAIL;
#endif
} }
EXT_RETURN tls_construct_stoc_cookie(SSL *s, WPACKET *pkt, unsigned int context, EXT_RETURN tls_construct_stoc_cookie(SSL *s, WPACKET *pkt, unsigned int context,
X509 *x, size_t chainidx) X509 *x, size_t chainidx)
{ {
#ifndef OPENSSL_NO_TLS1_3
unsigned char *hashval1, *hashval2, *appcookie1, *appcookie2, *cookie; unsigned char *hashval1, *hashval2, *appcookie1, *appcookie2, *cookie;
unsigned char *hmac, *hmac2; unsigned char *hmac, *hmac2;
size_t startlen, ciphlen, totcookielen, hashlen, hmaclen, appcookielen; size_t startlen, ciphlen, totcookielen, hashlen, hmaclen, appcookielen;
...@@ -1826,6 +1830,9 @@ EXT_RETURN tls_construct_stoc_cookie(SSL *s, WPACKET *pkt, unsigned int context, ...@@ -1826,6 +1830,9 @@ EXT_RETURN tls_construct_stoc_cookie(SSL *s, WPACKET *pkt, unsigned int context,
EVP_MD_CTX_free(hctx); EVP_MD_CTX_free(hctx);
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
return ret; return ret;
#else
return EXT_RETURN_FAIL;
#endif
} }
EXT_RETURN tls_construct_stoc_cryptopro_bug(SSL *s, WPACKET *pkt, EXT_RETURN tls_construct_stoc_cryptopro_bug(SSL *s, WPACKET *pkt,
......
...@@ -116,7 +116,16 @@ static int test_dtls_unprocessed(int testidx) ...@@ -116,7 +116,16 @@ static int test_dtls_unprocessed(int testidx)
#define CLI_TO_SRV_EPOCH_0_RECS 3 #define CLI_TO_SRV_EPOCH_0_RECS 3
#define CLI_TO_SRV_EPOCH_1_RECS 1 #define CLI_TO_SRV_EPOCH_1_RECS 1
#define SRV_TO_CLI_EPOCH_0_RECS 12 #if !defined(OPENSSL_NO_EC) || !defined(OPENSSL_NO_DH)
# define SRV_TO_CLI_EPOCH_0_RECS 12
#else
/*
* In this case we have no ServerKeyExchange message, because we don't have
* ECDHE or DHE. When it is present it gets fragmented into 3 records in this
* test.
*/
# define SRV_TO_CLI_EPOCH_0_RECS 9
#endif
#define SRV_TO_CLI_EPOCH_1_RECS 1 #define SRV_TO_CLI_EPOCH_1_RECS 1
#define TOTAL_FULL_HAND_RECORDS \ #define TOTAL_FULL_HAND_RECORDS \
(CLI_TO_SRV_EPOCH_0_RECS + CLI_TO_SRV_EPOCH_1_RECS + \ (CLI_TO_SRV_EPOCH_0_RECS + CLI_TO_SRV_EPOCH_1_RECS + \
......
...@@ -4473,7 +4473,9 @@ static int test_info_callback(int tst) ...@@ -4473,7 +4473,9 @@ static int test_info_callback(int tst)
int tlsvers; int tlsvers;
if (tst < 2) { if (tst < 2) {
#ifndef OPENSSL_NO_TLS1_2 /* We need either ECDHE or DHE for the TLSv1.2 test to work */
#if !defined(OPENSSL_NO_TLS1_2) && (!defined(OPENSSL_NO_EC) \
|| !defined(OPENSSL_NO_DH))
tlsvers = TLS1_2_VERSION; tlsvers = TLS1_2_VERSION;
#else #else
return 1; return 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册