diff --git a/Cargo.toml b/Cargo.toml index a26a3b4..f3ab685 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,3 +12,6 @@ categories = ["cryptography"] [dependencies] base64 = "0.22.1" rust_util = "0.6.47" + +[dev-dependencies] +hex = "0.4.3" diff --git a/examples/generate_keypair.rs b/examples/generate_keypair.rs new file mode 100644 index 0000000..8241f89 --- /dev/null +++ b/examples/generate_keypair.rs @@ -0,0 +1,42 @@ +use swift_secure_enclave_tool_rs::{ + generate_ecdsa_keypair, is_secure_enclave_supported, KeyMaterial, KeyPurpose, +}; + +fn main() { + println!( + "Secure Enclave supported: {}", + is_secure_enclave_supported().unwrap() + ); + + let ecdsa_key_material_require_bio = generate_ecdsa_keypair(KeyPurpose::Signing, true).unwrap(); + print_key_material("Signing key [require bio]", &ecdsa_key_material_require_bio); + + let ecdsa_key_material_no_bio = generate_ecdsa_keypair(KeyPurpose::Signing, true).unwrap(); + print_key_material("Signing key [no bio]", &ecdsa_key_material_no_bio); + + let ecdsa_key_material_require_bio = + generate_ecdsa_keypair(KeyPurpose::KeyAgreement, true).unwrap(); + print_key_material( + "Key agreement key [require bio]", + &ecdsa_key_material_require_bio, + ); + + let ecdsa_key_material_no_bio = generate_ecdsa_keypair(KeyPurpose::KeyAgreement, true).unwrap(); + print_key_material("Key agreement key [no bio]", &ecdsa_key_material_no_bio); +} + +fn print_key_material(prefix: &str, key_material: &KeyMaterial) { + println!("\n{}", prefix); + println!( + "Public key point:\n{}", + hex::encode(&key_material.public_key_point) + ); + println!( + "\nPublic key:\n{}", + hex::encode(&key_material.public_key_der) + ); + println!( + "\nPrivate key representation:\n{}", + hex::encode(&key_material.private_key_representation) + ); +} diff --git a/examples/recover_ecdh.rs b/examples/recover_ecdh.rs new file mode 100644 index 0000000..8a55e80 --- /dev/null +++ b/examples/recover_ecdh.rs @@ -0,0 +1,3 @@ +fn main() { + +} \ No newline at end of file diff --git a/examples/recover_ecdsa.rs b/examples/recover_ecdsa.rs new file mode 100644 index 0000000..8a55e80 --- /dev/null +++ b/examples/recover_ecdsa.rs @@ -0,0 +1,3 @@ +fn main() { + +} \ No newline at end of file