cli: change the module name of the cli (#1431)
This commit is contained in:
99
cli/pkg/web5/crypto/dsa/ecdsa/secp256k1_test.go
Normal file
99
cli/pkg/web5/crypto/dsa/ecdsa/secp256k1_test.go
Normal file
@@ -0,0 +1,99 @@
|
||||
package ecdsa_test
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"testing"
|
||||
|
||||
"olares-cli/pkg/web5/crypto/dsa/ecdsa"
|
||||
"olares-cli/pkg/web5/jwk"
|
||||
|
||||
"github.com/alecthomas/assert/v2"
|
||||
)
|
||||
|
||||
func TestSECP256K1GeneratePrivateKey(t *testing.T) {
|
||||
key, err := ecdsa.SECP256K1GeneratePrivateKey()
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, ecdsa.KeyType, key.KTY)
|
||||
assert.Equal(t, ecdsa.SECP256K1JWACurve, key.CRV)
|
||||
assert.True(t, key.D != "", "privateJwk.D is empty")
|
||||
assert.True(t, key.X != "", "privateJwk.X is empty")
|
||||
assert.True(t, key.Y != "", "privateJwk.Y is empty")
|
||||
}
|
||||
|
||||
func TestSECP256K1BytesToPublicKey_Bad(t *testing.T) {
|
||||
_, err := ecdsa.SECP256K1BytesToPublicKey([]byte{0x00, 0x01, 0x02, 0x03})
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestSECP256K1BytesToPublicKey_Uncompressed(t *testing.T) {
|
||||
// vector taken from https://github.com/decentralized-identity/web5-js/blob/dids-new-crypto/packages/crypto/tests/fixtures/test-vectors/secp256k1/bytes-to-public-key.json
|
||||
publicKeyHex := "0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
|
||||
pubKeyBytes, err := hex.DecodeString(publicKeyHex)
|
||||
assert.NoError(t, err)
|
||||
|
||||
jwk, err := ecdsa.SECP256K1BytesToPublicKey(pubKeyBytes)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, ecdsa.SECP256K1JWACurve, jwk.CRV)
|
||||
assert.Equal(t, ecdsa.KeyType, jwk.KTY)
|
||||
assert.Equal(t, "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g", jwk.X)
|
||||
assert.Equal(t, "SDradyajxGVdpPv8DhEIqP0XtEimhVQZnEfQj_sQ1Lg", jwk.Y)
|
||||
}
|
||||
|
||||
func TestSECP256K1PublicKeyToBytes(t *testing.T) {
|
||||
// vector taken from https://github.com/decentralized-identity/web5-js/blob/dids-new-crypto/packages/crypto/tests/fixtures/test-vectors/secp256k1/bytes-to-public-key.json
|
||||
jwk := jwk.JWK{
|
||||
KTY: "EC",
|
||||
CRV: ecdsa.SECP256K1JWACurve,
|
||||
X: "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g",
|
||||
Y: "SDradyajxGVdpPv8DhEIqP0XtEimhVQZnEfQj_sQ1Lg",
|
||||
}
|
||||
|
||||
pubKeyBytes, err := ecdsa.SECP256K1PublicKeyToBytes(jwk)
|
||||
assert.NoError(t, err)
|
||||
|
||||
pubKeyHex := hex.EncodeToString(pubKeyBytes)
|
||||
expected := "0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
|
||||
|
||||
assert.Equal(t, expected, pubKeyHex)
|
||||
}
|
||||
|
||||
func TestSECP256K1PublicKeyToBytes_Bad(t *testing.T) {
|
||||
vectors := []jwk.JWK{
|
||||
{
|
||||
KTY: "EC",
|
||||
CRV: ecdsa.SECP256K1JWACurve,
|
||||
X: "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g",
|
||||
},
|
||||
{
|
||||
KTY: "EC",
|
||||
CRV: ecdsa.SECP256K1JWACurve,
|
||||
Y: "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g",
|
||||
},
|
||||
{
|
||||
KTY: "EC",
|
||||
CRV: ecdsa.SECP256K1JWACurve,
|
||||
X: "=///",
|
||||
Y: "SDradyajxGVdpPv8DhEIqP0XtEimhVQZnEfQj_sQ1Lg",
|
||||
},
|
||||
{
|
||||
KTY: "EC",
|
||||
CRV: ecdsa.SECP256K1JWACurve,
|
||||
X: "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g",
|
||||
Y: "=///",
|
||||
},
|
||||
{
|
||||
KTY: "EC",
|
||||
CRV: ecdsa.SECP256K1JWACurve,
|
||||
X: "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g",
|
||||
Y: "SDradyajxGVdpPv8DhEIqP0XtEimhVQZnEfQj_sQ1Lg2",
|
||||
},
|
||||
}
|
||||
|
||||
for _, vec := range vectors {
|
||||
pubKeyBytes, err := ecdsa.SECP256K1PublicKeyToBytes(vec)
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, nil, pubKeyBytes)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user