mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-07-16 12:08:04 +00:00
Unit tests for PGP signing/verification
These unit-tests cover operations via both PGP providers: built-in `openpgp` and external `gpg`. Next step is to run these tests for gpg1 & gpg2 as separate entities.
This commit is contained in:
+14
-73
@@ -1,14 +1,11 @@
|
||||
package pgp
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
type GoVerifierSuite struct {
|
||||
verifier Verifier
|
||||
VerifierSuite
|
||||
}
|
||||
|
||||
var _ = Suite(&GoVerifierSuite{})
|
||||
@@ -20,77 +17,21 @@ func (s *GoVerifierSuite) SetUpTest(c *C) {
|
||||
c.Assert(s.verifier.InitKeyring(), IsNil)
|
||||
}
|
||||
|
||||
func (s *GoVerifierSuite) TestVerifyDetached(c *C) {
|
||||
for _, test := range []struct {
|
||||
textName, signatureName string
|
||||
}{
|
||||
{"1.text", "1.signature"},
|
||||
{"2.text", "2.signature"},
|
||||
{"3.text", "3.signature"},
|
||||
} {
|
||||
cleartext, err := os.Open(test.textName)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
signature, err := os.Open(test.signatureName)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
err = s.verifier.VerifyDetachedSignature(signature, cleartext, false)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
signature.Close()
|
||||
cleartext.Close()
|
||||
}
|
||||
type GoSignerSuite struct {
|
||||
SignerSuite
|
||||
}
|
||||
|
||||
func (s *GoVerifierSuite) TestVerifyClearsigned(c *C) {
|
||||
for _, test := range []struct {
|
||||
clearSignedName string
|
||||
}{
|
||||
{"1.clearsigned"},
|
||||
} {
|
||||
clearsigned, err := os.Open(test.clearSignedName)
|
||||
c.Assert(err, IsNil)
|
||||
var _ = Suite(&GoSignerSuite{})
|
||||
|
||||
keyInfo, err := s.verifier.VerifyClearsigned(clearsigned, false)
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(keyInfo.GoodKeys, DeepEquals, []Key{"8B48AD6246925553", "7638D0442B90D010"})
|
||||
c.Check(keyInfo.MissingKeys, DeepEquals, []Key(nil))
|
||||
func (s *GoSignerSuite) SetUpTest(c *C) {
|
||||
s.signer = &GoSigner{}
|
||||
s.signer.SetBatch(true)
|
||||
|
||||
clearsigned.Close()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *GoVerifierSuite) TestExtractClearsigned(c *C) {
|
||||
for _, test := range []struct {
|
||||
clearSignedName, clearTextName string
|
||||
}{
|
||||
{"1.clearsigned", "1.cleartext"},
|
||||
} {
|
||||
clearsigned, err := os.Open(test.clearSignedName)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
cleartext, err := os.Open(test.clearTextName)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
is, err := s.verifier.IsClearSigned(clearsigned)
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(is, Equals, true)
|
||||
|
||||
clearsigned.Seek(0, 0)
|
||||
|
||||
extractedF, err := s.verifier.ExtractClearsigned(clearsigned)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
expected, err := ioutil.ReadAll(cleartext)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
extracted, err := ioutil.ReadAll(extractedF)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
c.Check(expected, DeepEquals, extracted)
|
||||
|
||||
extractedF.Close()
|
||||
clearsigned.Close()
|
||||
cleartext.Close()
|
||||
}
|
||||
s.verifier = &GoVerifier{}
|
||||
s.verifier.AddKeyring("./keyrings/aptly.pub")
|
||||
s.verifier.AddKeyring("./keyrings/aptly_passphrase.pub")
|
||||
|
||||
c.Assert(s.verifier.InitKeyring(), IsNil)
|
||||
|
||||
s.SignerSuite.SetUpTest(c)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user