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"