Skip to content

Instantly share code, notes, and snippets.

@Laegluin
Created September 18, 2019 14:55
Show Gist options
  • Save Laegluin/b07abe10bfabb01b16903c9e1b5aef50 to your computer and use it in GitHub Desktop.
Save Laegluin/b07abe10bfabb01b16903c9e1b5aef50 to your computer and use it in GitHub Desktop.
use minisign::{KeyPair, SecretKeyBox};
use std::io::Cursor;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let key_pair = KeyPair::generate_encrypted_keypair(Some("pw".to_owned()))?;
eprintln!("loading secret key from box");
works(&key_pair)?;
eprintln!("using secret key directly");
fails(&key_pair)?;
Ok(())
}
fn fails(key_pair: &KeyPair) -> Result<(), Box<dyn std::error::Error>> {
let data = vec![1, 2, 3];
minisign::sign(
Some(&key_pair.pk),
&key_pair.sk,
Cursor::new(&data),
true,
None,
None,
)?;
Ok(())
}
fn works(key_pair: &KeyPair) -> Result<(), Box<dyn std::error::Error>> {
let data = vec![1, 2, 3];
let sk_string = key_pair.sk.to_box(None)?.to_string();
let loaded_sk =
SecretKeyBox::from_string(&sk_string)?.into_secret_key(Some("pw".to_owned()))?;
minisign::sign(
Some(&key_pair.pk),
&loaded_sk,
Cursor::new(&data),
true,
None,
None,
)?;
Ok(())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment