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

@@ -24,6 +24,58 @@
use crate::*;
use std::io;
/// Generate a member key from a seed
pub fn generate_member_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();
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();
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)]
/// Errors encountered by the wizard
pub enum WizardError {
Loading