Revert "runner: Switch back to filippo.io/mlkem768 for now"
This reverts commit 8c6b0c04f19f5a6a13af3e29a6a4bb6784cb2bd7. The copy
of Go has since been updated.
Change-Id: I1da2a640b6dc6197f6767faa5085127efb9eb489
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/76407
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: Bob Beck <bbe@google.com>
diff --git a/go.mod b/go.mod
index b308b1e..811bf7d 100644
--- a/go.mod
+++ b/go.mod
@@ -4,7 +4,6 @@
require (
filippo.io/edwards25519 v1.1.0
- filippo.io/mlkem768 v0.0.0-20241021091500-d85de16e2039
golang.org/x/crypto v0.31.0
golang.org/x/net v0.27.0
)
diff --git a/go.sum b/go.sum
index 5683f99..3b0bcfc 100644
--- a/go.sum
+++ b/go.sum
@@ -1,7 +1,5 @@
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
-filippo.io/mlkem768 v0.0.0-20241021091500-d85de16e2039 h1:I/alPPIVzEkPeQKVU7Sl5gv/sQ0IC4zgqHiACrSgUW8=
-filippo.io/mlkem768 v0.0.0-20241021091500-d85de16e2039/go.mod h1:IkpYfciLz5fI/S4/Z0NlhR4cpv6ubCMDnIwAe0XiojA=
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
diff --git a/ssl/test/runner/key_agreement.go b/ssl/test/runner/key_agreement.go
index 7732867..a65e771 100644
--- a/ssl/test/runner/key_agreement.go
+++ b/ssl/test/runner/key_agreement.go
@@ -10,6 +10,7 @@
"crypto/ecdsa"
"crypto/ed25519"
"crypto/elliptic"
+ "crypto/mlkem"
"crypto/rsa"
"crypto/x509"
"errors"
@@ -19,7 +20,6 @@
"slices"
"boringssl.googlesource.com/boringssl.git/ssl/test/runner/kyber"
- "filippo.io/mlkem768"
)
type keyType int
@@ -439,26 +439,24 @@
}
// mlkem768KEM implements ML-KEM-768
-//
-// TODO(davidben): Switch this to crypto/mlkem from the standard library.
type mlkem768KEM struct {
- decapKey *mlkem768.DecapsulationKey
+ decapKey *mlkem.DecapsulationKey768
}
func (e *mlkem768KEM) encapsulationKeySize() int {
- return mlkem768.EncapsulationKeySize
+ return mlkem.EncapsulationKeySize768
}
func (e *mlkem768KEM) ciphertextSize() int {
- return mlkem768.CiphertextSize
+ return mlkem.CiphertextSize768
}
func (m *mlkem768KEM) generate(config *Config) (publicKey []byte, err error) {
- m.decapKey, err = mlkem768.GenerateKey()
+ m.decapKey, err = mlkem.GenerateKey768()
if err != nil {
return
}
- publicKey = m.decapKey.EncapsulationKey()
+ publicKey = m.decapKey.EncapsulationKey().Bytes()
if config.Bugs.MLKEMEncapKeyNotReduced {
// Set the first 12 bits so that the first word is definitely
// not reduced.
@@ -469,11 +467,16 @@
}
func (m *mlkem768KEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) {
- return mlkem768.Encapsulate(peerKey)
+ key, err := mlkem.NewEncapsulationKey768(peerKey)
+ if err != nil {
+ return nil, nil, err
+ }
+ secret, ciphertext = key.Encapsulate()
+ return
}
func (m *mlkem768KEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) {
- return mlkem768.Decapsulate(m.decapKey, ciphertext)
+ return m.decapKey.Decapsulate(ciphertext)
}
// concatKEM concatenates two kemImplementations.