def _load_dkey(self):
"""
Load derived key from existing stash file.
"""
with open(self._path,'r',encoding='ascii') as fr:
try:
outer_data = json.load(fr)
except json.decoder.JSONDecodeError:
raise SSError("Invalid stash file structure")
try:
validate(outer_data,OUTER_SCHEMA)
except ValidationError:
raise SSError("Invalid outer schema")
self._hash = outer_data['hash']
self._salt = hex_str_to_bytes(outer_data['salt'])
self._iterations = outer_data['iterations']
# Derive key from password:
dk = pbkdf2_hmac(self._hash,
self._password,
self._salt,
self._iterations,
nacl.secret.SecretBox.KEY_SIZE)
self._box = nacl.secret.SecretBox(dk)
评论列表
文章目录