summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Borgström <jonas@borgstrom.se>2014-12-17 21:55:33 +0100
committerJonas Borgström <jonas@borgstrom.se>2014-12-17 21:55:33 +0100
commitadd59e4ab3a38dcd78746bd865c52d4322c95e5f (patch)
tree5c8d263e5ea5d4b0f1de556d9faa7ff312695f26
parente9c27e8e6d2ba841b39e277e3560d2cffce052e3 (diff)
Prepare for future payload format change
-rw-r--r--attic/key.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/attic/key.py b/attic/key.py
index b00f81d62..ef623f36c 100644
--- a/attic/key.py
+++ b/attic/key.py
@@ -8,11 +8,15 @@ from hashlib import sha256
import zlib
from attic.crypto import pbkdf2_sha256, get_random_bytes, AES, bytes_to_long, long_to_bytes, bytes_to_int, num_aes_blocks
-from attic.helpers import IntegrityError, get_keys_dir
+from attic.helpers import IntegrityError, get_keys_dir, Error
PREFIX = b'\0' * 8
+class UnsupportedPayloadError(Error):
+ """Unsupported payload type {}. A newer version is required to access this repository.
+ """
+
class HMAC(hmac.HMAC):
"""Workaround a bug in Python < 3.4 Where HMAC does not accept memoryviews
"""
@@ -37,7 +41,7 @@ def key_factory(repository, manifest_data):
elif manifest_data[0] == PlaintextKey.TYPE:
return PlaintextKey.detect(repository, manifest_data)
else:
- raise Exception('Unkown Key type %d' % ord(manifest_data[0]))
+ raise UnsupportedPayloadError(manifest_data[0])
class KeyBase(object):