Пример #1
0
 def detect(cls, repository, manifest_data):
     key = cls()
     path = cls.find_key_file(repository)
     prompt = 'Enter passphrase for key file %s: ' % path
     passphrase = os.environ.get('ATTIC_PASSPHRASE', '')
     while not key.load(path, passphrase):
         passphrase = getpass(prompt)
     num_blocks = num_aes_blocks(len(manifest_data) - 41)
     key.init_ciphers(PREFIX + long_to_bytes(key.extract_nonce(manifest_data) + num_blocks))
     return key
Пример #2
0
 def detect(cls, repository, manifest_data):
     prompt = 'Enter passphrase for %s: ' % repository._location.orig
     key = cls()
     passphrase = os.environ.get('ATTIC_PASSPHRASE')
     if passphrase is None:
         passphrase = getpass(prompt)
     while True:
         key.init(repository, passphrase)
         try:
             key.decrypt(None, manifest_data)
             num_blocks = num_aes_blocks(len(manifest_data) - 41)
             key.init_ciphers(PREFIX + long_to_bytes(key.extract_nonce(manifest_data) + num_blocks))
             return key
         except IntegrityError:
             passphrase = getpass(prompt)
Пример #3
0
 def test_bytes_to_long(self):
     self.assert_equal(bytes_to_long(b'\0\0\0\0\0\0\0\1'), 1)
     self.assert_equal(long_to_bytes(1), b'\0\0\0\0\0\0\0\1')
Пример #4
0
 def test_bytes_to_long(self):
     self.assert_equal(bytes_to_long(b'\0\0\0\0\0\0\0\1'), 1)
     self.assert_equal(long_to_bytes(1), b'\0\0\0\0\0\0\0\1')