Skip to content

Commit b1b1fb7

Browse files
committed
hpke: fix encapsulation seed for xyber
1 parent 808526a commit b1b1fb7

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

hpke/testdata/hybrid-x25119-kyber768-test-vectors.json

+1-1
Large diffs are not rendered by default.

hpke/vectors_test.go

+14-12
Original file line numberDiff line numberDiff line change
@@ -228,16 +228,17 @@ type vector struct {
228228
KdfID uint16 `json:"kdf_id"`
229229
AeadID uint16 `json:"aead_id"`
230230
Info string `json:"info"`
231+
Iem string `json:"iem",omitempty`
231232
IkmR string `json:"ikmR"`
232-
IkmE string `json:"ikmE"`
233+
IkmE string `json:"ikmE,omitempty"`
233234
SkRm string `json:"skRm"`
234-
SkEm string `json:"skEm"`
235+
SkEm string `json:"skEm,omitempty"`
235236
SkSm string `json:"skSm,omitempty"`
236237
Psk string `json:"psk,omitempty"`
237238
PskID string `json:"psk_id,omitempty"`
238239
PkSm string `json:"pkSm,omitempty"`
239240
PkRm string `json:"pkRm"`
240-
PkEm string `json:"pkEm"`
241+
PkEm string `json:"pkEm,omitempty"`
241242
Enc string `json:"enc"`
242243
SharedSecret string `json:"shared_secret"`
243244
KeyScheduleContext string `json:"key_schedule_context"`
@@ -344,10 +345,8 @@ func TestHybridKemRoundTrip(t *testing.T) {
344345
t.Error(err)
345346
}
346347

347-
ikmE, pkE, skE, err := generateHybridKeyPair(rnd, kemID.Scheme())
348-
if err != nil {
349-
t.Error(err)
350-
}
348+
iem := make([]byte, 64)
349+
rnd.Read(iem)
351350

352351
receiver, err := suite.NewReceiver(skR, info)
353352
if err != nil {
@@ -366,9 +365,10 @@ func TestHybridKemRoundTrip(t *testing.T) {
366365
opener Opener
367366
enc []byte
368367
)
368+
rnd2 := bytes.NewBuffer(iem)
369369
switch mode {
370370
case modeBase:
371-
enc, sealer, err2 = sender.Setup(rnd)
371+
enc, sealer, err2 = sender.Setup(rnd2)
372372
if err2 != nil {
373373
t.Error(err2)
374374
}
@@ -377,7 +377,7 @@ func TestHybridKemRoundTrip(t *testing.T) {
377377
t.Error(err2)
378378
}
379379
case modePSK:
380-
enc, sealer, err2 = sender.SetupPSK(rnd, psk, pskid)
380+
enc, sealer, err2 = sender.SetupPSK(rnd2, psk, pskid)
381381
if err2 != nil {
382382
t.Error(err2)
383383
}
@@ -389,6 +389,10 @@ func TestHybridKemRoundTrip(t *testing.T) {
389389
panic("unsupported mode")
390390
}
391391

392+
if rnd2.Len() != 0 {
393+
t.Fatal()
394+
}
395+
392396
innerSealer := sealer.(*sealContext)
393397

394398
encryptions, err2 := generateEncryptions(sealer, opener, msg)
@@ -405,13 +409,11 @@ func TestHybridKemRoundTrip(t *testing.T) {
405409
KemID: uint16(kemID),
406410
KdfID: uint16(kdfID),
407411
AeadID: uint16(aeadID),
412+
Iem: hex.EncodeToString(iem),
408413
Info: hex.EncodeToString(info),
409414
IkmR: hex.EncodeToString(ikmR),
410-
IkmE: hex.EncodeToString(ikmE),
411415
SkRm: hex.EncodeToString(mustEncodePrivateKey(skR)),
412-
SkEm: hex.EncodeToString(mustEncodePrivateKey(skE)),
413416
PkRm: hex.EncodeToString(mustEncodePublicKey(pkR)),
414-
PkEm: hex.EncodeToString(mustEncodePublicKey(pkE)),
415417
Enc: hex.EncodeToString(enc),
416418
SharedSecret: hex.EncodeToString(innerSealer.sharedSecret),
417419
KeyScheduleContext: hex.EncodeToString(innerSealer.keyScheduleContext),

0 commit comments

Comments
 (0)