mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-07 10:12:19 +00:00
14dbc2b74d
* Add blst third party dep * initial build * add init * blst passing tests * add feature flag * blst and herumi for spec tests * maybe this works for mac * Actually set feature flag * Add stub for VerifyMultipleSignatures for blst * verifyCompressed * use correct cores sizes * aggregate public keys * add multi-sig verification * encode not hash * revert back * go mod tidy * update blst to latest commit * add batch decompress * fix * add test * gofmt * update blst * go mod tidy * remove kubesec, fix * mod tidy * disable some remote cache * disable some remote cache * disable some remote cache * disable some remote cache * Switch to -D__ADX__ * update * tidy * fix build * Make blst for only linux,amd64 * gofmt * lint * lint * gazelle * fix build tag * more stub methods * shift adx instructions to x86 * fix arm64 * Revert "fix arm64" This reverts commit 4d34ac21b7509a1b385374e3039efecfcab614c1. * add one more in * Revert "Revert "fix arm64"" This reverts commit 1c8ae24ad16ff9811590f1058b9d98c90b63251a. * try darwin now * Revert "try darwin now" This reverts commit 6f884714b8e14a7a803b72157672b6e942047f37. * Add sha256 * remove TODO * checkpoint * finally builds * fix up * add tag * try again * explicit disabling * remove * select properly * fix * better * make CI happy too * Update .bazelrc * Update .bazelrc * fix tests * revert back * Update shared/bls/blst/public_key.go Co-authored-by: Victor Farazdagi <simple.square@gmail.com> * Update shared/bls/blst/public_key.go Co-authored-by: Victor Farazdagi <simple.square@gmail.com> * clean up tests * more clean up * clean up * add * Update shared/bls/blst/signature.go * Update shared/bls/blst/signature.go * Update .buildkite-bazelrc Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com> * try again * remove go tag * revert change * gaz * gazelle ignore Co-authored-by: nisdas <nishdas93@gmail.com> Co-authored-by: Victor Farazdagi <simple.square@gmail.com> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
64 lines
1.8 KiB
Go
64 lines
1.8 KiB
Go
// Package spectest includes tests to ensure conformity with the eth2
|
|
// bls cryptography specification.
|
|
package spectest
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/hex"
|
|
"path"
|
|
"testing"
|
|
|
|
"github.com/prysmaticlabs/prysm/shared/featureconfig"
|
|
|
|
"github.com/ghodss/yaml"
|
|
"github.com/prysmaticlabs/prysm/shared/bls"
|
|
"github.com/prysmaticlabs/prysm/shared/testutil"
|
|
"github.com/prysmaticlabs/prysm/shared/testutil/require"
|
|
)
|
|
|
|
func TestSignMessageYaml(t *testing.T) {
|
|
flags := &featureconfig.Flags{}
|
|
reset := featureconfig.InitWithReset(flags)
|
|
t.Run("herumi", testSignMessageYaml)
|
|
reset()
|
|
|
|
flags.EnableBlst = true
|
|
reset = featureconfig.InitWithReset(flags)
|
|
t.Run("blst", testSignMessageYaml)
|
|
reset()
|
|
}
|
|
|
|
func testSignMessageYaml(t *testing.T) {
|
|
testFolders, testFolderPath := testutil.TestFolders(t, "general", "bls/sign/small")
|
|
|
|
for i, folder := range testFolders {
|
|
t.Run(folder.Name(), func(t *testing.T) {
|
|
file, err := testutil.BazelFileBytes(path.Join(testFolderPath, folder.Name(), "data.yaml"))
|
|
require.NoError(t, err)
|
|
test := &SignMsgTest{}
|
|
require.NoError(t, yaml.Unmarshal(file, test))
|
|
pkBytes, err := hex.DecodeString(test.Input.Privkey[2:])
|
|
require.NoError(t, err)
|
|
sk, err := bls.SecretKeyFromBytes(pkBytes)
|
|
require.NoError(t, err)
|
|
|
|
msgBytes, err := hex.DecodeString(test.Input.Message[2:])
|
|
require.NoError(t, err)
|
|
sig := sk.Sign(msgBytes)
|
|
|
|
if !sig.Verify(sk.PublicKey(), msgBytes) {
|
|
t.Fatal("could not verify signature")
|
|
}
|
|
|
|
outputBytes, err := hex.DecodeString(test.Output[2:])
|
|
require.NoError(t, err)
|
|
|
|
if !bytes.Equal(outputBytes, sig.Marshal()) {
|
|
t.Fatalf("Test Case %d: Signature does not match the expected output. "+
|
|
"Expected %#x but received %#x", i, outputBytes, sig.Marshal())
|
|
}
|
|
t.Log("Success")
|
|
})
|
|
}
|
|
}
|