use super::basics::SigningAlgorithms;
use crate::slugcrypt::internals::digest::blake2::SlugBlake2sHasher;
use crate::slugcrypt::internals::digest::digest::SlugDigest;
use serde::{Serialize, Deserialize};
use subtle_encoding::hex;
pub struct Signing {
alg: SigningAlgorithms,
pk: String,
fingerprint: String, signature: String,
}
impl Signing {
pub fn new(alg: SigningAlgorithms, pk: String, signature: String) -> Self {
let pk_bytes = hex::decode_upper(&pk).unwrap();
let hasher = SlugBlake2sHasher::new(8).update(&pk_bytes);
let fingerprint = SlugDigest::from_bytes(&hasher).unwrap();
Self {
alg,
pk,
fingerprint: fingerprint.to_string().as_str().to_string(),
signature,
}
}
}