github.com/prysmaticlabs/prysm@v1.4.4/validator/keymanager/imported/backup_test.go (about)

     1  package imported
     2  
     3  import (
     4  	"context"
     5  	"encoding/hex"
     6  	"testing"
     7  
     8  	"github.com/prysmaticlabs/prysm/shared/bls"
     9  	"github.com/prysmaticlabs/prysm/shared/bytesutil"
    10  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
    11  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    12  )
    13  
    14  func TestImportedKeymanager_ExtractKeystores(t *testing.T) {
    15  	secretKeysCache = make(map[[48]byte]bls.SecretKey)
    16  	dr := &Keymanager{}
    17  	validatingKeys := make([]bls.SecretKey, 10)
    18  	for i := 0; i < len(validatingKeys); i++ {
    19  		secretKey, err := bls.RandKey()
    20  		require.NoError(t, err)
    21  		validatingKeys[i] = secretKey
    22  		secretKeysCache[bytesutil.ToBytes48(secretKey.PublicKey().Marshal())] = secretKey
    23  	}
    24  	ctx := context.Background()
    25  	password := "password"
    26  
    27  	// Extracting 0 public keys should return 0 keystores.
    28  	keystores, err := dr.ExtractKeystores(ctx, nil, password)
    29  	require.NoError(t, err)
    30  	assert.Equal(t, 0, len(keystores))
    31  
    32  	// We attempt to extract a few indices.
    33  	keystores, err = dr.ExtractKeystores(
    34  		ctx,
    35  		[]bls.PublicKey{
    36  			validatingKeys[3].PublicKey(),
    37  			validatingKeys[5].PublicKey(),
    38  			validatingKeys[7].PublicKey(),
    39  		},
    40  		password,
    41  	)
    42  	require.NoError(t, err)
    43  	receivedPubKeys := make([][]byte, len(keystores))
    44  	for i, k := range keystores {
    45  		pubKeyBytes, err := hex.DecodeString(k.Pubkey)
    46  		require.NoError(t, err)
    47  		receivedPubKeys[i] = pubKeyBytes
    48  	}
    49  	assert.DeepEqual(t, receivedPubKeys, [][]byte{
    50  		validatingKeys[3].PublicKey().Marshal(),
    51  		validatingKeys[5].PublicKey().Marshal(),
    52  		validatingKeys[7].PublicKey().Marshal(),
    53  	})
    54  }