Merge pull request #6648 from ThomasWaldmann/key-algo-error-msg-1.2

give a more helpful error msg for unsupported encrypted key format
This commit is contained in:
TW 2022-04-27 11:03:15 +02:00 committed by GitHub
commit bcac974df7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -614,7 +614,7 @@ class KeyfileKeyBase(AESKeyBase):
data = msgpack.unpackb(data)
key = Key(internal_dict=data)
if key.version != 1:
raise IntegrityError('Invalid key file header')
raise Error("key version %d is not supported by this borg version.")
self.repository_id = key.repository_id
self.enc_key = key.enc_key
self.enc_hmac_key = key.enc_hmac_key
@ -629,8 +629,10 @@ class KeyfileKeyBase(AESKeyBase):
unpacker.feed(data)
data = unpacker.unpack()
enc_key = EncryptedKey(internal_dict=data)
assert enc_key.version == 1
assert enc_key.algorithm == 'sha256'
if enc_key.version != 1:
raise Error("encrypted key version %d is not supported by this borg version." % enc_key.version)
if enc_key.algorithm != 'sha256':
raise Error("encrypted key algorithm '%s' is not supported by this borg version." % enc_key.algorithm)
key = passphrase.kdf(enc_key.salt, enc_key.iterations, 32)
data = AES(key, b'\0'*16).decrypt(enc_key.data)
if hmac.compare_digest(hmac_sha256(key, data), enc_key.hash):