def testC05DecryptSymmetricCAST(self):
     "decrypt_str() symmetric CAST w/integrity"
     enc_d = read_test_file(['pgpfiles','enc','sym.cast.cleartext.txt.gpg'])
     clrtxt = decrypt_str(enc_d, passphrase='test')
     clrmsgs = list_as_signed(clrtxt)
     literal_pkt = list_pkts(clrmsgs[0].compressed.body.data)[0]
     self.assertEqual(self.lit_data, literal_pkt.body.data)
示例#2
0
 def testA04DSANativeOnePass(self):
     "list: list_as_signed() DSA one-pass signature"
     d = read_test_file(['pgpfiles', 'sig', 'sig.DSAELG1.onepass.gpg'])
     players = list_as_signed(d)
     # looking for players = [signed_msg]
     self.assertEqual(SignedMsg, players[0].__class__)
     self.assertEqual(1, len(players))
示例#3
0
 def testA06DSACompressed(self):
     "list: list_as_signed() DSA compressed one-pass signature"
     d = read_test_file(['pgpfiles', 'sig', 'sig.DSAELG1.comp.gpg'])
     players = list_as_signed(d, decompress=True)
     # looking for players = [signed_msg], since decompression is automatic
     self.assertEqual(SignedMsg, players[0].__class__)
     self.assertEqual(1, len(players))
 def testF03EncryptPublicKeyID(self):
     "encrypt_str()/decrypt_str() ElGamal via key ID"
     pubkey_d = read_test_file(['pgpfiles','key','DSAELG1.pub.asc'])
     seckey_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     cphtxt = encrypt_str(self.lit_data, keys=pubkey_d, use_key=[(None,"CB7D6980A1F2BEF6")])
     clrtxt = decrypt_str(cphtxt, passphrase="test", keys=seckey_d, decompress=True)
     litmsg = list_as_signed(clrtxt)[0] # auto-decompressed above
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
示例#5
0
 def testC05DecryptSymmetricCAST(self):
     "decrypt_str() symmetric CAST w/integrity"
     enc_d = read_test_file(
         ['pgpfiles', 'enc', 'sym.cast.cleartext.txt.gpg'])
     clrtxt = decrypt_str(enc_d, passphrase='test')
     clrmsgs = list_as_signed(clrtxt)
     literal_pkt = list_pkts(clrmsgs[0].compressed.body.data)[0]
     self.assertEqual(self.lit_data, literal_pkt.body.data)
 def testC01DecryptDSA(self):
     "decrypt_str() DSA AES256 w/integrity"
     enc_d = read_test_file(['pgpfiles','enc','pub.elg.aes256.clrtxt.gpg'])
     key_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     clrtxt = decrypt_str(enc_d, passphrase='test', keys=key_d)
     compmsg = list_as_signed(clrtxt)[0]
     literal_pkt = list_pkts(compmsg.compressed.body.data)[0]
     self.assertEqual(self.lit_data, literal_pkt.body.data)
 def testC02DecryptDSA_decompression(self):
     "decrypt_str() DSA AES256 w/integrity (decompressed)"
     enc_d = read_test_file(['pgpfiles','enc','pub.elg.aes256.clrtxt.gpg'])
     key_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     clrtxt = decrypt_str(enc_d, passphrase='test', keys=key_d,
                                  decompress=True)
     litmsg = list_as_signed(clrtxt)[0] # no compressed msg to go through
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
示例#8
0
 def testA03DSAClearsigned(self):
     "list: list_as_signed() DSA clearsigned (ASCII-armored) signature"
     d = read_test_file(['pgpfiles', 'sig', 'sig.DSAELG1.clear.asc'])
     players = list_as_signed(d)
     # looking for players = [([sig], msg)]
     self.assertEqual(Signature, players[0][0][0].__class__)
     self.assertEqual(True, isinstance(players[0][1], str))
     self.assertEqual(1, len(players))
