github.com/MetalBlockchain/metalgo@v1.11.9/utils/crypto/bls/secret_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package bls 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 "github.com/MetalBlockchain/metalgo/utils" 12 ) 13 14 func TestSecretKeyFromBytesZero(t *testing.T) { 15 require := require.New(t) 16 17 var skArr [SecretKeyLen]byte 18 skBytes := skArr[:] 19 _, err := SecretKeyFromBytes(skBytes) 20 require.ErrorIs(err, errFailedSecretKeyDeserialize) 21 } 22 23 func TestSecretKeyFromBytesWrongSize(t *testing.T) { 24 require := require.New(t) 25 26 skBytes := utils.RandomBytes(SecretKeyLen + 1) 27 _, err := SecretKeyFromBytes(skBytes) 28 require.ErrorIs(err, errFailedSecretKeyDeserialize) 29 } 30 31 func TestSecretKeyBytes(t *testing.T) { 32 require := require.New(t) 33 34 msg := utils.RandomBytes(1234) 35 36 sk, err := NewSecretKey() 37 require.NoError(err) 38 sig := Sign(sk, msg) 39 skBytes := SecretKeyToBytes(sk) 40 41 sk2, err := SecretKeyFromBytes(skBytes) 42 require.NoError(err) 43 sig2 := Sign(sk2, msg) 44 sk2Bytes := SecretKeyToBytes(sk2) 45 46 require.Equal(sk, sk2) 47 require.Equal(skBytes, sk2Bytes) 48 require.Equal(sig, sig2) 49 }