Files
varsig/rsa_test.go

51 lines
1.1 KiB
Go
Raw Normal View History

package varsig_test
import (
"encoding/base64"
"testing"
"github.com/stretchr/testify/require"
"github.com/ucan-wg/go-varsig"
)
func TestRSAVarsig(t *testing.T) {
t.Parallel()
const keyLen = 0x100
// This test uses the same RSA configuration as below but for varsig
// >= v1
example, err := base64.RawStdEncoding.DecodeString("NAGFJBKAAnE")
require.NoError(t, err)
t.Run("Decode", func(t *testing.T) {
t.Parallel()
vs, err := varsig.Decode(example)
require.NoError(t, err)
rsaVs, ok := vs.(varsig.RSAVarsig)
require.True(t, ok)
2025-07-28 18:40:45 +02:00
require.Equal(t, varsig.Version1, rsaVs.Version())
2025-08-05 15:35:12 +02:00
require.Equal(t, varsig.AlgorithmRSA, rsaVs.Algorithm())
2025-07-28 18:40:45 +02:00
require.Equal(t, varsig.HashSha2_256, rsaVs.Hash())
require.Equal(t, varsig.PayloadEncodingDAGCBOR, rsaVs.PayloadEncoding())
require.Equal(t, uint64(keyLen), rsaVs.KeyLength())
})
t.Run("Encode", func(t *testing.T) {
t.Parallel()
2025-07-28 18:40:45 +02:00
rsaVarsig := varsig.NewRSAVarsig(
varsig.HashSha2_256,
keyLen,
varsig.PayloadEncodingDAGCBOR,
)
2025-07-28 18:40:45 +02:00
require.Equal(t, example, rsaVarsig.Encode())
t.Log(base64.RawStdEncoding.EncodeToString(rsaVarsig.Encode()))
})
}