mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-24 20:37:17 +00:00
a78defcd26
* Move to keymanager/keymanageropts command line parameters * Add help for individual keymanagers * gazelle Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
86 lines
2.5 KiB
Go
86 lines
2.5 KiB
Go
package keymanager_test
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/hex"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/prysmaticlabs/prysm/shared/bls"
|
|
"github.com/prysmaticlabs/prysm/validator/keymanager"
|
|
)
|
|
|
|
func TestInteropListValidatingKeysZero(t *testing.T) {
|
|
_, _, err := keymanager.NewInterop("")
|
|
if err == nil {
|
|
t.Fatal("Missing expected error")
|
|
}
|
|
expectedErr := "unexpected end of JSON input"
|
|
if !strings.Contains(err.Error(), expectedErr) {
|
|
t.Errorf("Incorrect value for error; expected %q, received %v", expectedErr, err)
|
|
}
|
|
}
|
|
|
|
func TestInteropListValidatingKeysEmptyJSON(t *testing.T) {
|
|
_, _, err := keymanager.NewInterop("{}")
|
|
if err == nil {
|
|
t.Fatal("Missing expected error")
|
|
}
|
|
expectedErr := "input length must be greater than 0"
|
|
if !strings.Contains(err.Error(), expectedErr) {
|
|
t.Errorf("Incorrect value for error; expected %q, received %v", expectedErr, err)
|
|
}
|
|
}
|
|
|
|
func TestInteropListValidatingKeysSingle(t *testing.T) {
|
|
direct, _, err := keymanager.NewInterop(`{"keys":1}`)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
keys, err := direct.FetchValidatingKeys()
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
if len(keys) != 1 {
|
|
t.Errorf("Incorrect number of keys returned; expected 1, received %d", len(keys))
|
|
}
|
|
|
|
pkBytes, err := hex.DecodeString("25295f0d1d592a90b333e26e85149708208e9f8e8bc18f6c77bd62f8ad7a6866")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
privateKey, err := bls.SecretKeyFromBytes(pkBytes)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
if !bytes.Equal(privateKey.PublicKey().Marshal(), keys[0][:]) {
|
|
t.Fatalf("Public k 0 incorrect; expected %x, received %x", privateKey.PublicKey().Marshal(), keys[0])
|
|
}
|
|
}
|
|
|
|
func TestInteropListValidatingKeysOffset(t *testing.T) {
|
|
direct, _, err := keymanager.NewInterop(`{"keys":1,"offset":9}`)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
keys, err := direct.FetchValidatingKeys()
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
if len(keys) != 1 {
|
|
t.Errorf("Incorrect number of keys returned; expected 1, received %d", len(keys))
|
|
}
|
|
|
|
pkBytes, err := hex.DecodeString("2b3b88a041168a1c4cd04bdd8de7964fd35238f95442dc678514f9dadb81ec34")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
privateKey, err := bls.SecretKeyFromBytes(pkBytes)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %v", err)
|
|
}
|
|
if !bytes.Equal(privateKey.PublicKey().Marshal(), keys[0][:]) {
|
|
t.Fatalf("Public k 0 incorrect; expected %x, received %x", privateKey.PublicKey().Marshal(), keys[0])
|
|
}
|
|
}
|