mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-23 20:07:17 +00:00
6bea17cb54
* Update libp2p to support go 1.19 * gaz * go mod tidy * Only update the minimum deps * go mod tidy * revert .bazelrc * Update go-libp2p to v0.22.0 and update import paths (#11440) * Fix import paths * Fix go-libp2p-peerstore import * Bazel updates * fix * revert some comments changes * revert some comment stuff * fix dependency issues * vendor problematic library * use your brain * remove * tests Co-authored-by: Marco Munizaga <marco@marcopolo.io> Co-authored-by: Nishant Das <nishdas93@gmail.com>
48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package ecdsa
|
|
|
|
import (
|
|
"crypto/ecdsa"
|
|
"crypto/rand"
|
|
"math/big"
|
|
"testing"
|
|
|
|
"github.com/btcsuite/btcd/btcec/v2"
|
|
gcrypto "github.com/ethereum/go-ethereum/crypto"
|
|
"github.com/libp2p/go-libp2p/core/crypto"
|
|
"github.com/prysmaticlabs/prysm/v3/testing/assert"
|
|
"github.com/prysmaticlabs/prysm/v3/testing/require"
|
|
)
|
|
|
|
func TestConvertToInterfacePubkey(t *testing.T) {
|
|
privKey, err := gcrypto.GenerateKey()
|
|
require.NoError(t, err)
|
|
|
|
pubkey, ok := privKey.Public().(*ecdsa.PublicKey)
|
|
require.NotEqual(t, false, ok)
|
|
|
|
altPubkey, err := ConvertToInterfacePubkey(pubkey)
|
|
require.NoError(t, err)
|
|
|
|
nKey := *(altPubkey.(*crypto.Secp256k1PublicKey))
|
|
rawKey := btcec.PublicKey(nKey).SerializeUncompressed()
|
|
origRawKey := gcrypto.FromECDSAPub(pubkey)
|
|
assert.DeepEqual(t, origRawKey, rawKey)
|
|
}
|
|
|
|
func TestConvertToInterfacePrivkey_HandlesShorterKeys(t *testing.T) {
|
|
priv, _, err := crypto.GenerateSecp256k1Key(rand.Reader)
|
|
assert.NoError(t, err)
|
|
rawBytes, err := priv.Raw()
|
|
assert.NoError(t, err)
|
|
// Zero-out most significant byte so that the big int normalizes
|
|
// it by removing it.
|
|
rawBytes[0] = 0
|
|
privKey := new(ecdsa.PrivateKey)
|
|
k := new(big.Int).SetBytes(rawBytes)
|
|
privKey.D = k
|
|
privKey.Curve = gcrypto.S256()
|
|
privKey.X, privKey.Y = gcrypto.S256().ScalarBaseMult(rawBytes)
|
|
_, err = ConvertToInterfacePrivkey(privKey)
|
|
assert.NoError(t, err)
|
|
}
|