Files
crypto/bls/signer/localsigner/serialization_test.go
T
2025-07-25 20:12:57 -05:00

56 lines
1.2 KiB
Go

// Copyright (C) 2020-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package localsigner
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/luxfi/crypto"
blst "github.com/supranational/blst/bindings/go"
)
const SecretKeyLen = blst.BLST_SCALAR_BYTES
func TestSecretKeyFromBytesZero(t *testing.T) {
require := require.New(t)
var skArr [SecretKeyLen]byte
skBytes := skArr[:]
_, err := FromBytes(skBytes)
require.ErrorIs(err, ErrFailedSecretKeyDeserialize)
}
func TestSecretKeyFromBytesWrongSize(t *testing.T) {
require := require.New(t)
skBytes := crypto.RandomBytes(SecretKeyLen + 1)
_, err := FromBytes(skBytes)
require.ErrorIs(err, ErrFailedSecretKeyDeserialize)
}
func TestSecretKeyBytes(t *testing.T) {
require := require.New(t)
msg := crypto.RandomBytes(1234)
sk, err := New()
require.NoError(err)
sig, err := sk.Sign(msg)
require.NoError(err)
skBytes := sk.ToBytes()
sk2, err := FromBytes(skBytes)
require.NoError(err)
sig2, err := sk2.Sign(msg)
require.NoError(err)
sk2Bytes := sk2.ToBytes()
require.Equal(sk, sk2)
require.Equal(skBytes, sk2Bytes)
require.Equal(sig, sig2)
}