def test_verify_file_embedded_sig(): ''' Verifies the signature on an embedded, signed file. This is a file signed with: gpg -u keybase.io/irc --sign helloworld.txt So it's binary output and suffixed with .gpg. ''' k = keybase.Keybase('irc') pkey = k.get_public_key() fname = os.path.join(os.getcwd(), 'test', 'golden', 'helloworld.txt.gpg') verified = pkey.verify_file( fname, throw_error=True) assert verified # Compare this to a straight-up GnuPGP verification using the # known public key from the pair that signed the file. tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) gpg.import_keys(GPG_KEY_DATA) with open(fname, 'rb') as fdata: vobj = gpg.verify_file(fdata) assert vobj.valid del gpg shutil.rmtree(tempdir)
def test_verify_file_detached_sig(): ''' Verifies the signature on a detatched, signed file. This is a file signed with: gpg -u keybase.io/irc --detach-sign helloworld.txt So it's the data file helloworld.txt plus the detached signature file helloworld.txt.sig that are used together to do the verification. ''' k = keybase.Keybase('irc') pkey = k.get_public_key() fname = os.path.join(os.getcwd(), 'test', 'golden', 'helloworld.txt') fsig = os.path.join(os.getcwd(), 'test', 'golden', 'helloworld.txt.sig') verified = pkey.verify_file( fname, fsig) assert verified # Compare this to a straight-up GnuPGP verification using the # known public key from the pair that signed the file. tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) gpg.import_keys(GPG_KEY_DATA) with open(fname, 'rb') as fobj: vobj = gpg.verify_file(fobj, fsig) assert vobj.valid del gpg shutil.rmtree(tempdir)
def test_verify_file_detached_sig(): ''' Verifies the signature on a detatched, signed file. This is a file signed with: gpg -u keybase.io/irc --detach-sign helloworld.txt So it's the data file helloworld.txt plus the detached signature file helloworld.txt.sig that are used together to do the verification. ''' k = keybase.Keybase('irc') pkey = k.get_public_key() fname = os.path.join(os.getcwd(), 'test', 'golden', 'helloworld.txt') fsig = os.path.join(os.getcwd(), 'test', 'golden', 'helloworld.txt.sig') verified = pkey.verify_file(fname, fsig) assert verified # Compare this to a straight-up GnuPGP verification using the # known public key from the pair that signed the file. tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) gpg.import_keys(GPG_KEY_DATA) with open(fname, 'rb') as fobj: vobj = gpg.verify_file(fobj, fsig) assert vobj.valid del gpg shutil.rmtree(tempdir)
def test_verify_file_embedded_sig(): ''' Verifies the signature on an embedded, signed file. This is a file signed with: gpg -u keybase.io/irc --sign helloworld.txt So it's binary output and suffixed with .gpg. ''' k = keybase.Keybase('irc') pkey = k.get_public_key() fname = os.path.join(os.getcwd(), 'test', 'golden', 'helloworld.txt.gpg') verified = pkey.verify_file(fname, throw_error=True) assert verified # Compare this to a straight-up GnuPGP verification using the # known public key from the pair that signed the file. tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) gpg.import_keys(GPG_KEY_DATA) with open(fname, 'rb') as fdata: vobj = gpg.verify_file(fdata) assert vobj.valid del gpg shutil.rmtree(tempdir)
def test_gpg_encrypt(): ''' This is a test of the basic gnupg module functionality. I was using this to sort out how the encrypt() function actually worked. Keeping it in here as a test of this module because if it fails, it likely means all the assumptions the keybase API code is based on are now wrong. ''' tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) gpg.import_keys(GPG_KEY_DATA) instring = 'Hello, world!' encrypted = str(gpg.encrypt(instring, gpg.list_keys()[0]['keyid'], compress_algo='ZIP')) assert encrypted assert not encrypted.isspace() assert encrypted != instring del gpg shutil.rmtree(tempdir)
def test_public_key_gpg_integration(): ''' A basic test for the KeybasePublicKey() class. Makes sure it plays nice with the GnuPGP Python module. ''' key_fingerprint = '7cc0ce678c37fc27da3ce494f56b7a6f0a32a0b9' initopts = {'bundle': GPG_KEY_DATA, 'key_fingerprint': key_fingerprint} tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) import_result = gpg.import_keys(GPG_KEY_DATA) assert len(import_result.fingerprints) > 0 key = keybase.KeybasePublicKey(**initopts) assert key.key_fingerprint == key_fingerprint assert import_result.fingerprints[0].lower() == key_fingerprint assert key.key_fingerprint == import_result.fingerprints[0].lower() del gpg shutil.rmtree(tempdir)
def test_gpg_encrypt(): ''' This is a test of the basic gnupg module functionality. I was using this to sort out how the encrypt() function actually worked. Keeping it in here as a test of this module because if it fails, it likely means all the assumptions the keybase API code is based on are now wrong. ''' tempdir = tempfile.mkdtemp(suffix='.keybase-test') gpg = gnupg.GPG(homedir=tempdir, verbose=False, use_agent=False, binary=keybase.gpg()) gpg.import_keys(GPG_KEY_DATA) instring = 'Hello, world!' encrypted = str( gpg.encrypt(instring, gpg.list_keys()[0]['keyid'], compress_algo='ZIP')) assert encrypted assert not encrypted.isspace() assert encrypted != instring del gpg shutil.rmtree(tempdir)