aboutsummaryrefslogtreecommitdiff
path: root/pkg/instance
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordberg.se>2022-03-28 13:18:52 +0200
committerRasmus Dahlberg <rasmus@mullvad.net>2022-03-28 19:18:11 +0200
commit3f8010612c376ba9775101a3c823125ce9c82304 (patch)
tree4a806b3e4b452a28cbfab97e7412ed9182f4588d /pkg/instance
parent4e1b2586576012a1be561a2337192ee517f13fbb (diff)
follow SSHSIG changes in lib
Diffstat (limited to 'pkg/instance')
-rw-r--r--pkg/instance/handler_test.go6
-rw-r--r--pkg/instance/instance.go7
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())