ech_config 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +34 -0
  3. data/.gitignore +16 -0
  4. data/.rubocop.yml +34 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +17 -0
  7. data/Gemfile.lock +73 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +22 -0
  10. data/Rakefile +16 -0
  11. data/ech_config.gemspec +24 -0
  12. data/example/README.md +9 -0
  13. data/example/well_known_url_client.rb +29 -0
  14. data/lib/ech_config/ech_config_contents/extensions.rb +24 -0
  15. data/lib/ech_config/ech_config_contents/hpke_key_config/hpke_kem_id.rb +24 -0
  16. data/lib/ech_config/ech_config_contents/hpke_key_config/hpke_public_key.rb +22 -0
  17. data/lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite/hpke_aead_id.rb +24 -0
  18. data/lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite/hpke_kdf_id.rb +24 -0
  19. data/lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb +41 -0
  20. data/lib/ech_config/ech_config_contents/hpke_key_config.rb +82 -0
  21. data/lib/ech_config/ech_config_contents.rb +78 -0
  22. data/lib/ech_config/error.rb +11 -0
  23. data/lib/ech_config/version.rb +6 -0
  24. data/lib/ech_config.rb +62 -0
  25. data/sorbet/config +3 -0
  26. data/sorbet/rbi/gems/ast.rbi +49 -0
  27. data/sorbet/rbi/gems/byebug.rbi +1041 -0
  28. data/sorbet/rbi/gems/ech_config.rbi +22 -0
  29. data/sorbet/rbi/gems/parallel.rbi +86 -0
  30. data/sorbet/rbi/gems/parser.rbi +1477 -0
  31. data/sorbet/rbi/gems/rainbow.rbi +122 -0
  32. data/sorbet/rbi/gems/rake.rbi +646 -0
  33. data/sorbet/rbi/gems/regexp_parser.rbi +984 -0
  34. data/sorbet/rbi/gems/rexml.rbi +599 -0
  35. data/sorbet/rbi/gems/rspec-core.rbi +1947 -0
  36. data/sorbet/rbi/gems/rspec-expectations.rbi +1178 -0
  37. data/sorbet/rbi/gems/rspec-mocks.rbi +1096 -0
  38. data/sorbet/rbi/gems/rspec-support.rbi +282 -0
  39. data/sorbet/rbi/gems/rspec.rbi +15 -0
  40. data/sorbet/rbi/gems/rubocop-ast.rbi +1399 -0
  41. data/sorbet/rbi/gems/rubocop-sorbet.rbi +218 -0
  42. data/sorbet/rbi/gems/rubocop.rbi +9351 -0
  43. data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
  44. data/sorbet/rbi/gems/unicode-display_width.rbi +23 -0
  45. data/sorbet/rbi/gems/webrick.rbi +662 -0
  46. data/sorbet/rbi/hidden-definitions/errors.txt +22890 -0
  47. data/sorbet/rbi/hidden-definitions/hidden.rbi +12118 -0
  48. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  49. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  50. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +24 -0
  51. data/sorbet/rbi/sorbet-typed/lib/rubocop/>=1.8/rubocop.rbi +12 -0
  52. data/sorbet/rbi/todo.rbi +6 -0
  53. data/spec/hpke_key_config_spec.rb +32 -0
  54. data/spec/spec_helper.rb +6 -0
  55. metadata +126 -0
