Skip to content

Commit eb9e1ef

Browse files
committed
refactor: add missing format and encode methods to principals
1 parent 0d31c9c commit eb9e1ef

9 files changed

Lines changed: 41 additions & 10 deletions

File tree

principal/ed25519/signer.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ func Parse(str string) (Signer, error) {
4646
return Decode(bytes)
4747
}
4848

49+
func Format(signer principal.Signer) string {
50+
s, _ := multibase.Encode(multibase.Base64pad, signer.Bytes())
51+
return s
52+
}
53+
4954
// Decode decodes a buffer of an ed25519 signer multiformat varint (0x1300) + 32
5055
// byte ed25519 private key.
5156
func Decode(b []byte) (Signer, error) {
@@ -67,6 +72,10 @@ func Decode(b []byte) (Signer, error) {
6772
return s, nil
6873
}
6974

75+
func Encode(signer Signer) []byte {
76+
return signer.Bytes()
77+
}
78+
7079
// FromRaw takes raw 32 byte ed25519 private key bytes and tags with the ed25519
7180
// signer multiformat code, returning an ed25519 signer.
7281
func FromRaw(b []byte) (Signer, error) {

principal/ed25519/signer_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"testing"
66

77
ed "github.com/alanshaw/ucantone/principal/ed25519"
8-
"github.com/alanshaw/ucantone/principal/signer"
98
"github.com/stretchr/testify/require"
109
)
1110

@@ -28,7 +27,7 @@ func TestGenerateFormatParse(t *testing.T) {
2827

2928
t.Log(s0.DID().String())
3029

31-
str := signer.Format(s0)
30+
str := ed.Format(s0)
3231
t.Log(str)
3332

3433
s1, err := ed.Parse(str)

principal/ed25519/verifier/verifier.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ func Parse(str string) (Verifier, error) {
3838
return Decode(bytes)
3939
}
4040

41+
func Format(verifier principal.Verifier) string {
42+
return verifier.DID().String()
43+
}
44+
4145
func Decode(b []byte) (Verifier, error) {
4246
if len(b) != size {
4347
return nil, fmt.Errorf("invalid length: %d wanted: %d", len(b), size)
@@ -54,6 +58,10 @@ func Decode(b []byte) (Verifier, error) {
5458
return v, nil
5559
}
5660

61+
func Encode(verifier Verifier) []byte {
62+
return verifier
63+
}
64+
5765
// FromRaw takes raw ed25519 public key bytes and tags with the ed25519 verifier
5866
// multiformat code, returning an ed25519 verifier.
5967
func FromRaw(b []byte) (Verifier, error) {

principal/secp256k1/signer.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ func Parse(str string) (Signer, error) {
4545
return Decode(bytes)
4646
}
4747

48+
func Format(signer principal.Signer) string {
49+
s, _ := multibase.Encode(multibase.Base64pad, signer.Bytes())
50+
return s
51+
}
52+
4853
// Decode decodes a buffer of a secp256k1 signer multiformat varint (0x1301) +
4954
// 32 byte secp256k1 raw scalar value.
5055
func Decode(b []byte) (Signer, error) {
@@ -67,6 +72,10 @@ func Decode(b []byte) (Signer, error) {
6772
return s, nil
6873
}
6974

75+
func Encode(signer Signer) []byte {
76+
return signer
77+
}
78+
7079
// FromRaw takes raw 32 byte scalar value and tags with the secp256k1
7180
// signer multiformat code, returning a secp256k1 signer.
7281
func FromRaw(b []byte) (Signer, error) {

principal/secp256k1/signer_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"testing"
77

88
secp256k1 "github.com/alanshaw/ucantone/principal/secp256k1"
9-
"github.com/alanshaw/ucantone/principal/signer"
109
"github.com/stretchr/testify/require"
1110
"gitlab.com/yawning/secp256k1-voi/secec"
1211
)
@@ -30,7 +29,7 @@ func TestGenerateFormatParse(t *testing.T) {
3029

3130
t.Log(s0.DID().String())
3231

33-
str := signer.Format(s0)
32+
str := secp256k1.Format(s0)
3433
t.Log(str)
3534

3635
s1, err := secp256k1.Parse(str)

principal/secp256k1/verifier/verifier.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ func Parse(str string) (Verifier, error) {
4040
return Decode(bytes)
4141
}
4242

43+
func Format(verifier principal.Verifier) string {
44+
return verifier.DID().String()
45+
}
46+
4347
func Decode(b []byte) (Verifier, error) {
4448
if len(b) != size {
4549
return nil, fmt.Errorf("invalid length: %d wanted: %d", len(b), size)
@@ -60,6 +64,10 @@ func Decode(b []byte) (Verifier, error) {
6064
return v, nil
6165
}
6266

67+
func Encode(verifier Verifier) []byte {
68+
return verifier
69+
}
70+
6371
// FromRaw takes raw secp256k1 compressed public key bytes and tags with the
6472
// secp256k1 verifier multiformat code, returning a secp256k1 verifier.
6573
func FromRaw(b []byte) (Verifier, error) {

principal/signer/signer.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66

77
"github.com/alanshaw/ucantone/did"
88
"github.com/alanshaw/ucantone/principal"
9-
"github.com/alanshaw/ucantone/principal/ed25519"
109
"github.com/alanshaw/ucantone/principal/verifier"
1110
"github.com/alanshaw/ucantone/varsig"
1211
"github.com/multiformats/go-multibase"
@@ -72,7 +71,3 @@ func Format(signer principal.Signer) string {
7271
s, _ := multibase.Encode(multibase.Base64pad, signer.Bytes())
7372
return s
7473
}
75-
76-
func Parse(s string) (principal.Signer, error) {
77-
return ed25519.Parse(s)
78-
}

principal/signer/signer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func TestFormatParse(t *testing.T) {
1717
str := signer.Format(s0)
1818
t.Log(str)
1919

20-
s1, err := signer.Parse(str)
20+
s1, err := ed25519.Parse(str)
2121
require.NoError(t, err)
2222

2323
t.Log(s1.DID().String())

principal/verifier/verifier.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,7 @@ func Wrap(key principal.Verifier, id did.DID) (*WrappedVerifier, error) {
5151
}
5252
return &WrappedVerifier{id, key}, nil
5353
}
54+
55+
func Format(verifier principal.Verifier) string {
56+
return verifier.DID().String()
57+
}

0 commit comments

Comments
 (0)