On Tue, 18 Aug 2020 at 15:41:16 -0700, Jeremy Evans wrote:
> 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.

Results actually look better with the patch!

Before:

  Finished tests in 896.442532s, 23.4204 tests/s, 3034.9296 assertions/s.
  20995 tests, 2720640 assertions, 16 failures, 0 errors, 78 skips

> 
> 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

Reply via email to