hpke 1.0.0.pre.rc1 → 1.0.0
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -2
- data/README.md +3 -3
- data/lib/hpke/version.rb +1 -1
- data/lib/hpke.rb +16 -8
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a130a7a28eea6c07ac10bb247500c89da6f0e70170d7bf1b259ea94769c47cea
|
|
4
|
+
data.tar.gz: de1674a41042a2f0a222e95596a79903ac50ee5247d374014ad0ba0a9e4d3f56
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2948cf919833076f3e7b4f8ab1bb4df03aa892d5167013491871727fd97edeec9f9e68b1d58d1d178c85ae77cc8bbe4f771a9e1c97adb2897f87fb5865b5bed8
|
|
7
|
+
data.tar.gz: c280df1cacb7bfebb1a4d4a042c391361276065919ea66d38968e7e4e4e2d379bbd1392be7b26d51672db49b8e40b31b45385409f7d647b90f6be5d92d27b5b7
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
hpke (1.0.0
|
|
4
|
+
hpke (1.0.0)
|
|
5
5
|
openssl (~> 3.3.0, >= 3.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -9,6 +9,7 @@ GEM
|
|
|
9
9
|
specs:
|
|
10
10
|
diff-lcs (1.5.0)
|
|
11
11
|
openssl (3.3.0)
|
|
12
|
+
ostruct (0.6.3)
|
|
12
13
|
rake (13.0.6)
|
|
13
14
|
rspec (3.12.0)
|
|
14
15
|
rspec-core (~> 3.12.0)
|
|
@@ -30,8 +31,9 @@ PLATFORMS
|
|
|
30
31
|
|
|
31
32
|
DEPENDENCIES
|
|
32
33
|
hpke!
|
|
34
|
+
ostruct (~> 0.6.3)
|
|
33
35
|
rake (~> 13.0)
|
|
34
36
|
rspec (~> 3.0)
|
|
35
37
|
|
|
36
38
|
BUNDLED WITH
|
|
37
|
-
|
|
39
|
+
4.0.3
|
data/README.md
CHANGED
|
@@ -75,9 +75,9 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
|
75
75
|
|
|
76
76
|
```ruby
|
|
77
77
|
# instantiate HPKE suite
|
|
78
|
-
# first
|
|
79
|
-
#
|
|
80
|
-
#
|
|
78
|
+
# first parameter takes the KEM ID specified in RFC 9180 Section 7.1 Table 2,
|
|
79
|
+
# second parameter takes the KDF ID specified in RFC 9180 Section 7.2 Table 3,
|
|
80
|
+
# third parameter takes the AEAD ID specified in RFC 9180 Section 7.3 Table 5.
|
|
81
81
|
|
|
82
82
|
# we will generate a different instance just for demonstration to show that nothing secret is stored in the HPKE suite instance
|
|
83
83
|
hpke_s = HPKE.new(HPKE::DHKEM_X25519_HKDF_SHA256, HPKE::HKDF_SHA256, HPKE::AES_128_GCM)
|
data/lib/hpke/version.rb
CHANGED
data/lib/hpke.rb
CHANGED
|
@@ -100,7 +100,8 @@ class HPKE
|
|
|
100
100
|
encap_result = @kem.encap(pk_r)
|
|
101
101
|
{
|
|
102
102
|
enc: encap_result[:enc],
|
|
103
|
-
context_s: key_schedule_s(MODES[:base], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID)
|
|
103
|
+
context_s: key_schedule_s(MODES[:base], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID),
|
|
104
|
+
shared_secret: encap_result[:shared_secret]
|
|
104
105
|
}
|
|
105
106
|
end
|
|
106
107
|
|
|
@@ -113,7 +114,8 @@ class HPKE
|
|
|
113
114
|
encap_result = @kem.encap(pk_r)
|
|
114
115
|
{
|
|
115
116
|
enc: encap_result[:enc],
|
|
116
|
-
context_s: key_schedule_s(MODES[:psk], encap_result[:shared_secret], info, psk, psk_id)
|
|
117
|
+
context_s: key_schedule_s(MODES[:psk], encap_result[:shared_secret], info, psk, psk_id),
|
|
118
|
+
shared_secret: encap_result[:shared_secret]
|
|
117
119
|
}
|
|
118
120
|
end
|
|
119
121
|
|
|
@@ -126,7 +128,8 @@ class HPKE
|
|
|
126
128
|
encap_result = @kem.auth_encap(pk_r, sk_s)
|
|
127
129
|
{
|
|
128
130
|
enc: encap_result[:enc],
|
|
129
|
-
context_s: key_schedule_s(MODES[:auth], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID)
|
|
131
|
+
context_s: key_schedule_s(MODES[:auth], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID),
|
|
132
|
+
shared_secret: encap_result[:shared_secret]
|
|
130
133
|
}
|
|
131
134
|
end
|
|
132
135
|
|
|
@@ -139,7 +142,8 @@ class HPKE
|
|
|
139
142
|
encap_result = @kem.auth_encap(pk_r, sk_s)
|
|
140
143
|
{
|
|
141
144
|
enc: encap_result[:enc],
|
|
142
|
-
context_s: key_schedule_s(MODES[:auth_psk], encap_result[:shared_secret], info, psk, psk_id)
|
|
145
|
+
context_s: key_schedule_s(MODES[:auth_psk], encap_result[:shared_secret], info, psk, psk_id),
|
|
146
|
+
shared_secret: encap_result[:shared_secret]
|
|
143
147
|
}
|
|
144
148
|
end
|
|
145
149
|
|
|
@@ -153,7 +157,8 @@ class HPKE
|
|
|
153
157
|
encap_result = @kem.encap_fixed(pk_r, ikm_e)
|
|
154
158
|
{
|
|
155
159
|
enc: encap_result[:enc],
|
|
156
|
-
context_s: key_schedule_s(MODES[:base], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID)
|
|
160
|
+
context_s: key_schedule_s(MODES[:base], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID),
|
|
161
|
+
shared_secret: encap_result[:shared_secret]
|
|
157
162
|
}
|
|
158
163
|
end
|
|
159
164
|
|
|
@@ -161,7 +166,8 @@ class HPKE
|
|
|
161
166
|
encap_result = @kem.encap_fixed(pk_r, ikm_e)
|
|
162
167
|
{
|
|
163
168
|
enc: encap_result[:enc],
|
|
164
|
-
context_s: key_schedule_s(MODES[:psk], encap_result[:shared_secret], info, psk, psk_id)
|
|
169
|
+
context_s: key_schedule_s(MODES[:psk], encap_result[:shared_secret], info, psk, psk_id),
|
|
170
|
+
shared_secret: encap_result[:shared_secret]
|
|
165
171
|
}
|
|
166
172
|
end
|
|
167
173
|
|
|
@@ -169,7 +175,8 @@ class HPKE
|
|
|
169
175
|
encap_result = @kem.auth_encap_fixed(pk_r, sk_s, ikm_e)
|
|
170
176
|
{
|
|
171
177
|
enc: encap_result[:enc],
|
|
172
|
-
context_s: key_schedule_s(MODES[:auth], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID)
|
|
178
|
+
context_s: key_schedule_s(MODES[:auth], encap_result[:shared_secret], info, DEFAULT_PSK, DEFAULT_PSK_ID),
|
|
179
|
+
shared_secret: encap_result[:shared_secret]
|
|
173
180
|
}
|
|
174
181
|
end
|
|
175
182
|
|
|
@@ -177,7 +184,8 @@ class HPKE
|
|
|
177
184
|
encap_result = @kem.auth_encap_fixed(pk_r, sk_s, ikm_e)
|
|
178
185
|
{
|
|
179
186
|
enc: encap_result[:enc],
|
|
180
|
-
context_s: key_schedule_s(MODES[:auth_psk], encap_result[:shared_secret], info, psk, psk_id)
|
|
187
|
+
context_s: key_schedule_s(MODES[:auth_psk], encap_result[:shared_secret], info, psk, psk_id),
|
|
188
|
+
shared_secret: encap_result[:shared_secret]
|
|
181
189
|
}
|
|
182
190
|
end
|
|
183
191
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hpke
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.0
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryo Kajiwara
|
|
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
69
69
|
- !ruby/object:Gem::Version
|
|
70
70
|
version: '0'
|
|
71
71
|
requirements: []
|
|
72
|
-
rubygems_version:
|
|
72
|
+
rubygems_version: 4.0.3
|
|
73
73
|
specification_version: 4
|
|
74
74
|
summary: Hybrid Public Key Encryption (HPKE; RFC 9180) on Ruby
|
|
75
75
|
test_files: []
|