tttls1.3 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +16 -0
  5. data/.travis.yml +8 -0
  6. data/Gemfile +13 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +52 -0
  9. data/Rakefile +133 -0
  10. data/example/helper.rb +17 -0
  11. data/example/https_client.rb +32 -0
  12. data/example/https_client_using_0rtt.rb +64 -0
  13. data/example/https_client_using_hrr.rb +35 -0
  14. data/example/https_client_using_ticket.rb +56 -0
  15. data/lib/tttls1.3/cipher_suites.rb +102 -0
  16. data/lib/tttls1.3/client.rb +745 -0
  17. data/lib/tttls1.3/connection.rb +380 -0
  18. data/lib/tttls1.3/cryptograph/aead.rb +118 -0
  19. data/lib/tttls1.3/cryptograph/passer.rb +22 -0
  20. data/lib/tttls1.3/cryptograph.rb +3 -0
  21. data/lib/tttls1.3/error.rb +22 -0
  22. data/lib/tttls1.3/key_schedule.rb +242 -0
  23. data/lib/tttls1.3/message/alert.rb +86 -0
  24. data/lib/tttls1.3/message/application_data.rb +27 -0
  25. data/lib/tttls1.3/message/certificate.rb +121 -0
  26. data/lib/tttls1.3/message/certificate_verify.rb +59 -0
  27. data/lib/tttls1.3/message/change_cipher_spec.rb +26 -0
  28. data/lib/tttls1.3/message/client_hello.rb +100 -0
  29. data/lib/tttls1.3/message/encrypted_extensions.rb +65 -0
  30. data/lib/tttls1.3/message/end_of_early_data.rb +29 -0
  31. data/lib/tttls1.3/message/extension/alpn.rb +70 -0
  32. data/lib/tttls1.3/message/extension/cookie.rb +47 -0
  33. data/lib/tttls1.3/message/extension/early_data_indication.rb +58 -0
  34. data/lib/tttls1.3/message/extension/key_share.rb +236 -0
  35. data/lib/tttls1.3/message/extension/pre_shared_key.rb +205 -0
  36. data/lib/tttls1.3/message/extension/psk_key_exchange_modes.rb +54 -0
  37. data/lib/tttls1.3/message/extension/record_size_limit.rb +46 -0
  38. data/lib/tttls1.3/message/extension/server_name.rb +91 -0
  39. data/lib/tttls1.3/message/extension/signature_algorithms.rb +69 -0
  40. data/lib/tttls1.3/message/extension/signature_algorithms_cert.rb +25 -0
  41. data/lib/tttls1.3/message/extension/status_request.rb +106 -0
  42. data/lib/tttls1.3/message/extension/supported_groups.rb +145 -0
  43. data/lib/tttls1.3/message/extension/supported_versions.rb +98 -0
  44. data/lib/tttls1.3/message/extension/unknown_extension.rb +38 -0
  45. data/lib/tttls1.3/message/extensions.rb +173 -0
  46. data/lib/tttls1.3/message/finished.rb +44 -0
  47. data/lib/tttls1.3/message/new_session_ticket.rb +89 -0
  48. data/lib/tttls1.3/message/record.rb +232 -0
  49. data/lib/tttls1.3/message/server_hello.rb +116 -0
  50. data/lib/tttls1.3/message.rb +48 -0
  51. data/lib/tttls1.3/sequence_number.rb +31 -0
  52. data/lib/tttls1.3/signature_scheme.rb +31 -0
  53. data/lib/tttls1.3/transcript.rb +69 -0
  54. data/lib/tttls1.3/utils.rb +91 -0
  55. data/lib/tttls1.3/version.rb +5 -0
  56. data/lib/tttls1.3.rb +16 -0
  57. data/spec/aead_spec.rb +95 -0
  58. data/spec/alert_spec.rb +54 -0
  59. data/spec/alpn_spec.rb +55 -0
  60. data/spec/application_data_spec.rb +26 -0
  61. data/spec/certificate_spec.rb +55 -0
  62. data/spec/certificate_verify_spec.rb +51 -0
  63. data/spec/change_cipher_spec_spec.rb +26 -0
  64. data/spec/cipher_suites_spec.rb +39 -0
  65. data/spec/client_hello_spec.rb +83 -0
  66. data/spec/client_spec.rb +319 -0
  67. data/spec/connection_spec.rb +114 -0
  68. data/spec/cookie_spec.rb +98 -0
  69. data/spec/early_data_indication_spec.rb +64 -0
  70. data/spec/encrypted_extensions_spec.rb +94 -0
  71. data/spec/error_spec.rb +18 -0
  72. data/spec/extensions_spec.rb +170 -0
  73. data/spec/finished_spec.rb +55 -0
  74. data/spec/key_schedule_spec.rb +198 -0
  75. data/spec/key_share_spec.rb +199 -0
  76. data/spec/new_session_ticket_spec.rb +80 -0
  77. data/spec/pre_shared_key_spec.rb +167 -0
  78. data/spec/psk_key_exchange_modes_spec.rb +45 -0
  79. data/spec/record_size_limit_spec.rb +61 -0
  80. data/spec/record_spec.rb +105 -0
  81. data/spec/server_hello_spec.rb +101 -0
  82. data/spec/server_name_spec.rb +110 -0
  83. data/spec/signature_algorithms_cert_spec.rb +73 -0
  84. data/spec/signature_algorithms_spec.rb +100 -0
  85. data/spec/spec_helper.rb +872 -0
  86. data/spec/status_request_spec.rb +73 -0
  87. data/spec/supported_groups_spec.rb +79 -0
  88. data/spec/supported_versions_spec.rb +136 -0
  89. data/spec/transcript_spec.rb +69 -0
  90. data/spec/unknown_extension_spec.rb +90 -0
  91. data/spec/utils_spec.rb +215 -0
  92. data/tttls1.3.gemspec +25 -0
  93. metadata +197 -0
