polymorph_webcrypto_guest/
aes_gcm.rs1use crate::{bindings, Aead, AeadKeyOptions, Error};
4
5pub use crate::bindings::aes_gcm::AesVariant;
6
7pub async fn import_key_raw(
9 variant: AesVariant,
10 raw: impl Into<Vec<u8>>,
11 options: AeadKeyOptions,
12) -> Result<Aead, Error> {
13 Ok(Aead::from_raw(
14 bindings::aes_gcm::import_key_raw(variant, raw.into(), options.lower()).await?,
15 ))
16}
17
18pub async fn import_key_jwk(
22 variant: AesVariant,
23 jwk: impl Into<String>,
24 options: AeadKeyOptions,
25) -> Result<Aead, Error> {
26 Ok(Aead::from_raw(
27 bindings::aes_gcm::import_key_jwk(variant, jwk.into(), options.lower()).await?,
28 ))
29}
30
31pub async fn generate_key(variant: AesVariant, options: AeadKeyOptions) -> Result<Aead, Error> {
33 Ok(Aead::from_raw(
34 bindings::aes_gcm::generate_key(variant, options.lower()).await?,
35 ))
36}
37
38pub async fn derive_key(
47 variant: AesVariant,
48 input: &crate::DeriveInput,
49 options: AeadKeyOptions,
50) -> Result<Aead, Error> {
51 Ok(Aead::from_raw(
52 bindings::aes_gcm::derive_key(variant, input.as_raw(), options.lower()).await?,
53 ))
54}
55
56pub async fn unwrap_key_raw(
60 variant: AesVariant,
61 input: crate::UnwrapInput,
62 options: AeadKeyOptions,
63) -> Result<Aead, Error> {
64 Ok(Aead::from_raw(
65 bindings::aes_gcm::unwrap_key_raw(variant, input.into_raw(), options.lower()).await?,
66 ))
67}
68
69pub async fn unwrap_key_jwk(
73 variant: AesVariant,
74 input: crate::UnwrapInput,
75 options: AeadKeyOptions,
76) -> Result<Aead, Error> {
77 Ok(Aead::from_raw(
78 bindings::aes_gcm::unwrap_key_jwk(variant, input.into_raw(), options.lower()).await?,
79 ))
80}