pity
parent
a0963c261c
commit
c2f18e9439
|
@ -99,7 +99,9 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
|
|
||||||
if userdata_token["name"] == input_token.device_name:
|
if userdata_token["name"] == input_token.device_name:
|
||||||
userdata_token["token"] = new_token.token
|
userdata_token["token"] = new_token.token
|
||||||
userdata_token["data"] = new_token.created_at
|
userdata_token["date"] = (
|
||||||
|
new_token.created_at.strftime("%Y-%m-%d %H:%M:%S.%f"),
|
||||||
|
)
|
||||||
|
|
||||||
return new_token
|
return new_token
|
||||||
|
|
||||||
|
@ -128,12 +130,12 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
) -> RecoveryKey:
|
) -> RecoveryKey:
|
||||||
"""Create the recovery key"""
|
"""Create the recovery key"""
|
||||||
|
|
||||||
recovery_key = RecoveryKey.generate(expiration=expiration, uses_left=uses_left)
|
recovery_key = RecoveryKey.generate(expiration, uses_left)
|
||||||
|
|
||||||
with ReadUserData(UserDataFiles.TOKENS) as tokens_file:
|
with WriteUserData(UserDataFiles.TOKENS) as tokens_file:
|
||||||
tokens_file["recovery_key"] = {
|
tokens_file["recovery_token"] = {
|
||||||
"token": recovery_key.key,
|
"token": recovery_key.key,
|
||||||
"date": recovery_key.created_at,
|
"date": recovery_key.created_at.strftime("%Y-%m-%d %H:%M:%S.%f"),
|
||||||
"expiration": recovery_key.expires_at,
|
"expiration": recovery_key.expires_at,
|
||||||
"uses_left": recovery_key.uses_left,
|
"uses_left": recovery_key.uses_left,
|
||||||
}
|
}
|
||||||
|
@ -159,7 +161,7 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
|
|
||||||
phrase_bytes = Mnemonic(language="english").to_entropy(mnemonic_phrase)
|
phrase_bytes = Mnemonic(language="english").to_entropy(mnemonic_phrase)
|
||||||
if phrase_bytes != recovery_token:
|
if phrase_bytes != recovery_token:
|
||||||
raise RecoveryTokenError("Phrase is not (?) recovery token")
|
raise RecoveryTokenError("Phrase is not recovery token")
|
||||||
|
|
||||||
new_token = Token.generate(device_name=device_name)
|
new_token = Token.generate(device_name=device_name)
|
||||||
|
|
||||||
|
@ -168,7 +170,7 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
{
|
{
|
||||||
"token": new_token.token,
|
"token": new_token.token,
|
||||||
"name": new_token.device_name,
|
"name": new_token.device_name,
|
||||||
"date": new_token.created_at,
|
"date": new_token.created_at.strftime("%Y-%m-%d %H:%M:%S.%f"),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -187,8 +189,10 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
with WriteUserData(UserDataFiles.TOKENS) as tokens_file:
|
with WriteUserData(UserDataFiles.TOKENS) as tokens_file:
|
||||||
tokens_file["new_device"] = {
|
tokens_file["new_device"] = {
|
||||||
"token": new_device_key.key,
|
"token": new_device_key.key,
|
||||||
"data": new_device_key.created_at,
|
"data": new_device_key.created_at.strftime("%Y-%m-%d %H:%M:%S.%f"),
|
||||||
"expiration": new_device_key.expires_at,
|
"expiration": new_device_key.expires_at.strftime(
|
||||||
|
"%Y-%m-%d %H:%M:%S.%f"
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
return new_device_key
|
return new_device_key
|
||||||
|
@ -206,15 +210,21 @@ class JsonTokensRepository(AbstractTokensRepository):
|
||||||
self, mnemonic_phrase: str, device_name: str
|
self, mnemonic_phrase: str, device_name: str
|
||||||
) -> Token:
|
) -> Token:
|
||||||
"""Use the mnemonic new device key"""
|
"""Use the mnemonic new device key"""
|
||||||
new_device_key = NewDeviceKey.generate()
|
new_device_key = self.get_new_device_key()
|
||||||
|
|
||||||
|
if new_device_key is None:
|
||||||
|
raise TokenNotFoundError("New device key not found!")
|
||||||
|
|
||||||
token = bytes.fromhex(new_device_key.key)
|
token = bytes.fromhex(new_device_key.key)
|
||||||
|
|
||||||
if not Mnemonic(language="english").check(mnemonic_phrase):
|
if not Mnemonic(language="english").check(mnemonic_phrase):
|
||||||
raise MnemonicError("Phrase is not mnemonic!")
|
raise MnemonicError("Phrase is not mnemonic!")
|
||||||
|
|
||||||
phrase_bytes = Mnemonic(language="english").to_entropy(mnemonic_phrase)
|
phrase_bytes = Mnemonic(language="english").to_entropy(mnemonic_phrase)
|
||||||
if phrase_bytes != token:
|
if bytes(phrase_bytes) != bytes(
|
||||||
raise MnemonicError("Phrase is not token!")
|
token
|
||||||
|
): # idk why, но оно не робит, хотя оригинальную логику я сохранил
|
||||||
|
raise TokenNotFoundError("Phrase is not token!")
|
||||||
|
|
||||||
new_token = Token.generate(device_name=device_name)
|
new_token = Token.generate(device_name=device_name)
|
||||||
with WriteUserData(UserDataFiles.TOKENS) as tokens:
|
with WriteUserData(UserDataFiles.TOKENS) as tokens:
|
||||||
|
|
|
@ -245,10 +245,10 @@ def test_create_recovery_key(tokens, mock_recovery_key_generate, datadir):
|
||||||
assert repo.create_recovery_key(uses_left=1, expiration=None) is not None
|
assert repo.create_recovery_key(uses_left=1, expiration=None) is not None
|
||||||
assert read_json(datadir / "tokens.json")["recovery_token"] == {
|
assert read_json(datadir / "tokens.json")["recovery_token"] == {
|
||||||
"token": "889bf49c1d3199d71a2e704718772bd53a422020334db051",
|
"token": "889bf49c1d3199d71a2e704718772bd53a422020334db051",
|
||||||
"date": "2022-11-11T11:48:54.228038",
|
"date": "2022-07-15 17:41:31.675698",
|
||||||
"expiration": None,
|
"expiration": None,
|
||||||
"uses_left": 1,
|
"uses_left": 1,
|
||||||
} # проблемы, файл не изменяется. не представляю причину
|
}
|
||||||
|
|
||||||
|
|
||||||
def test_get_new_device_key(tokens, mock_new_device_key_generate, datadir):
|
def test_get_new_device_key(tokens, mock_new_device_key_generate, datadir):
|
||||||
|
@ -256,7 +256,7 @@ def test_get_new_device_key(tokens, mock_new_device_key_generate, datadir):
|
||||||
|
|
||||||
assert repo.get_new_device_key() is not None
|
assert repo.get_new_device_key() is not None
|
||||||
assert read_json(datadir / "tokens.json")["new_device"] == {
|
assert read_json(datadir / "tokens.json")["new_device"] == {
|
||||||
"data": "2022-07-15 17:41:31.675698",
|
"date": "2022-07-15 17:41:31.675698",
|
||||||
"expiration": "2022-07-15 17:41:31.675698",
|
"expiration": "2022-07-15 17:41:31.675698",
|
||||||
"token": "43478d05b35e4781598acd76e33832bb",
|
"token": "43478d05b35e4781598acd76e33832bb",
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue