tttls1.3 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/interop/Dockerfile +28 -0
  4. data/interop/client_spec.rb +88 -0
  5. data/interop/helper.rb +16 -0
  6. data/lib/tttls1.3/connection.rb +11 -9
  7. data/lib/tttls1.3/version.rb +1 -1
  8. data/spec/aead_spec.rb +1 -1
  9. data/spec/alert_spec.rb +1 -1
  10. data/spec/alpn_spec.rb +1 -1
  11. data/spec/application_data_spec.rb +1 -1
  12. data/spec/certificate_spec.rb +1 -1
  13. data/spec/certificate_verify_spec.rb +1 -1
  14. data/spec/change_cipher_spec_spec.rb +1 -1
  15. data/spec/cipher_suites_spec.rb +1 -1
  16. data/spec/client_hello_spec.rb +1 -1
  17. data/spec/client_spec.rb +1 -1
  18. data/spec/connection_spec.rb +1 -1
  19. data/spec/cookie_spec.rb +1 -1
  20. data/spec/early_data_indication_spec.rb +1 -1
  21. data/spec/encrypted_extensions_spec.rb +1 -1
  22. data/spec/error_spec.rb +1 -1
  23. data/spec/extensions_spec.rb +1 -1
  24. data/spec/finished_spec.rb +1 -1
  25. data/spec/key_schedule_spec.rb +1 -1
  26. data/spec/key_share_spec.rb +1 -1
  27. data/spec/new_session_ticket_spec.rb +1 -1
  28. data/spec/pre_shared_key_spec.rb +1 -1
  29. data/spec/psk_key_exchange_modes_spec.rb +1 -1
  30. data/spec/record_size_limit_spec.rb +1 -1
  31. data/spec/record_spec.rb +1 -1
  32. data/spec/server_hello_spec.rb +1 -1
  33. data/spec/server_name_spec.rb +1 -1
  34. data/spec/signature_algorithms_cert_spec.rb +1 -1
  35. data/spec/signature_algorithms_spec.rb +1 -1
  36. data/spec/status_request_spec.rb +1 -1
  37. data/spec/supported_groups_spec.rb +1 -1
  38. data/spec/supported_versions_spec.rb +1 -1
  39. data/spec/transcript_spec.rb +1 -1
  40. data/spec/unknown_extension_spec.rb +1 -1
  41. data/spec/utils_spec.rb +1 -1
  42. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50df67e1d621da0a19746a7461c07da05856348bdc6eed93048b25e18464d37f
4
- data.tar.gz: c9c1b0ae4663816ae8f01695a413674bed8983b059f97717671d41b42e5f1def
3
+ metadata.gz: 600d070cd1e13d0480c362a9e1a38eee26890a55e744f87ba9f3204455aecfe1
4
+ data.tar.gz: 9f5cc406f36d3e746f430fbf6e0fcc6ce2b84f9eb30952cbd672b42475852b43
5
5
  SHA512:
6
- metadata.gz: 2e8e5ac87b46489f8e10a9f95a46eb98815bb63aa0d03068cdea0b0f883d9cf77e6b40ffdcc9ad592191b6b6c1ca3788ddfafb21bbef70cd45d547fb50b94bc4
7
- data.tar.gz: 553144700d2e68044e8bb6160e100bea9a1e44f46b970cc0cd1200cf0861ea8a05d29d3622e1d73e7928f92a310a9a40bbea057a3a03f3463558302abeff7d34
6
+ metadata.gz: '091354c4bdd832b8c705ad3c4349fd0de5a59b68e28bac1f8f82ca70a09b970bf7da0641bad24897aea683698da65bf2a5503b82d3faf7087037123ea33d5d6d'
7
+ data.tar.gz: e98c2774e0cc277a5cee70819aad60d25325de6c29d2328f400873dc8370b534452d9f07582afd0df015ae9be81e2529d9147358098bab75e9b521db7663840b
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # tttls1.3
2
2
 
