def test_roundtrip_works(self): cleartext = 'hello, world' pubring = os.path.join(self.gpghome, 'pubring.gpg') keyring = obnamlib.Keyring(cat(pubring)) encrypted = obnamlib.encrypt_with_keyring(cleartext, keyring) decrypted = obnamlib.decrypt_with_secret_keys(encrypted, gpghome=self.gpghome) self.assertEqual(decrypted, cleartext)
def toplevel_init(self, repo, toplevel): '''Initialize a new toplevel for encryption.''' if not self.keyid: return pubkeys = obnamlib.Keyring() pubkeys.add(self.pubkey) symmetric_key = obnamlib.generate_symmetric_key( self.symmetric_key_bits, filename=self.devrandom) encrypted = obnamlib.encrypt_with_keyring(symmetric_key, pubkeys) self._write_file(repo, os.path.join(toplevel, 'key'), encrypted) encoded = str(pubkeys) encrypted = obnamlib.encrypt_symmetric(encoded, symmetric_key) self._write_file(repo, os.path.join(toplevel, 'userkeys'), encrypted)
def read_keyring(self, repo, toplevel): encrypted = repo.get_fs().cat(os.path.join(toplevel, 'userkeys')) encoded = self.filter_read(encrypted, repo, toplevel) return obnamlib.Keyring(encoded=encoded)
def test_export_import_roundtrip_works(self): self.keyring.add(self.key) exported = str(self.keyring) keyring2 = obnamlib.Keyring(exported) self.assertEqual(keyring2.keyids(), [self.keyid])
def test_gets_no_keys_from_empty_encoded(self): keyring = obnamlib.Keyring(encoded='') self.assertEqual(keyring.keyids(), [])
def setUp(self): self.keyring = obnamlib.Keyring() self.keyid = '3B1802F81B321347' self.key = '''