mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 12:57:18 +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>
33 lines
927 B
Go
33 lines
927 B
Go
package bls
|
|
|
|
// SignatureSet refers to the defined set of
|
|
// signatures and its respective public keys and
|
|
// messages required to verify it.
|
|
type SignatureSet struct {
|
|
Signatures [][]byte
|
|
PublicKeys []PublicKey
|
|
Messages [][32]byte
|
|
}
|
|
|
|
// NewSet constructs an empty signature set object.
|
|
func NewSet() *SignatureSet {
|
|
return &SignatureSet{
|
|
Signatures: [][]byte{},
|
|
PublicKeys: []PublicKey{},
|
|
Messages: [][32]byte{},
|
|
}
|
|
}
|
|
|
|
// Join merges the provided signature set to out current one.
|
|
func (s *SignatureSet) Join(set *SignatureSet) *SignatureSet {
|
|
s.Signatures = append(s.Signatures, set.Signatures...)
|
|
s.PublicKeys = append(s.PublicKeys, set.PublicKeys...)
|
|
s.Messages = append(s.Messages, set.Messages...)
|
|
return s
|
|
}
|
|
|
|
// Verify the current signature set using the batch verify algorithm.
|
|
func (s *SignatureSet) Verify() (bool, error) {
|
|
return VerifyMultipleSignatures(s.Signatures, s.Messages, s.PublicKeys)
|
|
}
|