3
- [![Build Status](https://travis-ci.org/thekuwayama/tttls1.3.svg?branch=master)](https://travis-ci.org/thekuwayama/tttls1.3) [![Maintainability](https://api.codeclimate.com/v1/badges/47f3c267d9cfd2c8e388/maintainability)](https://codeclimate.com/github/thekuwayama/tttls1.3/maintainability)
3
+ [![Gem Version](https://badge.fury.io/rb/tttls1.3.svg)](https://badge.fury.io/rb/tttls1.3)
4
+ [![Build Status](https://travis-ci.org/thekuwayama/tttls1.3.svg?branch=master)](https://travis-ci.org/thekuwayama/tttls1.3)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/47f3c267d9cfd2c8e388/maintainability)](https://codeclimate.com/github/thekuwayama/tttls1.3/maintainability)
4
6
 
5
7
  tttls1.3 is Ruby implementation of [TLS 1.3](https://tools.ietf.org/html/rfc8446) protocol.
6
8
  tttls1.3 uses [openssl](https://github.com/ruby/openssl) as backend for crypto and X.509 operations.
@@ -0,0 +1,28 @@
1
+ FROM ubuntu:18.04
2
+
3
+ ARG version="1.1.1b"
4
+
5
+ RUN apt-get update && apt-get install -y --no-install-recommends \
6
+ autoconf \
7
+ bison \
8
+ build-essential \
9
+ ca-certificates \
10
+ curl \
11
+ gzip \
12
+ libreadline-dev \
13
+ patch \
14
+ pkg-config \
15
+ sed \
16
+ zlib1g-dev
17
+
18
+ RUN mkdir -p /build/openssl
19
+ RUN curl -s https://www.openssl.org/source/openssl-${version}.tar.gz | tar -C /build/openssl -xzf - && \
20
+ cd /build/openssl/openssl-${version} && \
21
+ ./Configure \
22
+ --prefix=/opt/openssl/openssl-${version} \
23
+ enable-crypto-mdebug enable-crypto-mdebug-backtrace \
24
+ linux-x86_64 && \
25
+ make && make install_sw
26
+
27
+ ENV LD_LIBRARY_PATH /opt/openssl/openssl-${version}/lib
28
+ ENV PATH /opt/openssl/openssl-${version}/bin:$PATH
@@ -0,0 +1,88 @@
1
+ # encoding: ascii-8bit
2
+ # frozen_string_literal: true
3
+
4
+ require_relative 'helper'
5
+
6
+ TMP_DIR = __dir__ + '/../tmp'
7
+
8
+ # rubocop: disable Metrics/BlockLength
9
+ RSpec.describe Client do
10
+ # testcases
11
+ [
12
+ [
13
+ ' -ciphersuites TLS_AES_256_GCM_SHA384',
14
+ cipher_suites: [CipherSuite::TLS_AES_256_GCM_SHA384]
15
+ ],
16
+ [
17
+ ' -ciphersuites TLS_CHACHA20_POLY1305_SHA256',
18
+ cipher_suites: [CipherSuite::TLS_CHACHA20_POLY1305_SHA256]
19
+ ],
20
+ [
21
+ ' -ciphersuites TLS_AES_128_GCM_SHA256',
22
+ cipher_suites: [CipherSuite::TLS_AES_128_GCM_SHA256]
23
+ ],
24
+ [
25
+ ' -groups P-256',
26
+ supported_groups: [NamedGroup::SECP256R1]
27
+ ],
28
+ [
29
+ ' -groups P-384',
30
+ supported_groups: [NamedGroup::SECP384R1]
31
+ ],
32
+ [
33
+ ' -groups P-521',
34
+ supported_groups: [NamedGroup::SECP521R1]
35
+ ],
36
+ [
37
+ ' -sigalgs RSA-PSS+SHA256',
38
+ signature_algorithms_cert: [SignatureScheme::RSA_PKCS1_SHA256],
39
+ signature_algorithms: [SignatureScheme::RSA_PSS_RSAE_SHA256]
40
+ ],
41
+ [
42
+ ' -sigalgs RSA-PSS+SHA384',
43
+ signature_algorithms_cert: [SignatureScheme::RSA_PKCS1_SHA256],
44
+ signature_algorithms: [SignatureScheme::RSA_PSS_RSAE_SHA384]
45
+ ],
46
+ [
47
+ ' -sigalgs RSA-PSS+SHA512',
48
+ signature_algorithms_cert: [SignatureScheme::RSA_PKCS1_SHA256],
49
+ signature_algorithms: [SignatureScheme::RSA_PSS_RSAE_SHA512]
50
+ ]
51
+ ].each do |opt, settings|
52
+ context 'client interop' do
53
+ before do
54
+ cmd = "docker run -v #{TMP_DIR}:/tmp -p 4433:4433 -it openssl " \
55
+ + 'openssl s_server ' \
56
+ + '-cert /tmp/server.crt ' \
57
+ + '-key /tmp/server.key ' \
58
+ + '-tls1_3 ' \
59
+ + '-www ' \
60
+ + opt
61
+ pid = spawn(cmd)
62
+ Process.detach(pid)
63
+
64
+ sleep(2) # waiting for openssl s_server
65
+ end
66
+
67
+ let(:client) do
68
+ hostname = 'localhost'
69
+ @socket = TCPSocket.new(hostname, 4433)
70
+ settings[:ca_file] = TMP_DIR + '/ca.crt'
71
+ Client.new(@socket, hostname, settings)
72
+ end
73
+
74
+ after do
75
+ @socket.close
76
+ `docker ps -ql | xargs docker stop`
77
+ end
78
+
79
+ it "should connect with openssl s_server ...#{opt}" do
80
+ expect { client.connect }.to_not raise_error
81
+ expect { client.write("GET / HTTP/1.0\r\n\r\n") }.to_not raise_error
82
+ expect(client.read).to include "HTTP/1.0 200 ok\r\n"
83
+ expect { client.close }.to_not raise_error
84
+ end
85
+ end
86
+ end
87
+ end
88
+ # rubocop: enable Metrics/BlockLength
data/interop/helper.rb ADDED
@@ -0,0 +1,16 @@
1
+ # encoding: ascii-8bit
2
+ # frozen_string_literal: true
3
+
4
+ RSpec.configure(&:disable_monkey_patching!)
5
+
6
+ # rubocop: disable Style/MixinUsage
7
+ require 'openssl'
8
+ require 'tttls1.3'
9
+ include TTTLS13
10
+ include TTTLS13::Error
11
+ include TTTLS13::CipherSuite
12
+ include TTTLS13::SignatureScheme
13
+ include TTTLS13::Cryptograph
14
+ include TTTLS13::Message
15
+ include TTTLS13::Message::Extension
16
+ # rubocop: enable Style/MixinUsage
@@ -235,27 +235,29 @@ module TTTLS13
235
235
  content = "\x20" * 64 + context + "\x00" + hash
236
236
  public_key = OpenSSL::X509::Certificate.new(certificate_pem).public_key
237
237
 
238
+ # RSA signatures MUST use an RSASSA-PSS algorithm, regardless of whether
239
+ # RSASSA-PKCS1-v1_5 algorithms appear in "signature_algorithms".
238
240
  case signature_scheme
239
- when SignatureScheme::RSA_PSS_RSAE_SHA256,
241
+ when SignatureScheme::RSA_PKCS1_SHA256,
242
+ SignatureScheme::RSA_PSS_RSAE_SHA256,
240
243
  SignatureScheme::RSA_PSS_PSS_SHA256
241
244
  public_key.verify_pss('SHA256', signature, content, salt_length: :auto,
242
245
  mgf1_hash: 'SHA256')
243
- when SignatureScheme::RSA_PSS_RSAE_SHA384,
246
+ when SignatureScheme::RSA_PKCS1_SHA384,
247
+ SignatureScheme::RSA_PSS_RSAE_SHA384,
244
248
  SignatureScheme::RSA_PSS_PSS_SHA384
245
249
  public_key.verify_pss('SHA384', signature, content, salt_length: :auto,
246
250
  mgf1_hash: 'SHA384')
247
- when SignatureScheme::RSA_PSS_RSAE_SHA512,
251
+ when SignatureScheme::RSA_PKCS1_SHA512,
252
+ SignatureScheme::RSA_PSS_RSAE_SHA512,
248
253
  SignatureScheme::RSA_PSS_PSS_SHA512
249
254
  public_key.verify_pss('SHA512', signature, content, salt_length: :auto,
250
255
  mgf1_hash: 'SHA512')
251
- when SignatureScheme::RSA_PKCS1_SHA256,
252
- SignatureScheme::ECDSA_SECP256R1_SHA256
256
+ when SignatureScheme::ECDSA_SECP256R1_SHA256
253
257
  public_key.verify('SHA256', signature, content)
254
- when SignatureScheme::RSA_PKCS1_SHA384,
255
- SignatureScheme::ECDSA_SECP384R1_SHA384
258
+ when SignatureScheme::ECDSA_SECP384R1_SHA384
256
259
  public_key.verify('SHA384', signature, content)
257
- when SignatureScheme::RSA_PKCS1_SHA512,
258
- SignatureScheme::ECDSA_SECP521R1_SHA512
260
+ when SignatureScheme::ECDSA_SECP521R1_SHA512
259
261
  public_key.verify('SHA512', signature, content)
260
262
  else # TODO: ED25519, ED448
261
263
  terminate(:internal_error)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TTTLS13
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
data/spec/aead_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe Aead do
7
7
  context 'aead using CipherSuite::TLS_AES_128_GCM_SHA256' do
data/spec/alert_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe Alert do
7
7
  context 'unexpected_message alert' do
data/spec/alpn_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe Alpn do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe ApplicationData do
7
7
  context 'application_data' do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe Certificate do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe CertificateVerify do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe ChangeCipherSpec do
7
7
  context 'change_cipher_spec' do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe CipherSuites do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe ClientHello do
data/spec/client_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe Client do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe Connection do
7
7
  context 'connection, Simple 1-RTT Handshake,' do
data/spec/cookie_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe Cookie do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe EarlyDataIndication do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe EncryptedExtensions do
data/spec/error_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe ErrorAlerts do
7
7
  let(:error) do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe Extensions do
7
7
  context 'empty extensions' do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe Finished do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe KeySchedule do
7
7
  context 'key_schedule, Simple 1-RTT Handshake,' do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe KeyShare do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe NewSessionTicket do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe PreSharedKey do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe PskKeyExchangeModes do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe RecordSizeLimit do
data/spec/record_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe Record do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe ServerHello do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe ServerName do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe SignatureAlgorithmsCert do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe SignatureAlgorithms do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe StatusRequest do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe SupportedGroups do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe SupportedVersions do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
 
6
6
  RSpec.describe Transcript do
7
7
  context 'transcript, not including HRR,' do
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe UnknownExtension do
data/spec/utils_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # encoding: ascii-8bit
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'spec_helper'
4
+ require_relative 'spec_helper'
5
5
  using Refinements
6
6
 
7
7
  RSpec.describe TTTLS13::Refinements do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tttls1.3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - thekuwayama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-27 00:00:00.000000000 Z
11
+ date: 2019-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,6 +58,9 @@ files:
58
58
  - example/https_client_using_0rtt.rb
59
59
  - example/https_client_using_hrr.rb
60
60
  - example/https_client_using_ticket.rb
61
+ - interop/Dockerfile
62
+ - interop/client_spec.rb
63
+ - interop/helper.rb
61
64
  - lib/tttls1.3.rb
62
65
  - lib/tttls1.3/cipher_suites.rb
63
66
  - lib/tttls1.3/client.rb