Пример #1
0
def get_secret_keys():
    """
        Get dictionary of {key_id:key} for all secret keys in the tests/data/keys folder
        Memoized in the cached dictionary
    """
    if 'keys' not in cached:
        keys = {}
        key_folder = os.path.join(this_folder, '..', 'data', 'keys')
        for key_name in os.listdir(key_folder):
            location = os.path.join(key_folder, key_name)
            if os.path.isfile(location) and key_name.endswith("gpg") and 'secret' in key_name:
                with open(location, 'r') as k:
                    key = Key(passphrase="blahandstuff").parse(k.read())
                    keys.update(key.key_dict())
        cached['keys'] = keys
    return cached['keys']
Пример #2
0
def get_decryptor_and_message(key_location, message_location, passphrase):
    this_dir = os.path.dirname(__file__)
    master_dir = os.path.join(this_dir, '../../')
    sys.path = [master_dir] + sys.path

    from gpglib.structures import EncryptedMessage, Key
    
    # Parse the secret key
    secret_key_location = os.path.join(master_dir, key_location)
    key = Key(passphrase=passphrase).parse(open(secret_key_location).read())
    keys = key.key_dict()
    
    # Get message we're gonna continously decrypt
    message_location = os.path.join(master_dir, message_location)
    message = open(message_location).read()
    return EncryptedMessage(keys=keys), message
Пример #3
0
def get_decryptor_and_message(key_location, message_location, passphrase):
    this_dir = os.path.dirname(__file__)
    master_dir = os.path.join(this_dir, '../../')
    sys.path = [master_dir] + sys.path

    from gpglib.structures import EncryptedMessage, Key

    # Parse the secret key
    secret_key_location = os.path.join(master_dir, key_location)
    key = Key(passphrase=passphrase).parse(
        open(secret_key_location, 'rb').read())
    keys = key.key_dict()

    # Get message we're gonna continously decrypt
    message_location = os.path.join(master_dir, message_location)
    message = open(message_location, 'rb').read()
    return EncryptedMessage(keys=keys), message
Пример #4
0
def get_secret_keys():
    """
        Get dictionary of {key_id:key} for all secret keys in the tests/data/keys folder
        Memoized in the cached dictionary
    """
    if 'keys' not in cached:
        keys = {}
        key_folder = os.path.join(this_folder, '..', 'data', 'keys')
        for key_name in os.listdir(key_folder):
            location = os.path.join(key_folder, key_name)
            if os.path.isfile(location) and key_name.endswith(
                    "gpg") and 'secret' in key_name:
                with open(location, 'rb') as k:
                    key = Key(passphrase="password25").parse(k.read())
                    keys.update(key.key_dict())
        cached['keys'] = keys
    return cached['keys']
Пример #5
0
# coding: spec

from gpglib.structures import Key
from helpers import data

import unittest
import nose

describe "Consuming rsa keys":
    it "successfully consumes a secret key":
        secret_key = Key(passphrase='blahandstuff').parse(data.get_pgp_key('secret', 'rsa'))
        # Parent key
        self.assertIn(4259707814030784140, secret_key.key_dict())
        # Sub-key
        self.assertIn(5524596192824459786, secret_key.key_dict())
    
    it "successfully consumes a public key":
        public_key = Key().parse(data.get_pgp_key('public', 'rsa'))
        # Parent key
        self.assertIn(3166937994423974160, public_key.key_dict())
        # Sub-key
        self.assertIn(11980534847294644458L, public_key.key_dict())

    it "successfully calls a function to retrieve the passphrase":
        def passphrase_func(message, info):
            return 'blahandstuff'

        secret_key = Key(passphrase=passphrase_func).parse(data.get_pgp_key('secret', 'rsa'))
        # Parent key
        self.assertIn(4259707814030784140, secret_key.key_dict())
        # Sub-key
Пример #6
0
# coding: spec

from tests.helpers import data

from gpglib.structures import Key

from unittest import TestCase
import nose

describe TestCase, "Consuming rsa keys":
    it "successfully consumes a secret key":
        secret_key = Key(passphrase='password25').parse(data.get_pgp_key('secret', 'rsa'))
        # Parent key
        self.assertIn(5922803129648873547, secret_key.key_dict())
        # Sub-key
        self.assertIn(6126705363215480599, secret_key.key_dict())

    it "successfully consumes a public key":
        public_key = Key().parse(data.get_pgp_key('public', 'rsa'))
        # Parent key
        self.assertIn(5922803129648873547, public_key.key_dict())
        # Sub-key
        self.assertIn(6126705363215480599, public_key.key_dict())

    it "successfully calls a function to retrieve the passphrase":
        def passphrase_func(message, info):
            return 'password25'

        secret_key = Key(passphrase=passphrase_func).parse(data.get_pgp_key('secret', 'rsa'))
        # Parent key
        self.assertIn(5922803129648873547, secret_key.key_dict())
Пример #7
0
from Crypto.PublicKey import RSA

from gpglib.structures import EncryptedMessage, Key

if __name__ == '__main__':
    data = open('tests/data/key.secret.gpg').read()
    key = Key(passphrase='blahandstuff')
    key.parse(data)
    keys = key.key_dict()
    print keys
    
    data = open('tests/data/data.small.dump.gpg').read()
    message = EncryptedMessage(keys)
    message.decrypt(data)

    print "Message successfully decrypted data.dump::"
    print message.plaintext

    data = open('tests/data/data.big.dump.gpg').read()
    message = EncryptedMessage(keys)
    message.decrypt(data)

    print "Message successfully decrypted data.big.dump::"
    print message.plaintext
Пример #8
0
from gpglib.structures import EncryptedMessage, Key

if __name__ == '__main__':
    data = open('tests/data/keys/key.secret.rsa.gpg', 'rb').read()
    key = Key(passphrase='password25')
    key.parse(data)
    keys = key.key_dict()
    print(keys)

    data = open('tests/data/encrypted/mdc/rsa/aes/zlib/small.gpg', 'rb').read()
    message = EncryptedMessage(keys)
    message.decrypt(data)

    print("Message successfully decrypted data.dump::")
    print(message.plaintext)

    data = open('tests/data/encrypted/mdc/rsa/aes/zlib/big.gpg', 'rb').read()
    message = EncryptedMessage(keys)
    message.decrypt(data)

    print("Message successfully decrypted data.big.dump::")
    print(message.plaintext)
Пример #9
0
# coding: spec

from gpglib.structures import Key
from helpers import data

import unittest
import nose

describe "Consuming keys":
    it "successfully consumes a secret key":
        secret_key = Key(passphrase='blahandstuff').parse(data.get_pgp_key('secret'))
        # Parent key
        self.assertIn(4259707814030784140, secret_key.key_dict())
        # Sub-key
        self.assertIn(5524596192824459786, secret_key.key_dict())
    
    it "successfully consumes a public key":
        public_key = Key().parse(data.get_pgp_key('public'))
        # Parent key
        self.assertIn(3166937994423974160, public_key.key_dict())
        # Sub-key
        self.assertIn(11980534847294644458L, public_key.key_dict())

    it "successfully calls a function to retrieve the passphrase":
        def passphrase_func(message, info):
            return 'blahandstuff'

        secret_key = Key(passphrase=passphrase_func).parse(data.get_pgp_key('secret'))
        # Parent key
        self.assertIn(4259707814030784140, secret_key.key_dict())
        # Sub-key