aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kaufmann <mail@michael-kaufmann.ch>2019-01-21 15:58:54 +0100
committerMichael Kaufmann <mail@michael-kaufmann.ch>2019-01-21 16:06:38 +0100
commit7348165c5024771af1758fdb1bfc222e9277f4bb (patch)
treeae9d4340f21c4c3ce28b192aac015cfb3ef8bb72
parent18ec883d6daaedbf32c66ca4ae6e41b66d0eeca4 (diff)
downloadruby-openssl-7348165c5024771af1758fdb1bfc222e9277f4bb.tar.gz
Support client certificates with TLS 1.3
Enable post-handshake authentication with OpenSSL 1.1.1 Fixes #237
-rw-r--r--ext/openssl/extconf.rb1
-rw-r--r--ext/openssl/ossl_ssl.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb
index 4f218562..b5cd540b 100644
--- a/ext/openssl/extconf.rb
+++ b/ext/openssl/extconf.rb
@@ -165,6 +165,7 @@ have_func("SSL_CTX_get_security_level")
have_func("X509_get0_notBefore")
have_func("SSL_SESSION_get_protocol_version")
have_func("EVP_PBE_scrypt")
+have_func("SSL_CTX_set_post_handshake_auth")
Logging::message "=== Checking done. ===\n"
diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c
index 7996f227..8a8d8e4b 100644
--- a/ext/openssl/ossl_ssl.c
+++ b/ext/openssl/ossl_ssl.c
@@ -810,6 +810,10 @@ ossl_sslctx_setup(VALUE self)
}
#endif /* OPENSSL_NO_EC */
+#ifdef HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH
+ SSL_CTX_set_post_handshake_auth(ctx, 1);
+#endif
+
val = rb_attr_get(self, id_i_cert_store);
if (!NIL_P(val)) {
X509_STORE *store = GetX509StorePtr(val); /* NO NEED TO DUP */