Skip to main content

age_setup/
build.rs

1use crate::errors::Result;
2use crate::keypair::KeyPair;
3use crate::public_key::PublicKey;
4use crate::secret_key::SecretKey;
5use age::secrecy::ExposeSecret;
6use age::x25519::Identity;
7pub fn build_keypair() -> Result<KeyPair> {
8    let identity = Identity::generate();
9    let recipient = identity.to_public();
10    let public_raw = recipient.to_string();
11    let secret_raw = identity.to_string().expose_secret().to_string();
12    let public = PublicKey::new(public_raw)?;
13    let secret = SecretKey::new(secret_raw)?;
14    Ok(KeyPair::new(public, secret))
15}
16#[cfg(test)]
17mod tests {
18    use super::*;
19    #[test]
20    fn build_valid() {
21        let kp = build_keypair().unwrap();
22        assert!(kp.public.expose().starts_with("age1"));
23        assert!(kp.secret.expose_secret().starts_with("AGE-SECRET-KEY-1"));
24    }
25}