Skip to content
Snippets Groups Projects

[feat] conf: new option for create a key WITH seed added

Closed Ghost User requested to merge counter/122-keys-subcommand-create-keypair-from-seed into dev
4 unresolved threads

Files

+ 52
0
@@ -24,6 +24,58 @@
@@ -24,6 +24,58 @@
use crate::*;
use crate::*;
use std::io;
use std::io;
 
/// Generate a member key from a seed
 
pub fn generate_member_key_from_seed(
 
seed_input: String,
 
mut old_keypairs: DuniterKeyPairs,
    • On préfixe (ou suffixe) une variable avec old quand on vas créer uen new, la tu modifie la variable sans en créer de nouvelle donc nomme la juste keypairs :)

Please register or sign in to reply
 
) -> DuniterKeyPairs {
 
if seed_input.chars().count() != 32 {
 
panic!("wrong seed size");
 
} else {
 
let mut seed: [u8; 32] = [
 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 
0, 0, 0,
 
];
 
 
let bytes = seed_input.as_bytes();
 
for (i, b) in bytes.iter().enumerate() {
 
seed[i] = *b;
 
}
 
 
let k = ed25519::KeyPairFromSeedGenerator::generate(&seed);
 
let ke_member: KeyPairEnum = KeyPairEnum::Ed25519(k);
 
 
old_keypairs.member_keypair = Some(ke_member);
 
old_keypairs
 
}
 
}
 
 
/// Generate a network key from a seed
 
pub fn generate_network_key_from_seed(
 
seed_input: String,
 
mut old_keypairs: DuniterKeyPairs,
 
) -> DuniterKeyPairs {
 
if seed_input.chars().count() != 32 {
 
panic!("wrong seed size");
 
} else {
 
let mut seed: [u8; 32] = [
 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 
0, 0, 0,
 
];
 
 
let bytes = seed_input.as_bytes();
    • En fait non, il ne faut pas convertir bêtement les caractères en leur valeur binaire, la seed sera fournie par l'utilisateur sous la forme d'une string encodée en base 16 ou base58 ou base64 (un paramètre utilisateur a rajouter, valeur par défaut: base58).

Please register or sign in to reply
 
for (i, b) in bytes.iter().enumerate() {
 
seed[i] = *b;
 
}
 
 
let k = ed25519::KeyPairFromSeedGenerator::generate(&seed);
 
let ke_network: KeyPairEnum = KeyPairEnum::Ed25519(k);
 
 
old_keypairs.network_keypair = ke_network;
 
old_keypairs
 
}
 
}
 
#[derive(Debug, Copy, Clone)]
#[derive(Debug, Copy, Clone)]
/// Errors encountered by the wizard
/// Errors encountered by the wizard
pub enum WizardError {
pub enum WizardError {
Loading