1
1
package dsse
2
2
3
3
import (
4
+ "context"
4
5
"crypto"
5
6
"crypto/ecdsa"
6
7
"crypto/elliptic"
@@ -40,11 +41,11 @@ func TestPAE(t *testing.T) {
40
41
41
42
type nilsigner int
42
43
43
- func (n nilsigner ) Sign (data []byte ) ([]byte , error ) {
44
+ func (n nilsigner ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
44
45
return data , nil
45
46
}
46
47
47
- func (n nilsigner ) Verify (data , sig []byte ) error {
48
+ func (n nilsigner ) Verify (ctx context. Context , data , sig []byte ) error {
48
49
if len (data ) != len (sig ) {
49
50
return errLength
50
51
}
@@ -68,11 +69,11 @@ func (n nilsigner) Public() crypto.PublicKey {
68
69
69
70
type nullsigner int
70
71
71
- func (n nullsigner ) Sign (data []byte ) ([]byte , error ) {
72
+ func (n nullsigner ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
72
73
return data , nil
73
74
}
74
75
75
- func (n nullsigner ) Verify (data , sig []byte ) error {
76
+ func (n nullsigner ) Verify (ctx context. Context , data , sig []byte ) error {
76
77
if len (data ) != len (sig ) {
77
78
return errLength
78
79
}
@@ -96,11 +97,11 @@ func (n nullsigner) Public() crypto.PublicKey {
96
97
97
98
type errsigner int
98
99
99
- func (n errsigner ) Sign (data []byte ) ([]byte , error ) {
100
+ func (n errsigner ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
100
101
return nil , fmt .Errorf ("signing error" )
101
102
}
102
103
103
- func (n errsigner ) Verify (data , sig []byte ) error {
104
+ func (n errsigner ) Verify (ctx context. Context , data , sig []byte ) error {
104
105
return errVerify
105
106
}
106
107
@@ -117,11 +118,11 @@ type errverifier int
117
118
var errVerify = fmt .Errorf ("accepted signatures do not match threshold, Found: 0, Expected 1" )
118
119
var errThreshold = fmt .Errorf ("invalid threshold" )
119
120
120
- func (n errverifier ) Sign (data []byte ) ([]byte , error ) {
121
+ func (n errverifier ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
121
122
return data , nil
122
123
}
123
124
124
- func (n errverifier ) Verify (data , sig []byte ) error {
125
+ func (n errverifier ) Verify (ctx context. Context , data , sig []byte ) error {
125
126
return errVerify
126
127
}
127
128
@@ -135,11 +136,11 @@ func (n errverifier) Public() crypto.PublicKey {
135
136
136
137
type badverifier int
137
138
138
- func (n badverifier ) Sign (data []byte ) ([]byte , error ) {
139
+ func (n badverifier ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
139
140
return append (data , byte (0 )), nil
140
141
}
141
142
142
- func (n badverifier ) Verify (data , sig []byte ) error {
143
+ func (n badverifier ) Verify (ctx context. Context , data , sig []byte ) error {
143
144
144
145
if len (data ) != len (sig ) {
145
146
return errLength
@@ -199,7 +200,7 @@ func TestNilSign(t *testing.T) {
199
200
signer , err := NewEnvelopeSigner (ns )
200
201
assert .Nil (t , err , "unexpected error" )
201
202
202
- got , err := signer .SignPayload (payloadType , []byte (payload ))
203
+ got , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
203
204
assert .Nil (t , err , "sign failed" )
204
205
assert .Equal (t , & want , got , "bad signature" )
205
206
}
@@ -209,7 +210,7 @@ func TestSignError(t *testing.T) {
209
210
signer , err := NewEnvelopeSigner (es )
210
211
assert .Nil (t , err , "unexpected error" )
211
212
212
- got , err := signer .SignPayload ("t" , []byte ("d" ))
213
+ got , err := signer .SignPayload (context . TODO (), "t" , []byte ("d" ))
213
214
assert .Nil (t , got , "expected nil" )
214
215
assert .NotNil (t , err , "error expected" )
215
216
assert .Equal (t , "signing error" , err .Error (), "wrong error" )
@@ -252,7 +253,7 @@ type EcdsaSigner struct {
252
253
verified bool
253
254
}
254
255
255
- func (es * EcdsaSigner ) Sign (data []byte ) ([]byte , error ) {
256
+ func (es * EcdsaSigner ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
256
257
// Data is complete message, hash it and sign the digest
257
258
digest := sha256 .Sum256 (data )
258
259
r , s , err := rfc6979 .SignECDSA (es .key , digest [:], sha256 .New )
@@ -268,7 +269,7 @@ func (es *EcdsaSigner) Sign(data []byte) ([]byte, error) {
268
269
return rawSig , nil
269
270
}
270
271
271
- func (es * EcdsaSigner ) Verify (data , sig []byte ) error {
272
+ func (es * EcdsaSigner ) Verify (ctx context. Context , data , sig []byte ) error {
272
273
var r big.Int
273
274
var s big.Int
274
275
digest := sha256 .Sum256 (data )
@@ -319,12 +320,12 @@ func TestEcdsaSign(t *testing.T) {
319
320
signer , err := NewEnvelopeSigner (ecdsa )
320
321
assert .Nil (t , err , "unexpected error" )
321
322
322
- env , err := signer .SignPayload (payloadType , []byte (payload ))
323
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
323
324
assert .Nil (t , err , "unexpected error" )
324
325
assert .Equal (t , & want , env , "Wrong envelope generated" )
325
326
326
327
// Now verify
327
- acceptedKeys , err := signer .Verify (env )
328
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
328
329
assert .Nil (t , err , "unexpected error" )
329
330
assert .True (t , ecdsa .verified , "verify was not called" )
330
331
assert .Len (t , acceptedKeys , 1 , "unexpected keys" )
@@ -384,10 +385,10 @@ func TestVerifyOneProvider(t *testing.T) {
384
385
signer , err := NewEnvelopeSigner (ns )
385
386
assert .Nil (t , err , "unexpected error" )
386
387
387
- env , err := signer .SignPayload (payloadType , []byte (payload ))
388
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
388
389
assert .Nil (t , err , "sign failed" )
389
390
390
- acceptedKeys , err := signer .Verify (env )
391
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
391
392
assert .Nil (t , err , "unexpected error" )
392
393
assert .Len (t , acceptedKeys , 1 , "unexpected keys" )
393
394
assert .Equal (t , acceptedKeys [0 ].KeyID , "nil" , "unexpected keyid" )
@@ -402,10 +403,10 @@ func TestVerifyMultipleProvider(t *testing.T) {
402
403
signer , err := NewEnvelopeSigner (ns , null )
403
404
assert .Nil (t , err , "unexpected error" )
404
405
405
- env , err := signer .SignPayload (payloadType , []byte (payload ))
406
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
406
407
assert .Nil (t , err , "sign failed" )
407
408
408
- acceptedKeys , err := signer .Verify (env )
409
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
409
410
assert .Nil (t , err , "unexpected error" )
410
411
assert .Len (t , acceptedKeys , 2 , "unexpected keys" )
411
412
}
@@ -418,10 +419,10 @@ func TestVerifyMultipleProviderThreshold(t *testing.T) {
418
419
var null nullsigner
419
420
signer , err := NewMultiEnvelopeSigner (2 , ns , null )
420
421
assert .Nil (t , err )
421
- env , err := signer .SignPayload (payloadType , []byte (payload ))
422
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
422
423
assert .Nil (t , err , "sign failed" )
423
424
424
- acceptedKeys , err := signer .Verify (env )
425
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
425
426
assert .Nil (t , err , "unexpected error" )
426
427
assert .Len (t , acceptedKeys , 2 , "unexpected keys" )
427
428
}
@@ -443,10 +444,10 @@ func TestVerifyErr(t *testing.T) {
443
444
signer , err := NewEnvelopeSigner (errv )
444
445
assert .Nil (t , err , "unexpected error" )
445
446
446
- env , err := signer .SignPayload (payloadType , []byte (payload ))
447
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
447
448
assert .Nil (t , err , "sign failed" )
448
449
449
- _ , err = signer .Verify (env )
450
+ _ , err = signer .Verify (context . TODO (), env )
450
451
assert .Equal (t , errVerify , err , "wrong error" )
451
452
}
452
453
@@ -458,10 +459,10 @@ func TestBadVerifier(t *testing.T) {
458
459
signer , err := NewEnvelopeSigner (badv )
459
460
assert .Nil (t , err , "unexpected error" )
460
461
461
- env , err := signer .SignPayload (payloadType , []byte (payload ))
462
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
462
463
assert .Nil (t , err , "sign failed" )
463
464
464
- _ , err = signer .Verify (env )
465
+ _ , err = signer .Verify (context . TODO (), env )
465
466
assert .NotNil (t , err , "expected error" )
466
467
}
467
468
@@ -472,7 +473,7 @@ func TestVerifyNoSig(t *testing.T) {
472
473
473
474
env := & Envelope {}
474
475
475
- _ , err = signer .Verify (env )
476
+ _ , err = signer .Verify (context . TODO (), env )
476
477
assert .Equal (t , ErrNoSignature , err , "wrong error" )
477
478
}
478
479
@@ -489,7 +490,7 @@ func TestVerifyBadBase64(t *testing.T) {
489
490
},
490
491
}
491
492
492
- _ , err := signer .Verify (env )
493
+ _ , err := signer .Verify (context . TODO (), env )
493
494
assert .IsType (t , base64 .CorruptInputError (0 ), err , "wrong error" )
494
495
})
495
496
@@ -503,7 +504,7 @@ func TestVerifyBadBase64(t *testing.T) {
503
504
},
504
505
}
505
506
506
- _ , err := signer .Verify (env )
507
+ _ , err := signer .Verify (context . TODO (), env )
507
508
assert .IsType (t , base64 .CorruptInputError (0 ), err , "wrong error" )
508
509
})
509
510
}
@@ -527,7 +528,7 @@ func TestVerifyNoMatch(t *testing.T) {
527
528
},
528
529
}
529
530
530
- _ , err = signer .Verify (env )
531
+ _ , err = signer .Verify (context . TODO (), env )
531
532
assert .NotNil (t , err , "expected error" )
532
533
}
533
534
@@ -537,11 +538,11 @@ type interceptSigner struct {
537
538
verifyCalled bool
538
539
}
539
540
540
- func (i * interceptSigner ) Sign (data []byte ) ([]byte , error ) {
541
+ func (i * interceptSigner ) Sign (ctx context. Context , data []byte ) ([]byte , error ) {
541
542
return data , nil
542
543
}
543
544
544
- func (i * interceptSigner ) Verify (data , sig []byte ) error {
545
+ func (i * interceptSigner ) Verify (ctx context. Context , data , sig []byte ) error {
545
546
i .verifyCalled = true
546
547
547
548
if i .verifyRes {
@@ -573,10 +574,10 @@ func TestVerifyOneFail(t *testing.T) {
573
574
signer , err := NewEnvelopeSigner (s1 , s2 )
574
575
assert .Nil (t , err , "unexpected error" )
575
576
576
- env , err := signer .SignPayload (payloadType , []byte (payload ))
577
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
577
578
assert .Nil (t , err , "sign failed" )
578
579
579
- acceptedKeys , err := signer .Verify (env )
580
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
580
581
assert .Nil (t , err , "expected error" )
581
582
assert .True (t , s1 .verifyCalled , "verify not called" )
582
583
assert .True (t , s2 .verifyCalled , "verify not called" )
@@ -599,10 +600,10 @@ func TestVerifySameKeyID(t *testing.T) {
599
600
signer , err := NewEnvelopeSigner (s1 , s2 )
600
601
assert .Nil (t , err , "unexpected error" )
601
602
602
- env , err := signer .SignPayload (payloadType , []byte (payload ))
603
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
603
604
assert .Nil (t , err , "sign failed" )
604
605
605
- acceptedKeys , err := signer .Verify (env )
606
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
606
607
assert .Nil (t , err , "expected error" )
607
608
assert .True (t , s1 .verifyCalled , "verify not called" )
608
609
assert .True (t , s2 .verifyCalled , "verify not called" )
@@ -627,10 +628,10 @@ func TestVerifyEmptyKeyID(t *testing.T) {
627
628
signer , err := NewEnvelopeSigner (s1 , s2 )
628
629
assert .Nil (t , err , "unexpected error" )
629
630
630
- env , err := signer .SignPayload (payloadType , []byte (payload ))
631
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
631
632
assert .Nil (t , err , "sign failed" )
632
633
633
- acceptedKeys , err := signer .Verify (env )
634
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
634
635
assert .Nil (t , err , "expected error" )
635
636
// assert.True(t, s1.verifyCalled, "verify not called")
636
637
// assert.True(t, s2.verifyCalled, "verify not called")
@@ -658,10 +659,10 @@ func TestVerifyPublicKeyID(t *testing.T) {
658
659
signer , err := NewEnvelopeSigner (s1 , s2 )
659
660
assert .Nil (t , err , "unexpected error" )
660
661
661
- env , err := signer .SignPayload (payloadType , []byte (payload ))
662
+ env , err := signer .SignPayload (context . TODO (), payloadType , []byte (payload ))
662
663
assert .Nil (t , err , "sign failed" )
663
664
664
- acceptedKeys , err := signer .Verify (env )
665
+ acceptedKeys , err := signer .Verify (context . TODO (), env )
665
666
assert .Nil (t , err , "expected error" )
666
667
assert .Len (t , acceptedKeys , 1 , "unexpected keys" )
667
668
assert .Equal (t , acceptedKeys [0 ].KeyID , keyID , "unexpected keyid" )
0 commit comments