diff --git a/src/crypto/duniter_key.rs b/src/crypto/duniter_key.rs index 4a3068166aee48677dc802e0f0896f37c138a5ae..69253a158a099af36940ad7c40264281d2d6c987 100644 --- a/src/crypto/duniter_key.rs +++ b/src/crypto/duniter_key.rs @@ -31,6 +31,14 @@ impl std::fmt::Display for DuniterKey { impl DuniterKey { + pub fn get_public_base58(&self) -> String { + bs58::encode(self.public).into_string() + } + + pub fn get_secret_base58(&self) -> String { + bs58::encode(self.secret).into_string() + } + pub fn sign(&self, message: &str) -> DuniterSignature { DuniterSignature::new(ed25519::signature(message.as_bytes(), &self.secret[..])) } diff --git a/src/lib.rs b/src/lib.rs index c1068db3b1d4e6bf640718f82a87f804699cdc8a..72795cdeef9f189042fd25a1bb1120d26f42c2bb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,14 +4,11 @@ use crate::crypto::duniter_key::{DuniterKey, ToDuniterKey}; use crate::crypto::scrypt_duniter_key::ScryptDuniterKey; pub fn compute_pub(sdk: impl ToDuniterKey) -> String { - String::from(sdk.derive().to_string().split(":").next().unwrap()) + sdk.derive().get_public_base58() } pub fn compute_sec(sdk: impl ToDuniterKey) -> String { - let key_str = sdk.derive().to_string(); - let mut split = key_str.split(":"); - split.next(); - String::from(split.next().unwrap()) + sdk.derive().get_secret_base58() } pub fn compute_key(sdk: impl ToDuniterKey) -> String {