示例#1
0
    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)
示例#2
0
    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)
示例#3
0
 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)
示例#4
0
 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])
示例#5
0
 def test_gets_no_keys_from_empty_encoded(self):
     keyring = obnamlib.Keyring(encoded='')
     self.assertEqual(keyring.keyids(), [])
示例#6
0
 def setUp(self):
     self.keyring = obnamlib.Keyring()
     self.keyid = '3B1802F81B321347'
     self.key = '''