@@ -16,20 +16,25 @@ type VerifierSuite struct {
1616func (s * VerifierSuite ) TestVerifyDetached (c * C ) {
1717 for _ , test := range []struct {
1818 textName , signatureName string
19+ expiredKeys []Key
1920 }{
20- {"1.text" , "1.signature" },
21- {"2.text" , "2.signature" },
22- {"3.text" , "3.signature" },
23- {"4.text" , "4.signature" },
21+ {"1.text" , "1.signature" , nil },
22+ {"2.text" , "2.signature" , nil },
23+ {"3.text" , "3.signature" , nil },
24+ // 4.signature is signed by an expired key (wheezy, 8B48AD6246925553)
25+ {"4.text" , "4.signature" , []Key {"8B48AD6246925553" }},
2426 } {
2527 cleartext , err := os .Open (test .textName )
2628 c .Assert (err , IsNil )
2729
2830 signature , err := os .Open (test .signatureName )
2931 c .Assert (err , IsNil )
3032
31- err = s .verifier .VerifyDetachedSignature (signature , cleartext , false )
33+ keyInfo , err : = s .verifier .VerifyDetachedSignature (signature , cleartext , false )
3234 c .Assert (err , IsNil )
35+ if test .expiredKeys != nil {
36+ c .Check (keyInfo .ExpiredKeys , DeepEquals , test .expiredKeys )
37+ }
3338
3439 _ = signature .Close ()
3540 _ = cleartext .Close ()
@@ -47,8 +52,10 @@ func (s *VerifierSuite) TestVerifyClearsigned(c *C) {
4752
4853 keyInfo , err := s .verifier .VerifyClearsigned (clearsigned , false )
4954 c .Assert (err , IsNil )
50- c .Check (keyInfo .GoodKeys , DeepEquals , []Key {"04EE7237B7D453EC" , "648ACFD622F3D138" , "DCC9EFBF77E11517" })
55+ // 04EE7237B7D453EC (stretch) is expired and must appear in ExpiredKeys, not GoodKeys
56+ c .Check (keyInfo .GoodKeys , DeepEquals , []Key {"648ACFD622F3D138" , "DCC9EFBF77E11517" })
5157 c .Check (keyInfo .MissingKeys , DeepEquals , []Key (nil ))
58+ c .Check (keyInfo .ExpiredKeys , DeepEquals , []Key {"04EE7237B7D453EC" })
5259
5360 _ = clearsigned .Close ()
5461 }
0 commit comments