|
|
|
--- Makefile 2014-12-12 22:58:34.000000000 +0100
|
|
|
|
+++ Makefile 2015-08-03 23:40:32.177619138 +0200
|
|
|
|
@@ -61,6 +61,7 @@
|
|
|
|
sbindir = $(exec_prefix)/sbin
|
|
|
|
bindir = $(exec_prefix)/bin
|
|
|
|
archdir = $(rubyarchdir)
|
|
|
|
+top_srcdir = ../..
|
|
|
|
|
|
|
|
|
|
|
|
CC = gcc
|
|
|
|
--- ossl_ssl.c 2014-12-12 22:58:34.000000000 +0100
|
|
|
|
+++ ossl_ssl.c 2015-08-03 23:40:32.177619138 +0200
|
|
|
|
@@ -1878,6 +1878,19 @@
|
|
|
|
# endif
|
|
|
|
#endif /* !defined(OPENSSL_NO_SOCK) */
|
|
|
|
|
|
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
|
|
|
|
+static VALUE
|
|
|
|
+ossl_ssl_tmp_key(VALUE self)
|
|
|
|
+{
|
|
|
|
+ SSL *ssl;
|
|
|
|
+ EVP_PKEY *key;
|
|
|
|
+ ossl_ssl_data_get_struct(self, ssl);
|
|
|
|
+ if (!SSL_get_server_tmp_key(ssl, &key))
|
|
|
|
+ return Qnil;
|
|
|
|
+ return ossl_pkey_new(key);
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
void
|
|
|
|
Init_ossl_ssl(void)
|
|
|
|
{
|
|
|
|
@@ -2238,6 +2241,9 @@
|
|
|
|
rb_define_method(cSSLSocket, "session=", ossl_ssl_set_session, 1);
|
|
|
|
rb_define_method(cSSLSocket, "verify_result", ossl_ssl_get_verify_result, 0);
|
|
|
|
rb_define_method(cSSLSocket, "client_ca", ossl_ssl_get_client_ca_list, 0);
|
|
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
|
|
|
|
+ rb_define_method(cSSLSocket, "tmp_key", ossl_ssl_tmp_key, 0);
|
|
|
|
+#endif
|
|
|
|
# ifdef HAVE_OPENSSL_NPN_NEGOTIATED
|
|
|
|
rb_define_method(cSSLSocket, "npn_protocol", ossl_ssl_npn_protocol, 0);
|
|
|
|
# endif
|