fix(eddsa): ed25519 or ed448 should be curves, not discriminator

This commit is contained in:
Michael Muré
2025-07-22 11:39:48 +02:00
parent be01529d44
commit eab24207bc
4 changed files with 20 additions and 19 deletions

View File

@@ -1,9 +1,17 @@
package varsig
// Stub
// DiscriminatorECDSA is the value specifying an ECDSA signature.
const DiscriminatorECDSA = Discriminator(0xec)
// ECDSACurve are values that specify which ECDSA curve is used when
// generating the signature.
type ECDSACurve uint64
// Constants describing the values for each specific ECDSA curve that can
// be encoded into a Varsig.
const (
DiscriminatorECDSASecp256k1 Discriminator = 0xe7
DiscriminatorECDSAP256 Discriminator = 0x1200
DiscriminatorECDSAP384 Discriminator = 0x1201
DiscriminatorECDSAP521 Discriminator = 0x1202
CurveSecp256k1 = ECDSACurve(0xe7)
CurveP256 = ECDSACurve(0x1200)
CurveP384 = ECDSACurve(0x1201)
CurveP521 = ECDSACurve(0x1202)
)

View File

@@ -6,12 +6,8 @@ import (
"fmt"
)
// Constants containing values that specify EdDSA signatures.
const (
DiscriminatorEdDSA = Discriminator(0xed)
DiscriminatorEd25519 = Discriminator(0xed)
DiscriminatorEd448 = Discriminator(0x1203)
)
// DiscriminatorEdDSA is the value specifying an EdDSA signature.
const DiscriminatorEdDSA = Discriminator(0xed)
// EdDSACurve are values that specify which Edwards curve is used when
// generating the signature.
@@ -113,7 +109,7 @@ func (v EdDSAVarsig) Encode() []byte {
return buf
}
func decodeEd25519(r BytesReader, vers Version, disc Discriminator) (Varsig, error) {
func decodeEdDSA(r BytesReader, vers Version, disc Discriminator) (Varsig, error) {
curve := EdDSACurve(disc)
if vers != Version0 {
var err error

View File

@@ -32,7 +32,7 @@ func TestDecodeEd25519(t *testing.T) {
require.NoError(t, err)
require.NotNil(t, v)
assert.Equal(t, varsig.Version0, v.Version())
assert.Equal(t, varsig.DiscriminatorEd25519, v.Discriminator())
assert.Equal(t, varsig.DiscriminatorEdDSA, v.Discriminator())
assert.Equal(t, varsig.PayloadEncodingDAGCBOR, v.PayloadEncoding())
assert.Len(t, v.Signature(), 64)

View File

@@ -28,12 +28,9 @@ type Registry map[Discriminator]DecodeFunc
// signing algorithms which have an implementation within this library.
func DefaultRegistry() Registry {
return map[Discriminator]DecodeFunc{
DiscriminatorRSA: decodeRSA,
DiscriminatorEdDSA: decodeEd25519,
DiscriminatorEd448: decodeEd25519,
DiscriminatorECDSAP256: notYetImplementedVarsigDecoder,
DiscriminatorECDSASecp256k1: notYetImplementedVarsigDecoder,
DiscriminatorECDSAP521: notYetImplementedVarsigDecoder,
DiscriminatorRSA: decodeRSA,
DiscriminatorEdDSA: decodeEdDSA,
DiscriminatorECDSA: notYetImplementedVarsigDecoder,
}
}