polymorph_webcrypto_guest/
ecdsa.rs1use crate::{bindings, Error, SigningKey, SigningKeyOptions, VerifyingKey};
4
5pub use crate::bindings::ecdsa_verify::EcdsaVariant;
6
7pub async fn import_verifying_key_raw(
9 variant: EcdsaVariant,
10 raw: impl Into<Vec<u8>>,
11) -> Result<VerifyingKey, Error> {
12 Ok(VerifyingKey::from_raw(
13 bindings::ecdsa_verify::import_verifying_key_raw(variant, raw.into()).await?,
14 ))
15}
16
17pub async fn generate_key(
20 variant: EcdsaVariant,
21 options: SigningKeyOptions,
22) -> Result<(SigningKey, VerifyingKey), Error> {
23 let (signing, verifying) = bindings::ecdsa_sign::generate_key(variant, options.lower()).await?;
24 Ok((
25 SigningKey::from_raw(signing),
26 VerifyingKey::from_raw(verifying),
27 ))
28}