From a26d216535cde1d2d5b0b4a629c6453e90100a7c Mon Sep 17 00:00:00 2001 From: nsz Date: Fri, 16 Dec 2011 04:13:23 +0100 Subject: [PATCH] document += sign test --- pkg/document/document_test.go | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/pkg/document/document_test.go b/pkg/document/document_test.go index 982f3a9..93b0584 100644 --- a/pkg/document/document_test.go +++ b/pkg/document/document_test.go @@ -1,6 +1,8 @@ package document import ( + "bytes" + "crypto/openpgp" "testing" ) @@ -227,3 +229,73 @@ func TestCert(t *testing.T) { t.Errorf("parsed %#v\nexpected: %s\ngot: %s\n", d, debitBody, s) } } + +func parsekey(key []byte, t *testing.T) *openpgp.Entity { + elist, err := openpgp.ReadArmoredKeyRing(bytes.NewBuffer(key)) + if err != nil { + t.Error(err) + return nil + } + if len(elist) != 1 { + t.Errorf("expected one key, got %d", len(elist)) + return nil + } + return elist[0] +} + +func TestSign(t *testing.T) { + k1 := parsekey(skey1, t) + k2 := parsekey(pkey2, t) + if k1 == nil || k2 == nil { + t.Errorf("parsing keys failed") + return + } + signed, err := Sign([]byte(debitBody), k1) + if err != nil { + t.Errorf("Sign failed: %s", err) + return + } + err = Verify(signed, openpgp.EntityList{k1}) + if err != nil { + t.Errorf("Verify failed: %s", err) + } + err = Verify(signed, openpgp.EntityList{k2}) + if err == nil { + t.Errorf("Verify succeeded with wrong key") + } +} + +var skey1 = []byte(`-----BEGIN PGP PRIVATE KEY BLOCK----- + +xcD7BAAAAAARBACk0rlXXCXw5iK4aUOHEop5PhrSfRL/9LW6EaN879Mck1vLsKlE +WBpubaEphvy6nWZmB9cdNlwoa5vLV/bZOL50mCt9dwzkOPA7CiCroC5WkUWMOdlu +boauVkF27Rpt+6+27nZ0zF7c+f62FYRx+z+rU7oc4bpkxWJrnoWF/O9dMQCg//// +/////////yVOr555FtYHqq8D/36lyJh3e+S7KdzcRyiecY9ydMnNflcNPVUvOz7k +PD3ve6aOV3hpJlIMyscduhPzfEBkOV1a8zNKBKvYztXn/0dsZhlTk26K3elqOdjE +rBCAor4/6GOiSwi9Q4J+VK+tpyQzcE6jwS5Q5b0IwTDGihQC/CDaec/g3pMcQUNI +0ysQBACIdEX3XRinq+oFm3+YFu5bC1Ewry7eVxukto18dtMJnU69oMjF3x7Uio5A +kvYNWYPxdtLjEzk/HMo/3Mg6u/jK006CPqZRcx/m3B5R7gYb5D9PyF/tJsrht4nD +eDuCAT00kHKYMElgwSzXg03cFcC5AEMf6U7MsrX1JLwY5Dq12gAAoOX6RPKzHB+1 +U7YCHnNg0H1dkf9eCuzNBklzc3VlcsJMBBMRCAAWBQIAAAAACRCRl3ps/DHg6wIZ +AQIbAwAAIroAoBn5gA6TmLKXU9ASu+ENhV0UxowzAKA9Y/4CiQzAeCDcKIcWCg7W +3r6Jow== +=NVdT +-----END PGP PRIVATE KEY BLOCK----- +`) + +var pkey2 = []byte(`-----BEGIN PGP PUBLIC KEY BLOCK----- + +xsDiBAAAAAARBACk0rlXXCXw5iK4aUOHEop5PhrSfRL/9LW6EaN879Mck1vLsKlE +WBpubaEphvy6nWZmB9cdNlwoa5vLV/bZOL50mCt9dwzkOPA7CiCroC5WkUWMOdlu +boauVkF27Rpt+6+27nZ0zF7c+f62FYRx+z+rU7oc4bpkxWJrnoWF/O9dMQCg//// +/////////yVOr555FtYHqq8D/36lyJh3e+S7KdzcRyiecY9ydMnNflcNPVUvOz7k +PD3ve6aOV3hpJlIMyscduhPzfEBkOV1a8zNKBKvYztXn/0dsZhlTk26K3elqOdjE +rBCAor4/6GOiSwi9Q4J+VK+tpyQzcE6jwS5Q5b0IwTDGihQC/CDaec/g3pMcQUNI +0ysQBACFl7Go0A5UqlnmwRmsLfvAEBM2+tsIoBlBDEwcgd+nJZzCQpAqO/OpSqHk +Yx4imGcdknfPLkMmN+Kz9j4o0T+LZuYyblhuj2t1M9lf0Is/Go0Drf/7oc2KpHAo +nfKu7fkM5nfZWFsgE9TxOz8SQa2RuuhpbkpB2k0Vg2TbqTpFeM0GSXNzdWVywkwE +ExEIABYFAgAAAAAJEKqJF6U/VQ52AhkBAhsDAADIMwCgt/kmhRwmlzcnc1S3Qlfo +BD0PBa8AoG5Vm9U4gzWQM/BzVxDToJPB1ZHf +=MNqN +-----END PGP PUBLIC KEY BLOCK----- +`) -- 2.20.1