From 362fbbf913ce14f3f5baa3d3d15111d0f18de533 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Wed, 22 Jan 2020 15:55:52 -0800 Subject: [PATCH] Add blockheader_cgo file Signed-off-by: Jakub Sztandera --- chain/types/blockheader_cgo.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 chain/types/blockheader_cgo.go diff --git a/chain/types/blockheader_cgo.go b/chain/types/blockheader_cgo.go new file mode 100644 index 000000000..653935cbc --- /dev/null +++ b/chain/types/blockheader_cgo.go @@ -0,0 +1,27 @@ +//+build cgo + +package types + +import ( + "context" + + "github.com/filecoin-project/go-address" + "go.opencensus.io/trace" + "golang.org/x/xerrors" +) + +func (blk *BlockHeader) CheckBlockSignature(ctx context.Context, worker address.Address) error { + _, span := trace.StartSpan(ctx, "checkBlockSignature") + defer span.End() + + if blk.BlockSig == nil { + return xerrors.New("block signature not present") + } + + sigb, err := blk.SigningBytes() + if err != nil { + return xerrors.Errorf("failed to get block signing bytes: %w", err) + } + + return blk.BlockSig.Verify(worker, sigb) +}