示例#9
0
 def testA05DSADetached(self):
     "list: list_as_signed() DSA detached signature"
     d = read_test_file(['pgpfiles', 'sig', 'sig.DSAELG1.detached.gpg'])
     det_d = read_test_file(['pgpfiles', 'cleartext.txt'])
     players = list_as_signed(d, detached=det_d)
     # looking for players = [([sig], msg)]
     self.assertEqual(Signature, players[0][0][0].__class__)
     self.assertEqual(True, isinstance(players[0][1], str))
     self.assertEqual(1, len(players))
示例#10
0
 def testC01DecryptDSA(self):
     "decrypt_str() DSA AES256 w/integrity"
     enc_d = read_test_file(
         ['pgpfiles', 'enc', 'pub.elg.aes256.clrtxt.gpg'])
     key_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     clrtxt = decrypt_str(enc_d, passphrase='test', keys=key_d)
     compmsg = list_as_signed(clrtxt)[0]
     literal_pkt = list_pkts(compmsg.compressed.body.data)[0]
     self.assertEqual(self.lit_data, literal_pkt.body.data)
 def testC03DecryptDSA_armor(self):
     "decrypt_str() DSA AES256 w/integrity (armored, decompressed)"
     enc_d = read_test_file(['pgpfiles','enc','pub.elg.aes256.clrtxt.gpg'])
     key_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     clrtxt = decrypt_str(enc_d, passphrase='test', keys=key_d,
                                  decompress=True, armor=True)
     self.assertEqual(True, looks_armored(clrtxt)) # check armoring
     litmsg = list_as_signed(clrtxt)[0]
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
 def testC04DecryptRSA(self):
     "decrypt_str() RSA w/integrity"
     lit_data = "My secret message."
     enc_d = read_test_file(['pgpfiles','enc','sap.2DSAELG1RSA.nocomp.gpg'])
     key_d = read_test_file(['pgpfiles','key','RSA1.sec.asc'])
     clrtxt = decrypt_str(enc_d, passphrase='test', keys=key_d)
     clrmsgs = list_as_signed(clrtxt)
     literal_pkt = clrmsgs[0].literals[0]
     self.assertEqual(lit_data, literal_pkt.body.data)
示例#13
0
 def testC04DecryptRSA(self):
     "decrypt_str() RSA w/integrity"
     lit_data = "My secret message."
     enc_d = read_test_file(
         ['pgpfiles', 'enc', 'sap.2DSAELG1RSA.nocomp.gpg'])
     key_d = read_test_file(['pgpfiles', 'key', 'RSA1.sec.asc'])
     clrtxt = decrypt_str(enc_d, passphrase='test', keys=key_d)
     clrmsgs = list_as_signed(clrtxt)
     literal_pkt = clrmsgs[0].literals[0]
     self.assertEqual(lit_data, literal_pkt.body.data)
示例#14
0
 def testC02DecryptDSA_decompression(self):
     "decrypt_str() DSA AES256 w/integrity (decompressed)"
     enc_d = read_test_file(
         ['pgpfiles', 'enc', 'pub.elg.aes256.clrtxt.gpg'])
     key_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     clrtxt = decrypt_str(enc_d,
                          passphrase='test',
                          keys=key_d,
                          decompress=True)
     litmsg = list_as_signed(clrtxt)[0]  # no compressed msg to go through
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
示例#15
0
 def testC03DecryptDSA_armor(self):
     "decrypt_str() DSA AES256 w/integrity (armored, decompressed)"
     enc_d = read_test_file(
         ['pgpfiles', 'enc', 'pub.elg.aes256.clrtxt.gpg'])
     key_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     clrtxt = decrypt_str(enc_d,
                          passphrase='test',
                          keys=key_d,
                          decompress=True,
                          armor=True)
     self.assertEqual(True, looks_armored(clrtxt))  # check armoring
     litmsg = list_as_signed(clrtxt)[0]
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
示例#16
0
 def testF03EncryptPublicKeyID(self):
     "encrypt_str()/decrypt_str() ElGamal via key ID"
     pubkey_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.pub.asc'])
     seckey_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     cphtxt = encrypt_str(self.lit_data,
                          keys=pubkey_d,
                          use_key=[(None, "CB7D6980A1F2BEF6")])
     clrtxt = decrypt_str(cphtxt,
                          passphrase="test",
                          keys=seckey_d,
                          decompress=True)
     litmsg = list_as_signed(clrtxt)[0]  # auto-decompressed above
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
 def testE05SignBinaryAsStringUsingUID(self):
     "sign_str()/verify_str() check literal data options"
     lit_d = read_test_file(['pgpfiles','cleartext.txt'])
     seckey_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     pubkey_d = read_test_file(['pgpfiles','key','DSAELG1.pub.asc'])
     signed = sign_str(0x00, seckey_d, target=lit_d,
                       use_userid=(None,'Tester'),
                       passphrase='test',
                       lit_filename='testfilename',
                       lit_modified=100)
     verified = verify_str(signed, pubkey_d) # verified strips sigs..
     literal_body = list_as_signed(verified)[0].literals[0].body
     self.assertEqual('b', literal_body.format)
     self.assertEqual(lit_d, literal_body.data)
     self.assertEqual('testfilename', literal_body.filename)
     self.assertEqual(100, literal_body.modified)
