summaryrefslogtreecommitdiff
path: root/extra/yassl/src/handshake.cpp
diff options
context:
space:
mode:
authorAnirudh Mangipudi <anirudh.mangipudi@oracle.com>2014-01-08 18:31:42 +0530
committerAnirudh Mangipudi <anirudh.mangipudi@oracle.com>2014-01-08 18:31:42 +0530
commit14be19518703542a6934c28536421d47ff08ec09 (patch)
tree2892d634e2ed957b7deeb69d3deab151678972c5 /extra/yassl/src/handshake.cpp
parent1ef8ed17f1b8547eed41f94edc73ca9b9c9dd2ea (diff)
downloadmariadb-git-14be19518703542a6934c28536421d47ff08ec09.tar.gz
Bug#16715064 MYSQL COMMUNITY UTILITIES CANNOT CONNECT TO MYSQL ENTERPRISE
WITH SSL ENABLED Problem: It was reported that MySQL community utilities cannot connect to a MySQL Enterprise 5.6.x server with SSL configured. We can reproduce the issue when we try to connect an MySQL Enterprise Server with a MySQL Client with --ssl-ca parameter enabled. We get an ERROR 2026 (HY000): SSL connection error: unknown error number. Solution: The root cause of the problem was determined to be the difference in handling of the certificates by OpenSSL(Enterprise) and yaSSL(Community). OpenSSL expects a blank certificate to be sent when a parameter (ssl-ca, or ssl-cert or ssl-key) has not been specified.On the other hand yaSSL doesn't send any certificate and since OpenSSL does not expect this behaviour it returns an Unknown SSL error. The issue was resolved by yaSSL adding capability to send blank certificate when any of the parameter is missing.
Diffstat (limited to 'extra/yassl/src/handshake.cpp')
-rw-r--r--extra/yassl/src/handshake.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp
index d99adf88ce9..058f8596546 100644
--- a/extra/yassl/src/handshake.cpp
+++ b/extra/yassl/src/handshake.cpp
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1159,6 +1159,8 @@ void sendCertificateVerify(SSL& ssl, BufferOutput buffer)
{
if (ssl.GetError()) return;
+ if(ssl.getCrypto().get_certManager().sendBlankCert()) return;
+
CertificateVerify verify;
verify.Build(ssl);
RecordLayerHeader rlHeader;