diff options
Diffstat (limited to 'pkg/instance')
| -rw-r--r-- | pkg/instance/handler_test.go | 6 | ||||
| -rw-r--r-- | pkg/instance/instance.go | 7 | 
2 files changed, 8 insertions, 5 deletions
| diff --git a/pkg/instance/handler_test.go b/pkg/instance/handler_test.go index f8817dc..8a48860 100644 --- a/pkg/instance/handler_test.go +++ b/pkg/instance/handler_test.go @@ -658,7 +658,7 @@ func mustHandle(t *testing.T, i Instance, e types.Endpoint) Handler {  	return Handler{}  } -func mustLeafBuffer(t *testing.T, shardHint uint64, checksum types.Hash, wantSig bool) io.Reader { +func mustLeafBuffer(t *testing.T, shardHint uint64, preimage types.Hash, wantSig bool) io.Reader {  	t.Helper()  	vk, sk, err := ed25519.GenerateKey(rand.Reader) @@ -667,7 +667,7 @@ func mustLeafBuffer(t *testing.T, shardHint uint64, checksum types.Hash, wantSig  	}  	msg := types.Statement{  		ShardHint: shardHint, -		Checksum:  checksum, +		Checksum:  *types.HashFn(preimage[:]),  	}  	sig := ed25519.Sign(sk, msg.ToBinary())  	if !wantSig { @@ -676,7 +676,7 @@ func mustLeafBuffer(t *testing.T, shardHint uint64, checksum types.Hash, wantSig  	return bytes.NewBufferString(fmt.Sprintf(  		"%s=%d\n"+"%s=%x\n"+"%s=%x\n"+"%s=%x\n"+"%s=%s\n",  		"shard_hint", shardHint, -		"checksum", checksum[:], +		"preimage", preimage[:],  		"signature", sig,  		"verification_key", vk,  		"domain_hint", "example.com", diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index bbd6cde..7ade955 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -56,8 +56,11 @@ func (i *Instance) leafRequestFromHTTP(ctx context.Context, r *http.Request) (*r  	if err := req.FromASCII(r.Body); err != nil {  		return nil, fmt.Errorf("FromASCII: %v", err)  	} - -	if !req.Statement.Verify(&req.VerificationKey, &req.Signature) { +	stmt := types.Statement{ +		ShardHint: req.ShardHint, +		Checksum:  *types.HashFn(req.Preimage[:]), +	} +	if !stmt.Verify(&req.VerificationKey, &req.Signature) {  		return nil, fmt.Errorf("invalid signature")  	}  	shardEnd := uint64(time.Now().Unix()) | 
