From ef63450c8ef62874cb6694ab330ff322eef902b8 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 29 Aug 2021 15:15:13 +0200
Subject: [PATCH] refact: scrypt Nrp parameters

---
 src/crypto/duniter_key.rs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/crypto/duniter_key.rs b/src/crypto/duniter_key.rs
index 792efc7..eba3093 100644
--- a/src/crypto/duniter_key.rs
+++ b/src/crypto/duniter_key.rs
@@ -10,6 +10,9 @@ use crate::crypto::duniter_signature::DuniterSignature;
 
 const PUBLIC_KEY_LEN: usize = 32;
 const SECRET_KEY_LEN: usize = 64;
+const SCRYPT_N: u8 = 12;
+const SCRYPT_R: u32 = 16;
+const SCRYPT_P: u32 = 1;
 
 /// The main functional class for handle Duniter crypto.
 pub struct DuniterKey {
@@ -54,7 +57,7 @@ impl DuniterKey {
 fn derive_seed(salt: &str, passwd: &str) -> Result<Output, Box<dyn Error>> {
     let saltb64 = base64::encode(salt); // convert utf8 to base64
     let salt = SaltString::new(saltb64.as_str())?; // expectes base64-encoded str
-    let params = Params::new(12, 16, 1)?;
+    let params = Params::new(SCRYPT_N, SCRYPT_R, SCRYPT_P)?;
     let password_hash = Scrypt.hash_password(passwd.as_bytes(), None, params, &salt)?;
     Ok(password_hash.hash.expect("Seed should have been generated"))
 }
\ No newline at end of file
-- 
GitLab