示例#18
0
 def testE04SignSubkey(self):
     "sign_str()/verify_str() subkey direct (0x1F) w/ lots of subpackets"
     seckey_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     pubkey_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.pub.asc'])
     keyid = "0CFC2B6DCC079DF3"
     opts = {
         'use_key': (None, keyid),
         'passphrase': "test",
         'target': pubkey_d,
         'target_key': (None, "CB7D6980A1F2BEF6"),
         'sig_signerid': keyid,
         'sig_created': 100,
         'sig_expires': 4294967295,
         'sig_keyexpires': 4294967200,
         'sig_revoker':
         (0x80, 1, "AB06532F70BD5CD68978D0181AC964878A17BAC6"),
         #'sig_note':"n1@test::v1 ,, n2@test:: v2,,n3@test:: v3 ",
         'sig_note': [("n1@test", "v1"), ("n2@test", "v2"),
                      ("n3@test", "v3")],
         'sig_policyurl': "http://policy.com"
     }
     #keymsg = sign_str(0x1F, seckey_d, **opts)
     signed = sign_str(0x1F, seckey_d, **opts)
     keymsg = list_as_signed(signed)[0]
     sigpkt = keymsg._b_subkeys['CB7D6980A1F2BEF6'].local_direct[0]
     # the subpkt order is determined by their order of appendage in
     # sign_str() which isn't important, it's just convenient for testing
     h = sigpkt.body.hashed_subpkts
     [signerid, created, sig_exp, key_exp, n1, n2, n3, url, revoker] = h
     self.assertEqual((0x10, keyid), (signerid.type, signerid.value))
     self.assertEqual((0x02, 100), (created.type, created.value))
     self.assertEqual((0x03, 4294967295), (sig_exp.type, sig_exp.value))
     self.assertEqual((0x09, 4294967200), (key_exp.type, key_exp.value))
     self.assertEqual((0x14, "n1@test", "v1"),
                      (n1.type, n1.value[1], n1.value[2]))
     self.assertEqual((0x14, "n2@test", "v2"),
                      (n2.type, n2.value[1], n2.value[2]))
     self.assertEqual((0x14, "n3@test", "v3"),
                      (n3.type, n3.value[1], n3.value[2]))
     self.assertEqual((0x1A, "http://policy.com"), (url.type, url.value))
     self.assertEqual(
         (0x0C, (128, 1, "AB06532F70BD5CD68978D0181AC964878A17BAC6")),
         (revoker.type, revoker.value))
     # verify new sig (everything in signed is verified against pubkey_d)
     verified = verify_str(signed, pubkey_d)
     self.assertEqual(verified, signed)
