polymorph_webcrypto_guest/
aes_kw.rs1use crate::{bindings, Error, KwKey, KwKeyOptions, UnwrapInput};
5
6pub use crate::bindings::aes_kw::AesVariant;
7
8pub async fn import_key_raw(
10 variant: AesVariant,
11 raw: impl Into<Vec<u8>>,
12 options: KwKeyOptions,
13) -> Result<KwKey, Error> {
14 Ok(KwKey::from_raw(
15 bindings::aes_kw::import_key_raw(variant, raw.into(), options.lower()).await?,
16 ))
17}
18
19pub async fn import_key_jwk(
22 variant: AesVariant,
23 jwk: impl Into<String>,
24 options: KwKeyOptions,
25) -> Result<KwKey, Error> {
26 Ok(KwKey::from_raw(
27 bindings::aes_kw::import_key_jwk(variant, jwk.into(), options.lower()).await?,
28 ))
29}
30
31pub async fn generate_key(variant: AesVariant, options: KwKeyOptions) -> Result<KwKey, Error> {
33 Ok(KwKey::from_raw(
34 bindings::aes_kw::generate_key(variant, options.lower()).await?,
35 ))
36}
37
38pub async fn derive_key(
41 variant: AesVariant,
42 input: &crate::DeriveInput,
43 options: KwKeyOptions,
44) -> Result<KwKey, Error> {
45 Ok(KwKey::from_raw(
46 bindings::aes_kw::derive_key(variant, input.as_raw(), options.lower()).await?,
47 ))
48}
49
50pub async fn unwrap_key_raw(
53 variant: AesVariant,
54 input: UnwrapInput,
55 options: KwKeyOptions,
56) -> Result<KwKey, Error> {
57 Ok(KwKey::from_raw(
58 bindings::aes_kw::unwrap_key_raw(variant, input.into_raw(), options.lower()).await?,
59 ))
60}
61
62pub async fn unwrap_key_jwk(
65 variant: AesVariant,
66 input: UnwrapInput,
67 options: KwKeyOptions,
68) -> Result<KwKey, Error> {
69 Ok(KwKey::from_raw(
70 bindings::aes_kw::unwrap_key_jwk(variant, input.into_raw(), options.lower()).await?,
71 ))
72}