metadata ADDED
@@ -0,0 +1,197 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tttls1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - thekuwayama
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: openssl
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: TLS 1.3 implementation in Ruby
42
+ email:
43
+ - thekuwayama@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - ".rspec"
50
+ - ".rubocop.yml"
51
+ - ".travis.yml"
52
+ - Gemfile
53
+ - LICENSE.txt
54
+ - README.md
55
+ - Rakefile
56
+ - example/helper.rb
57
+ - example/https_client.rb
58
+ - example/https_client_using_0rtt.rb
59
+ - example/https_client_using_hrr.rb
60
+ - example/https_client_using_ticket.rb
61
+ - lib/tttls1.3.rb
62
+ - lib/tttls1.3/cipher_suites.rb
63
+ - lib/tttls1.3/client.rb
64
+ - lib/tttls1.3/connection.rb
65
+ - lib/tttls1.3/cryptograph.rb
66
+ - lib/tttls1.3/cryptograph/aead.rb
67
+ - lib/tttls1.3/cryptograph/passer.rb
68
+ - lib/tttls1.3/error.rb
69
+ - lib/tttls1.3/key_schedule.rb
70
+ - lib/tttls1.3/message.rb
71
+ - lib/tttls1.3/message/alert.rb
72
+ - lib/tttls1.3/message/application_data.rb
73
+ - lib/tttls1.3/message/certificate.rb
74
+ - lib/tttls1.3/message/certificate_verify.rb
75
+ - lib/tttls1.3/message/change_cipher_spec.rb
76
+ - lib/tttls1.3/message/client_hello.rb
77
+ - lib/tttls1.3/message/encrypted_extensions.rb
78
+ - lib/tttls1.3/message/end_of_early_data.rb
79
+ - lib/tttls1.3/message/extension/alpn.rb
80
+ - lib/tttls1.3/message/extension/cookie.rb
81
+ - lib/tttls1.3/message/extension/early_data_indication.rb
82
+ - lib/tttls1.3/message/extension/key_share.rb
83
+ - lib/tttls1.3/message/extension/pre_shared_key.rb
84
+ - lib/tttls1.3/message/extension/psk_key_exchange_modes.rb
85
+ - lib/tttls1.3/message/extension/record_size_limit.rb
86
+ - lib/tttls1.3/message/extension/server_name.rb
87
+ - lib/tttls1.3/message/extension/signature_algorithms.rb
88
+ - lib/tttls1.3/message/extension/signature_algorithms_cert.rb
89
+ - lib/tttls1.3/message/extension/status_request.rb
90
+ - lib/tttls1.3/message/extension/supported_groups.rb
91
+ - lib/tttls1.3/message/extension/supported_versions.rb
92
+ - lib/tttls1.3/message/extension/unknown_extension.rb
93
+ - lib/tttls1.3/message/extensions.rb
94
+ - lib/tttls1.3/message/finished.rb
95
+ - lib/tttls1.3/message/new_session_ticket.rb
96
+ - lib/tttls1.3/message/record.rb
97
+ - lib/tttls1.3/message/server_hello.rb
98
+ - lib/tttls1.3/sequence_number.rb
99
+ - lib/tttls1.3/signature_scheme.rb
100
+ - lib/tttls1.3/transcript.rb
101
+ - lib/tttls1.3/utils.rb
102
+ - lib/tttls1.3/version.rb
103
+ - spec/aead_spec.rb
104
+ - spec/alert_spec.rb
105
+ - spec/alpn_spec.rb
106
+ - spec/application_data_spec.rb
107
+ - spec/certificate_spec.rb
108
+ - spec/certificate_verify_spec.rb
109
+ - spec/change_cipher_spec_spec.rb
110
+ - spec/cipher_suites_spec.rb
111
+ - spec/client_hello_spec.rb
112
+ - spec/client_spec.rb
113
+ - spec/connection_spec.rb
114
+ - spec/cookie_spec.rb
115
+ - spec/early_data_indication_spec.rb
116
+ - spec/encrypted_extensions_spec.rb
117
+ - spec/error_spec.rb
118
+ - spec/extensions_spec.rb
119
+ - spec/finished_spec.rb
120
+ - spec/key_schedule_spec.rb
121
+ - spec/key_share_spec.rb
122
+ - spec/new_session_ticket_spec.rb
123
+ - spec/pre_shared_key_spec.rb
124
+ - spec/psk_key_exchange_modes_spec.rb
125
+ - spec/record_size_limit_spec.rb
126
+ - spec/record_spec.rb
127
+ - spec/server_hello_spec.rb
128
+ - spec/server_name_spec.rb
129
+ - spec/signature_algorithms_cert_spec.rb
130
+ - spec/signature_algorithms_spec.rb
131
+ - spec/spec_helper.rb
132
+ - spec/status_request_spec.rb
133
+ - spec/supported_groups_spec.rb
134
+ - spec/supported_versions_spec.rb
135
+ - spec/transcript_spec.rb
136
+ - spec/unknown_extension_spec.rb
137
+ - spec/utils_spec.rb
138
+ - tttls1.3.gemspec
139
+ homepage: https://github.com/thekuwayama/tttls1.3
140
+ licenses:
141
+ - MIT
142
+ metadata: {}
143
+ post_install_message:
144
+ rdoc_options: []
145
+ require_paths:
146
+ - lib
147
+ required_ruby_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: 2.6.1
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ requirements: []
158
+ rubygems_version: 3.0.1
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: TLS 1.3 implementation in Ruby
162
+ test_files:
163
+ - spec/aead_spec.rb
164
+ - spec/alert_spec.rb
165
+ - spec/alpn_spec.rb
166
+ - spec/application_data_spec.rb
167
+ - spec/certificate_spec.rb
168
+ - spec/certificate_verify_spec.rb
169
+ - spec/change_cipher_spec_spec.rb
170
+ - spec/cipher_suites_spec.rb
171
+ - spec/client_hello_spec.rb
172
+ - spec/client_spec.rb
173
+ - spec/connection_spec.rb
174
+ - spec/cookie_spec.rb
175
+ - spec/early_data_indication_spec.rb
176
+ - spec/encrypted_extensions_spec.rb
177
+ - spec/error_spec.rb
178
+ - spec/extensions_spec.rb
179
+ - spec/finished_spec.rb
180
+ - spec/key_schedule_spec.rb
181
+ - spec/key_share_spec.rb
182
+ - spec/new_session_ticket_spec.rb
183
+ - spec/pre_shared_key_spec.rb
184
+ - spec/psk_key_exchange_modes_spec.rb
185
+ - spec/record_size_limit_spec.rb
186
+ - spec/record_spec.rb
187
+ - spec/server_hello_spec.rb
188
+ - spec/server_name_spec.rb
189
+ - spec/signature_algorithms_cert_spec.rb
190
+ - spec/signature_algorithms_spec.rb
191
+ - spec/spec_helper.rb
192
+ - spec/status_request_spec.rb
193
+ - spec/supported_groups_spec.rb
194
+ - spec/supported_versions_spec.rb
195
+ - spec/transcript_spec.rb
196
+ - spec/unknown_extension_spec.rb
197
+ - spec/utils_spec.rb