implemented derived passwords
This commit is contained in:
30
imports/hashderive.py
Normal file
30
imports/hashderive.py
Normal file
@@ -0,0 +1,30 @@
|
||||
import hashlib
|
||||
|
||||
import binascii
|
||||
|
||||
class HashDerivedKey:
|
||||
|
||||
@staticmethod
|
||||
def from_hex(hex_str):
|
||||
return HashDerivedKey(bytes(bytearray.fromhex(hex_str)))
|
||||
|
||||
def __init__(self, master):
|
||||
def ensure_bytes(b):
|
||||
assert isinstance(b, bytes)
|
||||
return b
|
||||
ensure_bytes(master)
|
||||
def derive(seed):
|
||||
ensure_bytes(seed)
|
||||
sha = hashlib.sha256()
|
||||
sha.update(master)
|
||||
sha.update(seed)
|
||||
return sha.digest()
|
||||
hex = lambda b: binascii.hexlify(b).decode("utf-8")
|
||||
self.master = master
|
||||
self.master_hex = lambda: hex(master)
|
||||
self.derive = derive
|
||||
self.derive_hex = lambda seed: hex(derive(seed))
|
||||
|
||||
def derive_metadata(self,seed):
|
||||
key = self.derive(seed)
|
||||
return (key,{"key_seed": binascii.hexlify(seed).decode("utf-8")})
|
Reference in New Issue
Block a user