示例#19
0
 def testE05SignBinaryAsStringUsingUID(self):
     "sign_str()/verify_str() check literal data options"
     lit_d = read_test_file(['pgpfiles', 'cleartext.txt'])
     seckey_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     pubkey_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.pub.asc'])
     signed = sign_str(0x00,
                       seckey_d,
                       target=lit_d,
                       use_userid=(None, 'Tester'),
                       passphrase='test',
                       lit_filename='testfilename',
                       lit_modified=100)
     verified = verify_str(signed, pubkey_d)  # verified strips sigs..
     literal_body = list_as_signed(verified)[0].literals[0].body
     self.assertEqual('b', literal_body.format)
     self.assertEqual(lit_d, literal_body.data)
     self.assertEqual('testfilename', literal_body.filename)
     self.assertEqual(100, literal_body.modified)
 def testF06EncryptMultiplePublicUserID(self):
     "encrypt_str()/decrypt_str() multiple public (no compression) via user ID"
     pubkey1_d = read_test_file(['pgpfiles','key','DSAELG1.pub.asc'])
     seckey1_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     #pubkey2_d = read_test_file(['pgpfiles','key','DSAELG3.pub.asc'])
     #seckey2_d = read_test_file(['pgpfiles','key','DSAELG3.sec.asc'])
     pubkey3_d = read_test_file(['pgpfiles','key','RSA1.pub.asc'])
     seckey3_d = read_test_file(['pgpfiles','key','RSA1.sec.asc'])
     pubkey_d = linesep.join([pubkey1_d, pubkey3_d])
     uids = [(None,"Tester"),
             #(None,"*****@*****.**"),
             (None,"testrsa")]
     cphtxt = encrypt_str(self.lit_data, keys=pubkey_d, use_userid=uids)
     # they all happen to have the same passphrase
     passphrase = "test"
     for seckey_d in [seckey1_d, seckey3_d]:
         clrtxt = decrypt_str(cphtxt, passphrase="test", keys=seckey_d,
                              decompress=True)
         litmsg = list_as_signed(clrtxt)[0]
         self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
 def testE04SignSubkey(self):
     "sign_str()/verify_str() subkey direct (0x1F) w/ lots of subpackets"
     seckey_d = read_test_file(['pgpfiles','key','DSAELG1.sec.asc'])
     pubkey_d = read_test_file(['pgpfiles','key','DSAELG1.pub.asc'])
     keyid = "0CFC2B6DCC079DF3"
     opts = {'use_key':(None, keyid),
             'passphrase':"test",
             'target':pubkey_d,
             'target_key':(None,"CB7D6980A1F2BEF6"),
             'sig_signerid':keyid,
             'sig_created':100,
             'sig_expires':4294967295,
             'sig_keyexpires':4294967200,
             'sig_revoker':(0x80,1,"AB06532F70BD5CD68978D0181AC964878A17BAC6"),
             #'sig_note':"n1@test::v1 ,, n2@test:: v2,,n3@test:: v3 ",
             'sig_note':[("n1@test","v1"),("n2@test","v2"),("n3@test","v3")],
             'sig_policyurl':"http://policy.com"}
     #keymsg = sign_str(0x1F, seckey_d, **opts)
     signed = sign_str(0x1F, seckey_d, **opts)
     keymsg = list_as_signed(signed)[0]
     sigpkt = keymsg._b_subkeys['CB7D6980A1F2BEF6'].local_direct[0]
     # the subpkt order is determined by their order of appendage in
     # sign_str() which isn't important, it's just convenient for testing
     h = sigpkt.body.hashed_subpkts 
     [signerid, created, sig_exp, key_exp, n1, n2, n3, url, revoker] = h
     self.assertEqual((0x10, keyid), (signerid.type, signerid.value))
     self.assertEqual((0x02, 100), (created.type, created.value))
     self.assertEqual((0x03, 4294967295), (sig_exp.type, sig_exp.value))
     self.assertEqual((0x09, 4294967200), (key_exp.type, key_exp.value))
     self.assertEqual((0x14, "n1@test", "v1"), (n1.type, n1.value[1], n1.value[2]))
     self.assertEqual((0x14, "n2@test", "v2"), (n2.type, n2.value[1], n2.value[2]))
     self.assertEqual((0x14, "n3@test", "v3"), (n3.type, n3.value[1], n3.value[2]))
     self.assertEqual((0x1A, "http://policy.com"), (url.type, url.value))
     self.assertEqual((0x0C, (128, 1, "AB06532F70BD5CD68978D0181AC964878A17BAC6")), (revoker.type, revoker.value))
     # verify new sig (everything in signed is verified against pubkey_d)
     verified = verify_str(signed, pubkey_d)
     self.assertEqual(verified, signed)
