kuska-ssb/src/keystore/identity.rs

21 lines
475 B
Rust

use crate::crypto::CURVE_ED25519_SUFFIX;
use sodiumoxide::crypto::sign::ed25519;
#[derive(Debug, Clone)]
pub struct OwnedIdentity {
pub id: String,
pub pk: ed25519::PublicKey,
pub sk: ed25519::SecretKey,
}
impl OwnedIdentity {
pub fn new() -> OwnedIdentity {
let (pk, sk) = ed25519::gen_keypair();
OwnedIdentity {
pk,
sk,
id: format!("@{}{}", base64::encode(&pk), CURVE_ED25519_SUFFIX),
}
}
}