summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/SChannelEngine.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2019-01-15 12:00:51 +0100
committerJose <jose@zeroc.com>2019-01-15 12:00:51 +0100
commit8249fd248844bc45ff5088f12268b09bf4a8a851 (patch)
tree6812f2d95e1773a91f61a80b75d282d0c23c213b /cpp/src/IceSSL/SChannelEngine.cpp
parentRevert "Enable tracing for allTests.py to investigate iOS failures" (diff)
downloadice-8249fd248844bc45ff5088f12268b09bf4a8a851.tar.bz2
ice-8249fd248844bc45ff5088f12268b09bf4a8a851.tar.xz
ice-8249fd248844bc45ff5088f12268b09bf4a8a851.zip
IceSSL TLSv1.3 preliminary support
Diffstat (limited to 'cpp/src/IceSSL/SChannelEngine.cpp')
-rw-r--r--cpp/src/IceSSL/SChannelEngine.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/cpp/src/IceSSL/SChannelEngine.cpp b/cpp/src/IceSSL/SChannelEngine.cpp
index 19a50c49631..1dbbf390fd2 100644
--- a/cpp/src/IceSSL/SChannelEngine.cpp
+++ b/cpp/src/IceSSL/SChannelEngine.cpp
@@ -22,6 +22,15 @@
#include <wincrypt.h>
//
+// SP_PROT_TLS1_3 is new in v10.0.15021 SDK
+//
+#ifndef SP_PROT_TLS1_3
+# define SP_PROT_TLS1_3_SERVER 0x00001000
+# define SP_PROT_TLS1_3_CLIENT 0x00002000
+# define SP_PROT_TLS1_3 (SP_PROT_TLS1_3_SERVER | SP_PROT_TLS1_3_CLIENT)
+#endif
+
+//
// CALG_ECDH_EPHEM algorithm constant is not defined in older version of the SDK headers
//
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549(v=vs.85).aspx
@@ -417,23 +426,23 @@ parseProtocols(const StringSeq& protocols)
if(prot == "SSL3" || prot == "SSLV3")
{
- v |= SP_PROT_SSL3_SERVER;
- v |= SP_PROT_SSL3_CLIENT;
+ v |= SP_PROT_SSL3;
}
else if(prot == "TLS" || prot == "TLS1" || prot == "TLSV1" || prot == "TLS1_0" || prot == "TLSV1_0")
{
- v |= SP_PROT_TLS1_SERVER;
- v |= SP_PROT_TLS1_CLIENT;
+ v |= SP_PROT_TLS1;
}
else if(prot == "TLS1_1" || prot == "TLSV1_1")
{
- v |= SP_PROT_TLS1_1_SERVER;
- v |= SP_PROT_TLS1_1_CLIENT;
+ v |= SP_PROT_TLS1_1;
}
else if(prot == "TLS1_2" || prot == "TLSV1_2")
{
- v |= SP_PROT_TLS1_2_SERVER;
- v |= SP_PROT_TLS1_2_CLIENT;
+ v |= SP_PROT_TLS1_2;
+ }
+ else if (prot == "TLS1_3" || prot == "TLSV1_2")
+ {
+ v |= SP_PROT_TLS1_3;
}
else
{