示例#22
0
 def testF06EncryptMultiplePublicUserID(self):
     "encrypt_str()/decrypt_str() multiple public (no compression) via user ID"
     pubkey1_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.pub.asc'])
     seckey1_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.sec.asc'])
     #pubkey2_d = read_test_file(['pgpfiles','key','DSAELG3.pub.asc'])
     #seckey2_d = read_test_file(['pgpfiles','key','DSAELG3.sec.asc'])
     pubkey3_d = read_test_file(['pgpfiles', 'key', 'RSA1.pub.asc'])
     seckey3_d = read_test_file(['pgpfiles', 'key', 'RSA1.sec.asc'])
     pubkey_d = linesep.join([pubkey1_d, pubkey3_d])
     uids = [
         (None, "Tester"),
         #(None,"*****@*****.**"),
         (None, "testrsa")
     ]
     cphtxt = encrypt_str(self.lit_data, keys=pubkey_d, use_userid=uids)
     # they all happen to have the same passphrase
     passphrase = "test"
     for seckey_d in [seckey1_d, seckey3_d]:
         clrtxt = decrypt_str(cphtxt,
                              passphrase="test",
                              keys=seckey_d,
                              decompress=True)
         litmsg = list_as_signed(clrtxt)[0]
         self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
示例#23
0
 def testA02ArmoredRSAPublicKey(self):
     "list: list_as_signed() RSA public key, ASCII-armored"
     d = read_test_file(['pgpfiles', 'key', 'RSA1.pub.gpg'])
     players = list_as_signed(d)
     self.assertEqual(PublicKeyMsg, players[0].__class__)
     self.assertEqual(1, len(players))
示例#24
0
 def testB05VerifyKey(self):
     "verify_str() verify local key sigs (headers lost in armored output)"
     key_d = read_test_file(['pgpfiles', 'key', 'DSAELG1.pub.asc'])
     verified = verify_str(key_d, key_d)
     self.assertEqual(list_as_signed(key_d), list_as_signed(verified))
 def testB05VerifyKey(self):
     "verify_str() verify local key sigs (headers lost in armored output)"
     key_d = read_test_file(['pgpfiles','key','DSAELG1.pub.asc'])
     verified = verify_str(key_d, key_d)
     self.assertEqual(list_as_signed(key_d), list_as_signed(verified))
 def testF05EncryptSymmetric(self):
     "encrypt_str()/decrypt_str() symmetric default"
     cphtxt = encrypt_str(self.lit_data, passphrase="test")
     clrtxt = decrypt_str(cphtxt, passphrase="test", decompress=True)
     litmsg = list_as_signed(clrtxt)[0] # auto-decompressed above
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)
示例#27
0
 def testA01NativeDSAPublicKey(self):
     "list: list_as_signed() DSA public key"
     d = read_test_file(['pgpfiles', 'key', 'DSAELG1.pub.gpg'])
     players = list_as_signed(d)
     self.assertEqual(PublicKeyMsg, players[0].__class__)
     self.assertEqual(1, len(players))
示例#28
0
 def testF05EncryptSymmetric(self):
     "encrypt_str()/decrypt_str() symmetric default"
     cphtxt = encrypt_str(self.lit_data, passphrase="test")
     clrtxt = decrypt_str(cphtxt, passphrase="test", decompress=True)
     litmsg = list_as_signed(clrtxt)[0]  # auto-decompressed above
     self.assertEqual(self.lit_data, litmsg.literals[0].body.data)