openssl tls v1.3 draft 18

pull/1167/head
Pirabarlen Cheenaramen 2017-11-12 00:18:30 +01:00
parent 450b4f467f
commit fa74545e6b
8 changed files with 16 additions and 2 deletions

View File

@ -1477,7 +1477,7 @@ Advanced Options
.. option:: --min-tls-version=<VERSION>
Specify minimum SSL/TLS version to enable.
Possible Values: ``SSLv3``, ``TLSv1``, ``TLSv1.1``, ``TLSv1.2``
Possible Values: ``SSLv3``, ``TLSv1``, ``TLSv1.1``, ``TLSv1.2``, ``TLSv1.3``
Default: ``TLSv1``
.. option:: --multiple-interface=<INTERFACES>

View File

@ -112,6 +112,8 @@ OpenSSLTLSContext::OpenSSLTLSContext(TLSSessionSide side, TLSVersion minVer)
long ver_opts = 0;
switch (minVer) {
case TLS_PROTO_TLS13:
ver_opts |= SSL_OP_NO_TLSv1_2;
case TLS_PROTO_TLS12:
ver_opts |= SSL_OP_NO_TLSv1_1;
// fall through

View File

@ -217,6 +217,12 @@ int OpenSSLTLSSession::handshake(TLSVersion& version)
break;
#endif // TLS1_2_VERSION
#ifdef TLS1_3_VERSION
case TLS1_3_VERSION:
version = TLS_PROTO_TLS13;
break;
#endif //TLS1_3_VERSION
default:
version = TLS_PROTO_NONE;
break;

View File

@ -514,7 +514,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
{
OptionHandler* op(new ParameterOptionHandler(
PREF_MIN_TLS_VERSION, TEXT_MIN_TLS_VERSION, A2_V_TLS10,
{A2_V_SSL3, A2_V_TLS10, A2_V_TLS11, A2_V_TLS12}));
{A2_V_SSL3, A2_V_TLS10, A2_V_TLS11, A2_V_TLS12, A2_V_TLS13}));
op->addTag(TAG_ADVANCED);
handlers.push_back(op);
}

View File

@ -49,6 +49,7 @@ enum TLSVersion {
TLS_PROTO_TLS10,
TLS_PROTO_TLS11,
TLS_PROTO_TLS12,
TLS_PROTO_TLS13,
};
class TLSContext {

View File

@ -154,6 +154,7 @@ const std::string A2_V_SSL3("SSLv3");
const std::string A2_V_TLS10("TLSv1");
const std::string A2_V_TLS11("TLSv1.1");
const std::string A2_V_TLS12("TLSv1.2");
const std::string A2_V_TLS13("TLSv1.3");
PrefPtr PREF_VERSION = makePref("version");
PrefPtr PREF_HELP = makePref("help");

View File

@ -111,6 +111,7 @@ extern const std::string A2_V_SSL3;
extern const std::string A2_V_TLS10;
extern const std::string A2_V_TLS11;
extern const std::string A2_V_TLS12;
extern const std::string A2_V_TLS13;
extern PrefPtr PREF_VERSION;
extern PrefPtr PREF_HELP;

View File

@ -2129,6 +2129,9 @@ TLSVersion toTLSVersion(const std::string& ver)
if (ver == A2_V_TLS12) {
return TLS_PROTO_TLS12;
}
if (ver == A2_V_TLS13) {
return TLS_PROTO_TLS13;
}
return TLS_PROTO_TLS10;
}
#endif // ENABLE_SSL