@@ -0,0 +1,32 @@
1
+ # encoding: ascii-8bit
2
+ # typed: false
3
+ # frozen_string_literal: true
4
+
5
+ require_relative 'spec_helper'
6
+
7
+ RSpec.describe ECHConfig::ECHConfigContents::HpkeKeyConfig do
8
+ context 'valid hpke_key_config octet' do
9
+ let(:octet) do
10
+ "\xFF\x00\x20\x00\x20\x00\x00\x00" \
11
+ "\x00\x00\x00\x00\x00\x00\x00\x00" \
12
+ "\x00\x00\x00\x00\x00\x00\x00\x00" \
13
+ "\x00\x00\x00\x00\x00\x00\x00\x00" \
14
+ "\x00\x00\x00\x00\x00\x00\x08\x00" \
15
+ "\x01\00\x01\x00\x01\x00\x03"
16
+ end
17
+
18
+ let(:hpke_key_config) do
19
+ ECHConfig::ECHConfigContents::HpkeKeyConfig.decode(octet).first
20
+ end
21
+
22
+ it 'should decode' do
23
+ expect(hpke_key_config.config_id).to eq 255
24
+ expect(hpke_key_config.kem_id.uint16).to eq 32
25
+ expect(hpke_key_config.public_key.opaque).to eq "\x00" * 32
26
+ expect(hpke_key_config.cipher_suites[0].kdf_id.uint16).to eq 1
27
+ expect(hpke_key_config.cipher_suites[0].aead_id.uint16).to eq 1
28
+ expect(hpke_key_config.cipher_suites[1].kdf_id.uint16).to eq 1
29
+ expect(hpke_key_config.cipher_suites[1].aead_id.uint16).to eq 3
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,6 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ RSpec.configure(&:disable_monkey_patching!)
5
+
6
+ require 'ech_config'
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ech_config
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - thekuwayama
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-01-10 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: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sorbet-runtime
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: ECHConfig
42
+ email:
43
+ - thekuwayama@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".github/workflows/ci.yml"
49
+ - ".gitignore"
50
+ - ".rubocop.yml"
51
+ - ".ruby-version"
52
+ - Gemfile
53
+ - Gemfile.lock
54
+ - LICENSE.txt
55
+ - README.md
56
+ - Rakefile
57
+ - ech_config.gemspec
58
+ - example/README.md
59
+ - example/well_known_url_client.rb
60
+ - lib/ech_config.rb
61
+ - lib/ech_config/ech_config_contents.rb
62
+ - lib/ech_config/ech_config_contents/extensions.rb
63
+ - lib/ech_config/ech_config_contents/hpke_key_config.rb
64
+ - lib/ech_config/ech_config_contents/hpke_key_config/hpke_kem_id.rb
65
+ - lib/ech_config/ech_config_contents/hpke_key_config/hpke_public_key.rb
66
+ - lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite.rb
67
+ - lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite/hpke_aead_id.rb
68
+ - lib/ech_config/ech_config_contents/hpke_key_config/hpke_symmetric_cipher_suite/hpke_kdf_id.rb
69
+ - lib/ech_config/error.rb
70
+ - lib/ech_config/version.rb
71
+ - sorbet/config
72
+ - sorbet/rbi/gems/ast.rbi
73
+ - sorbet/rbi/gems/byebug.rbi
74
+ - sorbet/rbi/gems/ech_config.rbi
75
+ - sorbet/rbi/gems/parallel.rbi
76
+ - sorbet/rbi/gems/parser.rbi
77
+ - sorbet/rbi/gems/rainbow.rbi
78
+ - sorbet/rbi/gems/rake.rbi
79
+ - sorbet/rbi/gems/regexp_parser.rbi
80
+ - sorbet/rbi/gems/rexml.rbi
81
+ - sorbet/rbi/gems/rspec-core.rbi
82
+ - sorbet/rbi/gems/rspec-expectations.rbi
83
+ - sorbet/rbi/gems/rspec-mocks.rbi
84
+ - sorbet/rbi/gems/rspec-support.rbi
85
+ - sorbet/rbi/gems/rspec.rbi
86
+ - sorbet/rbi/gems/rubocop-ast.rbi
87
+ - sorbet/rbi/gems/rubocop-sorbet.rbi
88
+ - sorbet/rbi/gems/rubocop.rbi
89
+ - sorbet/rbi/gems/ruby-progressbar.rbi
90
+ - sorbet/rbi/gems/unicode-display_width.rbi
91
+ - sorbet/rbi/gems/webrick.rbi
92
+ - sorbet/rbi/hidden-definitions/errors.txt
93
+ - sorbet/rbi/hidden-definitions/hidden.rbi
94
+ - sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi
95
+ - sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi
96
+ - sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi
97
+ - sorbet/rbi/sorbet-typed/lib/rubocop/>=1.8/rubocop.rbi
98
+ - sorbet/rbi/todo.rbi
99
+ - spec/hpke_key_config_spec.rb
100
+ - spec/spec_helper.rb
101
+ homepage: https://github.com/thekuwayama/ech_config
102
+ licenses:
103
+ - MIT
104
+ metadata: {}
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 2.7.0
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubygems_version: 3.3.7
121
+ signing_key:
122
+ specification_version: 4
123
+ summary: ECHConfig
124
+ test_files:
125
+ - spec/hpke_key_config_spec.rb
126
+ - spec/spec_helper.rb