github.com/MetalBlockchain/metalgo@v1.11.9/utils/crypto/bls/signature_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 TestSignatureBytes(t *testing.T) { 15 require := require.New(t) 16 17 msg := utils.RandomBytes(1234) 18 19 sk, err := NewSecretKey() 20 require.NoError(err) 21 sig := Sign(sk, msg) 22 sigBytes := SignatureToBytes(sig) 23 24 sig2, err := SignatureFromBytes(sigBytes) 25 require.NoError(err) 26 sig2Bytes := SignatureToBytes(sig2) 27 28 require.Equal(sig, sig2) 29 require.Equal(sigBytes, sig2Bytes) 30 } 31 32 func TestAggregateSignaturesNoop(t *testing.T) { 33 require := require.New(t) 34 35 msg := utils.RandomBytes(1234) 36 37 sk, err := NewSecretKey() 38 require.NoError(err) 39 40 sig := Sign(sk, msg) 41 sigBytes := SignatureToBytes(sig) 42 43 aggSig, err := AggregateSignatures([]*Signature{sig}) 44 require.NoError(err) 45 46 aggSigBytes := SignatureToBytes(aggSig) 47 require.NoError(err) 48 49 require.Equal(sig, aggSig) 50 require.Equal(sigBytes, aggSigBytes) 51 }