15
15
package verify_test
16
16
17
17
import (
18
+ "crypto/ecdsa"
19
+ "crypto/elliptic"
20
+ "crypto/rand"
21
+ "crypto/x509"
18
22
"testing"
19
23
"time"
20
24
25
+ "github.com/sigstore/sigstore-go/pkg/bundle"
21
26
"github.com/sigstore/sigstore-go/pkg/testing/ca"
22
27
"github.com/sigstore/sigstore-go/pkg/verify"
23
28
"github.com/stretchr/testify/assert"
@@ -30,30 +35,64 @@ func TestVerifyValidityPeriod(t *testing.T) {
30
35
leaf ,
_ ,
err := virtualSigstore .
GenerateLeafCert (
"[email protected] " ,
"issuer" )
31
36
assert .NoError (t , err )
32
37
38
+ altIntermediate , intermediateKey , err := virtualSigstore .GenerateNewFulcioIntermediate ("sigstore-subintermediate" )
39
+ assert .NoError (t , err )
40
+
41
+ altPrivKey , err := ecdsa .GenerateKey (elliptic .P256 (), rand .Reader )
42
+ assert .NoError (t , err )
43
+ altLeaf ,
err := ca .
GenerateLeafCert (
"[email protected] " ,
"issuer" ,
time .
Now ().
Add (
time .
Hour * 24 ),
altPrivKey ,
altIntermediate ,
intermediateKey )
44
+ assert .NoError (t , err )
45
+
33
46
tests := []struct {
34
- name string
35
- observerTimestamp time.Time
36
- wantErr bool
47
+ name string
48
+ observerTimestamp time.Time
49
+ verificationContent verify.VerificationContent
50
+ wantErr bool
37
51
}{
38
52
{
39
- name : "before validity period" ,
40
- observerTimestamp : time .Now ().Add (time .Hour * - 24 ),
41
- wantErr : true ,
53
+ name : "before validity period" ,
54
+ observerTimestamp : time .Now ().Add (time .Hour * - 24 ),
55
+ verificationContent : & bundle.Certificate {leaf },
56
+ wantErr : true ,
42
57
},
43
58
{
44
- name : "inside validity period" ,
59
+ name : "inside validity period" ,
60
+ observerTimestamp : time .Now (),
61
+ verificationContent : & bundle.Certificate {leaf },
62
+ wantErr : false ,
63
+ },
64
+ {
65
+ name : "after validity period" ,
66
+ observerTimestamp : time .Now ().Add (time .Hour * 24 ),
67
+ verificationContent : & bundle.Certificate {leaf },
68
+ wantErr : true ,
69
+ },
70
+ {
71
+ name : "with intermediates" ,
45
72
observerTimestamp : time .Now (),
46
- wantErr : false ,
73
+ verificationContent : & bundle.CertificateChain {
74
+ Certificates : []* x509.Certificate {
75
+ altIntermediate ,
76
+ altLeaf ,
77
+ },
78
+ },
79
+ wantErr : false ,
47
80
},
48
81
{
49
- name : "after validity period" ,
50
- observerTimestamp : time .Now ().Add (time .Hour * 24 ),
51
- wantErr : true ,
82
+ name : "with invalid intermediates" ,
83
+ observerTimestamp : time .Now (),
84
+ verificationContent : & bundle.CertificateChain {
85
+ Certificates : []* x509.Certificate {
86
+ altLeaf ,
87
+ leaf ,
88
+ },
89
+ },
90
+ wantErr : true ,
52
91
},
53
92
}
54
93
for _ , tt := range tests {
55
94
t .Run (tt .name , func (t * testing.T ) {
56
- if err := verify .VerifyLeafCertificate (tt .observerTimestamp , leaf , virtualSigstore ); (err != nil ) != tt .wantErr {
95
+ if err := verify .VerifyLeafCertificate (tt .observerTimestamp , tt . verificationContent , virtualSigstore ); (err != nil ) != tt .wantErr {
57
96
t .Errorf ("VerifyLeafCertificate() error = %v, wantErr %v" , err , tt .wantErr )
58
97
}
59
98
})
0 commit comments