aboutsummaryrefslogtreecommitdiff
path: root/ssl
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2019-01-04 16:54:03 +0000
committerMatt Caswell <matt@openssl.org>2019-01-07 09:39:10 +0000
commit23fed8ba0ec895e1b2a089cae380697f15170afc (patch)
treebfdd8b2ca0329e2bd918b22cdb70aac0383b7926 /ssl
parent67ee899cb51d3e3d7b5f00b878f8f82a097b93f0 (diff)
downloadopenssl-23fed8ba0ec895e1b2a089cae380697f15170afc.zip
openssl-23fed8ba0ec895e1b2a089cae380697f15170afc.tar.gz
openssl-23fed8ba0ec895e1b2a089cae380697f15170afc.tar.bz2
Don't complain if we receive the cryptopro extension in the ClientHello
The cryptopro extension is supposed to be unsolicited and appears in the ServerHello only. Additionally it is unofficial and unregistered - therefore we should really treat it like any other unknown extension if we see it in the ClientHello. Fixes #7747 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/7984)
Diffstat (limited to 'ssl')
-rw-r--r--ssl/statem/extensions.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ssl/statem/extensions.c b/ssl/statem/extensions.c
index ffa4b46..773309a 100644
--- a/ssl/statem/extensions.c
+++ b/ssl/statem/extensions.c
@@ -348,10 +348,12 @@ static const EXTENSION_DEFINITION ext_defs[] = {
{
/*
* Special unsolicited ServerHello extension only used when
- * SSL_OP_CRYPTOPRO_TLSEXT_BUG is set
+ * SSL_OP_CRYPTOPRO_TLSEXT_BUG is set. We allow it in a ClientHello but
+ * ignore it.
*/
TLSEXT_TYPE_cryptopro_bug,
- SSL_EXT_TLS1_2_SERVER_HELLO | SSL_EXT_TLS1_2_AND_BELOW_ONLY,
+ SSL_EXT_CLIENT_HELLO | SSL_EXT_TLS1_2_SERVER_HELLO
+ | SSL_EXT_TLS1_2_AND_BELOW_ONLY,
NULL, NULL, NULL, tls_construct_stoc_cryptopro_bug, NULL, NULL
},
{