in fxa/core.py [0:0]
def __init__(self, version, email, salt=None, password=None, stretchpwd=None):
self.version = version
if version == 2:
if not salt:
salt = create_salt(2, hexlify(token_bytes(16)))
if stretchpwd and not isinstance(stretchpwd, StretchedPassword):
raise ValueError("invalid stretchpwd type")
if stretchpwd:
if not isinstance(stretchpwd, StretchedPassword):
raise ValueError(f"invalid stretchpwd type: {type(stretchpwd)}")
self.v1 = stretchpwd.v1
self.v2_salt = stretchpwd.v2_salt
self.v2 = stretchpwd.v2
else:
if not isinstance(password, str):
raise ValueError(f"invalid password type: {type(stretchpwd)}")
self.v1 = quick_stretch_password(email, password)
self.v2_salt = salt
self.v2 = stretch_password(self.v2_salt, password)
else:
if stretchpwd:
if not isinstance(stretchpwd, bytes):
raise ValueError(f"invalid stretchpwd type: {type(stretchpwd)}")
self.v1 = stretchpwd
else:
if not isinstance(password, str):
raise ValueError(f"invalid password type: {type(password)}")
self.v1 = quick_stretch_password(email, password)