On 08/18 04:17, Aaron Bieber wrote:
> Hi Jeremy!
>
> Here is a diff tb@ was kind enough to smack together when I was trying to
> track
> down why TLS 1.3 was not available in ruby.
>
> I have tested on a few different machines with no ill effect.
>
> I also ran the tests which resulted in:
> Finished tests in 1463.007495s, 14.3492 tests/s, 1858.9283 assertions/s.
> 20993 tests, 2719626 assertions, 14 failures, 0 errors, 73 skips
I'm OK adding this as long as it doesn't cause any regressions.
What the results you are getting for the tests without this patch? I
would expect some failures, as I know I've made changes to the ruby
master branch to fix issues in OpenBSD-current, and those fixes would
not be present in Ruby 2.7.1. However, if anything additional breaks,
we need to investigate and determine if it is an issue with the tests
or a regression that needs to be addressed.
Thanks,
Jeremy
>
> And some irb action for good measure:
>
> qbit@tal[0]:~$ irb27
> irb(main):001:0> require 'openssl'
> => true
> irb(main):002:0> OpenSSL::SSL::TLS1_3_VERSION
> => 772
> irb(main):003:0>
>
> I am also able to connect to Google via tls 1.3 using the below:
>
> #!/usr/bin/env ruby
>
> require 'socket'
> require 'openssl'
>
> hostname = "google.com"
>
> ctx = OpenSSL::SSL::SSLContext.new()
> s = TCPSocket.new(hostname, 443)
> ssl = OpenSSL::SSL::SSLSocket.new(s, ctx)
> ssl.hostname = hostname
> ssl.connect
>
> p ssl.ssl_version
> p ssl.peer_cert
>
> ssl.sync_close = true
> ssl.close
>
> Any thoughts on adding this?
>
> Cheers,
> Aaron
>
> diff refs/heads/master refs/heads/ruby_tls13
> blob - 64d2b8a0f4fca132c9c60418a41b461a17901b8d
> blob + 150b0490e7b3006ef7ddb581224adfbba400ed81
> --- lang/ruby/2.7/Makefile
> +++ lang/ruby/2.7/Makefile
> @@ -6,7 +6,7 @@ SHARED_LIBS = ruby27 0.0
> NEXTVER = 2.8
> PKGSPEC-main ?= ruby->=2.7.0,<${NEXTVER}
>
> -REVISION-main = 0
> +REVISION-main = 1
>
> PSEUDO_FLAVORS= no_ri_docs bootstrap
> # Do not build the RI docs on slow arches
> blob - /dev/null
> blob + 795924e7187f8cdadc87117a475035ff9ed98273 (mode 644)
> --- /dev/null
> +++ lang/ruby/2.7/patches/patch-ext_openssl_ossl_ssl_c
> @@ -0,0 +1,16 @@
> +$OpenBSD$
> +
> +Index: ext/openssl/ossl_ssl.c
> +--- ext/openssl/ossl_ssl.c.orig
> ++++ ext/openssl/ossl_ssl.c
> +@@ -13,6 +13,10 @@
> +
> + #define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
> +
> ++#ifndef TLS1_3_VERSION
> ++# define TLS1_3_VERSION 0x0304
> ++#endif
> ++
> + #ifdef _WIN32
> + # define TO_SOCKET(s) _get_osfhandle(s)
> + #else