diff --git a/README.md b/README.md index 73d18383247192dcf74a1beb43f49d3b061f00f4..953c779c56395e514765cf1f72bc4871afce670c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,6 @@ This library is used by two clients: ## Requirements - Python >= 3.6.8 - [aiohttp >= 3.6.1](https://pypi.org/pypi/aiohttp) -- [pylibscrypt](https://pypi.org/pypi/pylibscrypt) - [libnacl](https://pypi.org/pypi/libnacl) - [base58](https://pypi.org/pypi/base58) - [attr](https://pypi.org/project/attr/) diff --git a/duniterpy/key/encryption_key.py b/duniterpy/key/encryption_key.py index 509b63f4d807436e9507bb2874a352f6615bc3f9..360f48899f4f32f8718a2c6889e1676cbc770809 100644 --- a/duniterpy/key/encryption_key.py +++ b/duniterpy/key/encryption_key.py @@ -6,7 +6,7 @@ duniter public and private keys from typing import Union, Optional import libnacl.public -from pylibscrypt import scrypt +from hashlib import scrypt from .scrypt_params import ScryptParams from .base58 import Base58Encoder @@ -38,11 +38,11 @@ class SecretKey(libnacl.public.SecretKey): password = ensure_bytes(password) seed = scrypt( password, - salt, - scrypt_params.N, - scrypt_params.r, - scrypt_params.p, - scrypt_params.seed_length, + salt=salt, + n=scrypt_params.N, + r=scrypt_params.r, + p=scrypt_params.p, + dklen=scrypt_params.seed_length, ) super().__init__(seed) diff --git a/duniterpy/key/scrypt_params.py b/duniterpy/key/scrypt_params.py index e4fb0f96e9f2e31c70b427e1453cafac4760069c..3e3024396bb8cf3aa8a24901a0b935df8501a131 100644 --- a/duniterpy/key/scrypt_params.py +++ b/duniterpy/key/scrypt_params.py @@ -1,5 +1,3 @@ -from typing import Optional - from .constants import SCRYPT_PARAMS @@ -10,18 +8,18 @@ class ScryptParams: def __init__( self, - n: Optional[int] = SCRYPT_PARAMS["N"], - r: Optional[int] = SCRYPT_PARAMS["r"], - p: Optional[int] = SCRYPT_PARAMS["p"], - seed_length: Optional[int] = SCRYPT_PARAMS["seed_length"], + n: int = SCRYPT_PARAMS["N"], + r: int = SCRYPT_PARAMS["r"], + p: int = SCRYPT_PARAMS["p"], + seed_length: int = SCRYPT_PARAMS["seed_length"], ) -> None: """ Init a ScryptParams instance with crypto parameters - :param n: Optional scrypt param N, default see constant SCRYPT_PARAMS - :param r: Optional scrypt param r, default see constant SCRYPT_PARAMS - :param p: Optional scrypt param p, default see constant SCRYPT_PARAMS - :param seed_length: Optional scrypt param seed_length, default see constant SCRYPT_PARAMS + :param n: scrypt param N, default see constant SCRYPT_PARAMS + :param r: scrypt param r, default see constant SCRYPT_PARAMS + :param p: scrypt param p, default see constant SCRYPT_PARAMS + :param seed_length: scrypt param seed_length, default see constant SCRYPT_PARAMS """ self.N = n self.r = r diff --git a/duniterpy/key/signing_key.py b/duniterpy/key/signing_key.py index 25324e74c7396b476390a5ac9438e09640b0d81f..fd1fdb7d9af3fad7801b004cf7b995f106ba1e22 100644 --- a/duniterpy/key/signing_key.py +++ b/duniterpy/key/signing_key.py @@ -10,7 +10,7 @@ from typing import Optional, Union, TypeVar, Type import libnacl.sign import pyaes from libnacl.utils import load_key -from pylibscrypt import scrypt +from hashlib import scrypt from .scrypt_params import ScryptParams from .base58 import Base58Encoder @@ -56,11 +56,11 @@ class SigningKey(libnacl.sign.Signer): password = ensure_bytes(password) seed = scrypt( password, - salt, - scrypt_params.N, - scrypt_params.r, - scrypt_params.p, - scrypt_params.seed_length, + salt=salt, + n=scrypt_params.N, + r=scrypt_params.r, + p=scrypt_params.p, + dklen=scrypt_params.seed_length, ) return cls(seed) @@ -394,7 +394,7 @@ Data: {data}""".format( # SCRYPT password_bytes = password.encode("utf-8") - scrypt_seed = scrypt(password_bytes, salt, 16384, 8, 8, 64) + scrypt_seed = scrypt(password_bytes, salt=salt, n=16384, r=8, p=8, dklen=64) derivedhalf1 = scrypt_seed[0:32] derivedhalf2 = scrypt_seed[32:64] @@ -435,7 +435,7 @@ Data: {data}""".format( # SCRYPT password_bytes = password.encode("utf-8") - scrypt_seed = scrypt(password_bytes, salt, 16384, 8, 8, 64) + scrypt_seed = scrypt(password_bytes, salt=salt, n=16384, r=8, p=8, dklen=64) derivedhalf1 = scrypt_seed[0:32] derivedhalf2 = scrypt_seed[32:64] diff --git a/pyproject.toml b/pyproject.toml index 818cb323d70ec64049a9600412ca3c899784d3ce..f940117f9d01c232828917420831ab3c484a5a64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,6 @@ jsonschema = "^3.0.2" pypeg2 = "^2.15.2" attrs = "^19.3.0" base58 = "^2.0.0" -pylibscrypt = "^1.8.0" libnacl = "^1.6.1" pyaes = "^1.6.1"