diff --git a/src/lib.rs b/src/lib.rs index bce4f7a..ab18a36 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -52,13 +52,25 @@ pub fn x25519_keygen<'a>() -> (X25519PrivKey<'a>, X25519PubKey<'a>) { (sk, pk) } +pub fn x22519_pubkey<'a>(sk: &X25519PrivKey) -> X25519PubKey<'a> { + let pk = X25519PubKey(SharedPtr::<32>::new().unwrap()); + + let mut agent = AGENT.lock().unwrap(); + + unsafe { + agent.perform_ipc_call(1, &[sk.0.get_offset(), pk.0.get_offset()]); + } + + pk +} + pub fn x25519<'a>(sk: &X25519PrivKey, pk: &X25519PubKey) -> X25519SharedKey<'a> { let out = X25519SharedKey(SharedPtr::<32>::new().unwrap()); let mut agent = AGENT.lock().unwrap(); unsafe { - agent.perform_ipc_call(1, &[out.0.get_offset(), sk.0.get_offset(), pk.0.get_offset()]); + agent.perform_ipc_call(2, &[out.0.get_offset(), sk.0.get_offset(), pk.0.get_offset()]); } out