2024-09-03 15:40:55 -04:00
|
|
|
package varsig_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/base64"
|
|
|
|
|
"fmt"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/libp2p/go-libp2p/core/crypto/pb"
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
2024-09-05 18:49:01 +02:00
|
|
|
|
2024-09-24 11:40:28 -04:00
|
|
|
"github.com/ucan-wg/go-ucan/tokens/internal/varsig"
|
2024-09-03 15:40:55 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestDecode(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
|
|
notAHeader := base64.RawStdEncoding.EncodeToString([]byte("not a header"))
|
2024-09-04 09:03:03 -04:00
|
|
|
keyType, err := varsig.Decode([]byte(notAHeader))
|
2024-09-03 15:40:55 -04:00
|
|
|
assert.Equal(t, pb.KeyType(-1), keyType)
|
|
|
|
|
assert.ErrorIs(t, err, varsig.ErrUnknownHeader)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func ExampleDecode() {
|
2024-09-18 07:50:02 -04:00
|
|
|
hdr, err := base64.RawStdEncoding.DecodeString("NIUkEoACcQ")
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
keyType, _ := varsig.Decode(hdr)
|
2024-09-03 15:40:55 -04:00
|
|
|
fmt.Println(keyType.String())
|
|
|
|
|
// Output:
|
|
|
|
|
// RSA
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestEncode(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
|
|
header, err := varsig.Encode(pb.KeyType(99))
|
2024-09-04 09:03:03 -04:00
|
|
|
assert.Nil(t, header)
|
2024-09-03 15:40:55 -04:00
|
|
|
assert.ErrorIs(t, err, varsig.ErrUnknownKeyType)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func ExampleEncode() {
|
|
|
|
|
header, _ := varsig.Encode(pb.KeyType_RSA)
|
2024-09-18 07:50:02 -04:00
|
|
|
fmt.Println(base64.RawStdEncoding.EncodeToString(header))
|
2024-09-03 15:40:55 -04:00
|
|
|
|
|
|
|
|
// Output:
|
|
|
|
|
// NIUkEoACcQ
|
|
|
|
|
}
|