wasi-crypto: forgot to erase ctx indirection
This commit is contained in:
@@ -21,7 +21,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
guest_types::OptOptions::None => None,
|
guest_types::OptOptions::None => None,
|
||||||
};
|
};
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_generate_managed(
|
.keypair_generate_managed(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
alg_type.into(),
|
alg_type.into(),
|
||||||
@@ -39,7 +38,7 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
kp_id_max_len: guest_types::Size,
|
kp_id_max_len: guest_types::Size,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let key_id_buf = &mut *kp_id_ptr.as_array(kp_id_max_len).as_slice_mut()?;
|
let key_id_buf = &mut *kp_id_ptr.as_array(kp_id_max_len).as_slice_mut()?;
|
||||||
Ok(self.ctx.keypair_store_managed(
|
Ok(self.keypair_store_managed(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
kp_handle.into(),
|
kp_handle.into(),
|
||||||
key_id_buf,
|
key_id_buf,
|
||||||
@@ -53,7 +52,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
kp_new_handle: guest_types::Keypair,
|
kp_new_handle: guest_types::Keypair,
|
||||||
) -> Result<guest_types::Version, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Version, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_replace_managed(
|
.keypair_replace_managed(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
kp_old_handle.into(),
|
kp_old_handle.into(),
|
||||||
@@ -71,7 +69,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
) -> Result<guest_types::Keypair, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Keypair, guest_types::CryptoErrno> {
|
||||||
let kp_id = &*kp_id_ptr.as_array(kp_id_len).as_slice()?;
|
let kp_id = &*kp_id_ptr.as_array(kp_id_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_from_id(secrets_manager_handle.into(), kp_id, kp_version.into())?
|
.keypair_from_id(secrets_manager_handle.into(), kp_id, kp_version.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -90,7 +87,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
guest_types::OptOptions::None => None,
|
guest_types::OptOptions::None => None,
|
||||||
};
|
};
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_generate(alg_type.into(), alg_str, options_handle.map(Into::into))?
|
.keypair_generate(alg_type.into(), alg_str, options_handle.map(Into::into))?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -106,7 +102,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
let alg_str = &*alg_str.as_str()?;
|
let alg_str = &*alg_str.as_str()?;
|
||||||
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_import(alg_type.into(), alg_str, encoded, encoding.into())?
|
.keypair_import(alg_type.into(), alg_str, encoded, encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -118,7 +113,7 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
kp_id_max_len: guest_types::Size,
|
kp_id_max_len: guest_types::Size,
|
||||||
) -> Result<(guest_types::Size, guest_types::Version), guest_types::CryptoErrno> {
|
) -> Result<(guest_types::Size, guest_types::Version), guest_types::CryptoErrno> {
|
||||||
let kp_id_buf = &mut *kp_id_ptr.as_array(kp_id_max_len as _).as_slice_mut()?;
|
let kp_id_buf = &mut *kp_id_ptr.as_array(kp_id_max_len as _).as_slice_mut()?;
|
||||||
let (kp_id, version) = self.ctx.keypair_id(kp_handle.into())?;
|
let (kp_id, version) = self.keypair_id(kp_handle.into())?;
|
||||||
ensure!(kp_id.len() <= kp_id_buf.len(), CryptoError::Overflow.into());
|
ensure!(kp_id.len() <= kp_id_buf.len(), CryptoError::Overflow.into());
|
||||||
kp_id_buf.copy_from_slice(&kp_id);
|
kp_id_buf.copy_from_slice(&kp_id);
|
||||||
Ok((kp_id.len().try_into()?, version.into()))
|
Ok((kp_id.len().try_into()?, version.into()))
|
||||||
@@ -130,7 +125,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
encoding: guest_types::KeypairEncoding,
|
encoding: guest_types::KeypairEncoding,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_export(kp_handle.into(), encoding.into())?
|
.keypair_export(kp_handle.into(), encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -139,14 +133,14 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
&self,
|
&self,
|
||||||
kp_handle: guest_types::Keypair,
|
kp_handle: guest_types::Keypair,
|
||||||
) -> Result<guest_types::Publickey, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Publickey, guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.keypair_publickey(kp_handle.into())?.into())
|
Ok(self.keypair_publickey(kp_handle.into())?.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn keypair_close(
|
fn keypair_close(
|
||||||
&self,
|
&self,
|
||||||
kp_handle: guest_types::Keypair,
|
kp_handle: guest_types::Keypair,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.keypair_close(kp_handle.into())?)
|
Ok(self.keypair_close(kp_handle.into())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- publickey
|
// --- publickey
|
||||||
@@ -162,7 +156,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
let alg_str = &*alg_str.as_str()?;
|
let alg_str = &*alg_str.as_str()?;
|
||||||
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.publickey_import(alg_type.into(), alg_str, encoded, encoding.into())?
|
.publickey_import(alg_type.into(), alg_str, encoded, encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -173,7 +166,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
encoding: guest_types::PublickeyEncoding,
|
encoding: guest_types::PublickeyEncoding,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.publickey_export(pk_handle.into(), encoding.into())?
|
.publickey_export(pk_handle.into(), encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -182,21 +174,21 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
&self,
|
&self,
|
||||||
sk_handle: guest_types::Secretkey,
|
sk_handle: guest_types::Secretkey,
|
||||||
) -> Result<guest_types::Publickey, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Publickey, guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.keypair_publickey(sk_handle.into())?.into())
|
Ok(self.keypair_publickey(sk_handle.into())?.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn publickey_verify(
|
fn publickey_verify(
|
||||||
&self,
|
&self,
|
||||||
pk_handle: guest_types::Publickey,
|
pk_handle: guest_types::Publickey,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.publickey_verify(pk_handle.into())?)
|
Ok(self.publickey_verify(pk_handle.into())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn publickey_close(
|
fn publickey_close(
|
||||||
&self,
|
&self,
|
||||||
pk_handle: guest_types::Publickey,
|
pk_handle: guest_types::Publickey,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.publickey_close(pk_handle.into())?)
|
Ok(self.publickey_close(pk_handle.into())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- secretkey
|
// --- secretkey
|
||||||
@@ -212,7 +204,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
let alg_str = &*alg_str.as_str()?;
|
let alg_str = &*alg_str.as_str()?;
|
||||||
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.secretkey_import(alg_type.into(), alg_str, encoded, encoding.into())?
|
.secretkey_import(alg_type.into(), alg_str, encoded, encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -223,7 +214,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
encoding: guest_types::SecretkeyEncoding,
|
encoding: guest_types::SecretkeyEncoding,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.secretkey_export(sk_handle.into(), encoding.into())?
|
.secretkey_export(sk_handle.into(), encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -232,7 +222,7 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
&self,
|
&self,
|
||||||
sk_handle: guest_types::Secretkey,
|
sk_handle: guest_types::Secretkey,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.secretkey_close(sk_handle.into())?)
|
Ok(self.secretkey_close(sk_handle.into())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn keypair_from_pk_and_sk(
|
fn keypair_from_pk_and_sk(
|
||||||
@@ -241,7 +231,6 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
sk_handle: guest_types::Secretkey,
|
sk_handle: guest_types::Secretkey,
|
||||||
) -> Result<guest_types::Keypair, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Keypair, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.keypair_from_pk_and_sk(pk_handle.into(), sk_handle.into())?
|
.keypair_from_pk_and_sk(pk_handle.into(), sk_handle.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -250,7 +239,7 @@ impl super::wasi_ephemeral_crypto_asymmetric_common::WasiEphemeralCryptoAsymmetr
|
|||||||
&self,
|
&self,
|
||||||
kp_handle: guest_types::Keypair,
|
kp_handle: guest_types::Keypair,
|
||||||
) -> Result<guest_types::Secretkey, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Secretkey, guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.keypair_secretkey(kp_handle.into())?.into())
|
Ok(self.keypair_secretkey(kp_handle.into())?.into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,14 +10,14 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
&self,
|
&self,
|
||||||
options_type: guest_types::AlgorithmType,
|
options_type: guest_types::AlgorithmType,
|
||||||
) -> Result<guest_types::Options, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Options, guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.options_open(options_type.into())?.into())
|
Ok(self.options_open(options_type.into())?.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn options_close(
|
fn options_close(
|
||||||
&self,
|
&self,
|
||||||
options_handle: guest_types::Options,
|
options_handle: guest_types::Options,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.options_close(options_handle.into())?)
|
Ok(self.options_close(options_handle.into())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn options_set(
|
fn options_set(
|
||||||
@@ -29,9 +29,7 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let name_str: &str = &*name_str.as_str()?;
|
let name_str: &str = &*name_str.as_str()?;
|
||||||
let value: &[u8] = { &*value_ptr.as_array(value_len).as_slice()? };
|
let value: &[u8] = { &*value_ptr.as_array(value_len).as_slice()? };
|
||||||
Ok(self
|
Ok(self.options_set(options_handle.into(), name_str, value)?)
|
||||||
.ctx
|
|
||||||
.options_set(options_handle.into(), name_str, value)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn options_set_guest_buffer(
|
fn options_set_guest_buffer(
|
||||||
@@ -44,9 +42,7 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
let name_str: &str = &*name_str.as_str()?;
|
let name_str: &str = &*name_str.as_str()?;
|
||||||
let buffer: &'static mut [u8] =
|
let buffer: &'static mut [u8] =
|
||||||
unsafe { std::mem::transmute(&mut *buffer_ptr.as_array(buffer_len).as_slice_mut()?) };
|
unsafe { std::mem::transmute(&mut *buffer_ptr.as_array(buffer_len).as_slice_mut()?) };
|
||||||
Ok(self
|
Ok(self.options_set_guest_buffer(options_handle.into(), name_str, buffer)?)
|
||||||
.ctx
|
|
||||||
.options_set_guest_buffer(options_handle.into(), name_str, buffer)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn options_set_u64(
|
fn options_set_u64(
|
||||||
@@ -56,9 +52,7 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
value: u64,
|
value: u64,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let name_str: &str = &*name_str.as_str()?;
|
let name_str: &str = &*name_str.as_str()?;
|
||||||
Ok(self
|
Ok(self.options_set_u64(options_handle.into(), name_str, value)?)
|
||||||
.ctx
|
|
||||||
.options_set_u64(options_handle.into(), name_str, value)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- array
|
// --- array
|
||||||
@@ -68,7 +62,6 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
array_output_handle: guest_types::ArrayOutput,
|
array_output_handle: guest_types::ArrayOutput,
|
||||||
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.array_output_len(array_output_handle.into())?
|
.array_output_len(array_output_handle.into())?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -81,7 +74,6 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
||||||
let buf: &mut [u8] = { &mut *buf_ptr.as_array(buf_len).as_slice_mut()? };
|
let buf: &mut [u8] = { &mut *buf_ptr.as_array(buf_len).as_slice_mut()? };
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.array_output_pull(array_output_handle.into(), buf)?
|
.array_output_pull(array_output_handle.into(), buf)?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -97,7 +89,6 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
guest_types::OptOptions::None => None,
|
guest_types::OptOptions::None => None,
|
||||||
};
|
};
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.secrets_manager_open(options_handle.map(Into::into))?
|
.secrets_manager_open(options_handle.map(Into::into))?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -106,9 +97,7 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
&self,
|
&self,
|
||||||
secrets_manager_handle: guest_types::SecretsManager,
|
secrets_manager_handle: guest_types::SecretsManager,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self.secrets_manager_close(secrets_manager_handle.into())?)
|
||||||
.ctx
|
|
||||||
.secrets_manager_close(secrets_manager_handle.into())?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn secrets_manager_invalidate(
|
fn secrets_manager_invalidate(
|
||||||
@@ -119,7 +108,7 @@ impl super::wasi_ephemeral_crypto_common::WasiEphemeralCryptoCommon for WasiCryp
|
|||||||
key_version: guest_types::Version,
|
key_version: guest_types::Version,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let key_id: &[u8] = { &*key_id_ptr.as_array(key_id_len).as_slice()? };
|
let key_id: &[u8] = { &*key_id_ptr.as_array(key_id_len).as_slice()? };
|
||||||
Ok(self.ctx.secrets_manager_invalidate(
|
Ok(self.secrets_manager_invalidate(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
key_id,
|
key_id,
|
||||||
key_version.into(),
|
key_version.into(),
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ impl super::wasi_ephemeral_crypto_kx::WasiEphemeralCryptoKx for WasiCryptoCtx {
|
|||||||
pk_handle: guest_types::Publickey,
|
pk_handle: guest_types::Publickey,
|
||||||
sk_handle: guest_types::Secretkey,
|
sk_handle: guest_types::Secretkey,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.kx_dh(pk_handle.into(), sk_handle.into())?.into())
|
Ok(self.kx_dh(pk_handle.into(), sk_handle.into())?.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Key encapsulation
|
// --- Key encapsulation
|
||||||
@@ -18,8 +18,7 @@ impl super::wasi_ephemeral_crypto_kx::WasiEphemeralCryptoKx for WasiCryptoCtx {
|
|||||||
pk_handle: guest_types::Publickey,
|
pk_handle: guest_types::Publickey,
|
||||||
) -> Result<(guest_types::ArrayOutput, guest_types::ArrayOutput), guest_types::CryptoErrno>
|
) -> Result<(guest_types::ArrayOutput, guest_types::ArrayOutput), guest_types::CryptoErrno>
|
||||||
{
|
{
|
||||||
let (secret_handle, encapsulated_secret_handle) =
|
let (secret_handle, encapsulated_secret_handle) = self.kx_encapsulate(pk_handle.into())?;
|
||||||
self.ctx.kx_encapsulate(pk_handle.into())?;
|
|
||||||
Ok((secret_handle.into(), encapsulated_secret_handle.into()))
|
Ok((secret_handle.into(), encapsulated_secret_handle.into()))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +32,6 @@ impl super::wasi_ephemeral_crypto_kx::WasiEphemeralCryptoKx for WasiCryptoCtx {
|
|||||||
.as_array(encapsulated_secret_len)
|
.as_array(encapsulated_secret_len)
|
||||||
.as_slice()?;
|
.as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.kx_decapsulate(sk_handle.into(), encapsulated_secret)?
|
.kx_decapsulate(sk_handle.into(), encapsulated_secret)?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
use std::rc::Rc;
|
|
||||||
|
|
||||||
pub use wasi_crypto::CryptoCtx as WasiCryptoCtx;
|
pub use wasi_crypto::CryptoCtx as WasiCryptoCtx;
|
||||||
|
|
||||||
wiggle::from_witx!({
|
wiggle::from_witx!({
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
encoding: guest_types::SignatureEncoding,
|
encoding: guest_types::SignatureEncoding,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.signature_export(signature_handle.into(), encoding.into())?
|
.signature_export(signature_handle.into(), encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -26,7 +25,6 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
let alg_str = &*alg_str.as_str()?;
|
let alg_str = &*alg_str.as_str()?;
|
||||||
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.signature_import(alg_str, encoded, encoding.into())?
|
.signature_import(alg_str, encoded, encoding.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -35,7 +33,7 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
&self,
|
&self,
|
||||||
kp_handle: guest_types::Keypair,
|
kp_handle: guest_types::Keypair,
|
||||||
) -> Result<guest_types::SignatureState, guest_types::CryptoErrno> {
|
) -> Result<guest_types::SignatureState, guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.signature_state_open(kp_handle.into())?.into())
|
Ok(self.signature_state_open(kp_handle.into())?.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn signature_state_update(
|
fn signature_state_update(
|
||||||
@@ -45,9 +43,7 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
input_len: guest_types::Size,
|
input_len: guest_types::Size,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let input = &*input_ptr.as_array(input_len).as_slice()?;
|
let input = &*input_ptr.as_array(input_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self.signature_state_update(state_handle.into(), input)?)
|
||||||
.ctx
|
|
||||||
.signature_state_update(state_handle.into(), input)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn signature_state_sign(
|
fn signature_state_sign(
|
||||||
@@ -55,7 +51,6 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
signature_state_handle: guest_types::SignatureState,
|
signature_state_handle: guest_types::SignatureState,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.signature_state_sign(signature_state_handle.into())?
|
.signature_state_sign(signature_state_handle.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -64,9 +59,7 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
&self,
|
&self,
|
||||||
signature_state_handle: guest_types::SignatureState,
|
signature_state_handle: guest_types::SignatureState,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self.signature_state_close(signature_state_handle.into())?)
|
||||||
.ctx
|
|
||||||
.signature_state_close(signature_state_handle.into())?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn signature_verification_state_open(
|
fn signature_verification_state_open(
|
||||||
@@ -74,7 +67,6 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
pk_handle: guest_types::Publickey,
|
pk_handle: guest_types::Publickey,
|
||||||
) -> Result<guest_types::SignatureVerificationState, guest_types::CryptoErrno> {
|
) -> Result<guest_types::SignatureVerificationState, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.signature_verification_state_open(pk_handle.into())?
|
.signature_verification_state_open(pk_handle.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -86,9 +78,7 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
input_len: guest_types::Size,
|
input_len: guest_types::Size,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let input: &[u8] = &*input_ptr.as_array(input_len).as_slice()?;
|
let input: &[u8] = &*input_ptr.as_array(input_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self.signature_verification_state_update(verification_state_handle.into(), input)?)
|
||||||
.ctx
|
|
||||||
.signature_verification_state_update(verification_state_handle.into(), input)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn signature_verification_state_verify(
|
fn signature_verification_state_verify(
|
||||||
@@ -96,7 +86,7 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
verification_state_handle: guest_types::SignatureVerificationState,
|
verification_state_handle: guest_types::SignatureVerificationState,
|
||||||
signature_handle: guest_types::Signature,
|
signature_handle: guest_types::Signature,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.signature_verification_state_verify(
|
Ok(self.signature_verification_state_verify(
|
||||||
verification_state_handle.into(),
|
verification_state_handle.into(),
|
||||||
signature_handle.into(),
|
signature_handle.into(),
|
||||||
)?)
|
)?)
|
||||||
@@ -106,16 +96,14 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
|
|||||||
&self,
|
&self,
|
||||||
verification_state_handle: guest_types::SignatureVerificationState,
|
verification_state_handle: guest_types::SignatureVerificationState,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self.signature_verification_state_close(verification_state_handle.into())?)
|
||||||
.ctx
|
|
||||||
.signature_verification_state_close(verification_state_handle.into())?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn signature_close(
|
fn signature_close(
|
||||||
&self,
|
&self,
|
||||||
signature_handle: guest_types::Signature,
|
signature_handle: guest_types::Signature,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.signature_close(signature_handle.into())?)
|
Ok(self.signature_close(signature_handle.into())?)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
guest_types::OptOptions::None => None,
|
guest_types::OptOptions::None => None,
|
||||||
};
|
};
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_key_generate_managed(
|
.symmetric_key_generate_managed(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
alg_str,
|
alg_str,
|
||||||
@@ -37,7 +36,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let key_id_buf = &mut *symmetric_key_id_ptr
|
let key_id_buf = &mut *symmetric_key_id_ptr
|
||||||
.as_array(symmetric_key_id_max_len)
|
.as_array(symmetric_key_id_max_len)
|
||||||
.as_slice_mut()?;
|
.as_slice_mut()?;
|
||||||
Ok(self.ctx.symmetric_key_store_managed(
|
Ok(self.symmetric_key_store_managed(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
symmetric_key_handle.into(),
|
symmetric_key_handle.into(),
|
||||||
key_id_buf,
|
key_id_buf,
|
||||||
@@ -51,7 +50,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
symmetric_key_new_handle: guest_types::SymmetricKey,
|
symmetric_key_new_handle: guest_types::SymmetricKey,
|
||||||
) -> Result<guest_types::Version, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Version, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_key_replace_managed(
|
.symmetric_key_replace_managed(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
symmetric_key_old_handle.into(),
|
symmetric_key_old_handle.into(),
|
||||||
@@ -71,7 +69,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
.as_array(symmetric_key_id_len)
|
.as_array(symmetric_key_id_len)
|
||||||
.as_slice()?;
|
.as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_key_from_id(
|
.symmetric_key_from_id(
|
||||||
secrets_manager_handle.into(),
|
secrets_manager_handle.into(),
|
||||||
symmetric_key_id,
|
symmetric_key_id,
|
||||||
@@ -93,7 +90,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
guest_types::OptOptions::None => None,
|
guest_types::OptOptions::None => None,
|
||||||
};
|
};
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_key_generate(alg_str, options_handle.map(Into::into))?
|
.symmetric_key_generate(alg_str, options_handle.map(Into::into))?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -106,7 +102,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
) -> Result<guest_types::SymmetricKey, guest_types::CryptoErrno> {
|
) -> Result<guest_types::SymmetricKey, guest_types::CryptoErrno> {
|
||||||
let alg_str = &*alg_str.as_str()?;
|
let alg_str = &*alg_str.as_str()?;
|
||||||
let raw = &*raw_ptr.as_array(raw_len).as_slice()?;
|
let raw = &*raw_ptr.as_array(raw_len).as_slice()?;
|
||||||
Ok(self.ctx.symmetric_key_import(alg_str, raw)?.into())
|
Ok(self.symmetric_key_import(alg_str, raw)?.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn symmetric_key_export(
|
fn symmetric_key_export(
|
||||||
@@ -114,7 +110,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
symmetric_key_handle: guest_types::SymmetricKey,
|
symmetric_key_handle: guest_types::SymmetricKey,
|
||||||
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_key_export(symmetric_key_handle.into())?
|
.symmetric_key_export(symmetric_key_handle.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -128,7 +123,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let key_id_buf = &mut *symmetric_key_id_ptr
|
let key_id_buf = &mut *symmetric_key_id_ptr
|
||||||
.as_array(symmetric_key_id_max_len)
|
.as_array(symmetric_key_id_max_len)
|
||||||
.as_slice_mut()?;
|
.as_slice_mut()?;
|
||||||
let (key_id, version) = self.ctx.symmetric_key_id(symmetric_key_handle.into())?;
|
let (key_id, version) = self.symmetric_key_id(symmetric_key_handle.into())?;
|
||||||
ensure!(
|
ensure!(
|
||||||
key_id.len() <= key_id_buf.len(),
|
key_id.len() <= key_id_buf.len(),
|
||||||
CryptoError::Overflow.into()
|
CryptoError::Overflow.into()
|
||||||
@@ -141,7 +136,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
&self,
|
&self,
|
||||||
key_handle: guest_types::SymmetricKey,
|
key_handle: guest_types::SymmetricKey,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.symmetric_key_close(key_handle.into())?)
|
Ok(self.symmetric_key_close(key_handle.into())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- state
|
// --- state
|
||||||
@@ -162,7 +157,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
guest_types::OptOptions::None => None,
|
guest_types::OptOptions::None => None,
|
||||||
};
|
};
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_open(
|
.symmetric_state_open(
|
||||||
alg_str,
|
alg_str,
|
||||||
key_handle.map(Into::into),
|
key_handle.map(Into::into),
|
||||||
@@ -181,7 +175,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let name_str: &str = &*name_str.as_str()?;
|
let name_str: &str = &*name_str.as_str()?;
|
||||||
let value = &mut *value_ptr.as_array(value_max_len).as_slice_mut()?;
|
let value = &mut *value_ptr.as_array(value_max_len).as_slice_mut()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.options_get(symmetric_state_handle.into(), name_str, value)?
|
.options_get(symmetric_state_handle.into(), name_str, value)?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -192,18 +185,14 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
name_str: &wiggle::GuestPtr<'_, str>,
|
name_str: &wiggle::GuestPtr<'_, str>,
|
||||||
) -> Result<u64, guest_types::CryptoErrno> {
|
) -> Result<u64, guest_types::CryptoErrno> {
|
||||||
let name_str: &str = &*name_str.as_str()?;
|
let name_str: &str = &*name_str.as_str()?;
|
||||||
Ok(self
|
Ok(self.options_get_u64(symmetric_state_handle.into(), name_str)?)
|
||||||
.ctx
|
|
||||||
.options_get_u64(symmetric_state_handle.into(), name_str)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn symmetric_state_close(
|
fn symmetric_state_close(
|
||||||
&self,
|
&self,
|
||||||
symmetric_state_handle: guest_types::SymmetricState,
|
symmetric_state_handle: guest_types::SymmetricState,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self.symmetric_state_close(symmetric_state_handle.into())?)
|
||||||
.ctx
|
|
||||||
.symmetric_state_close(symmetric_state_handle.into())?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn symmetric_state_absorb(
|
fn symmetric_state_absorb(
|
||||||
@@ -213,9 +202,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
data_len: guest_types::Size,
|
data_len: guest_types::Size,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self.symmetric_state_absorb(symmetric_state_handle.into(), data)?)
|
||||||
.ctx
|
|
||||||
.symmetric_state_absorb(symmetric_state_handle.into(), data)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn symmetric_state_squeeze(
|
fn symmetric_state_squeeze(
|
||||||
@@ -225,9 +212,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
out_len: guest_types::Size,
|
out_len: guest_types::Size,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
||||||
Ok(self
|
Ok(self.symmetric_state_squeeze(symmetric_state_handle.into(), out)?)
|
||||||
.ctx
|
|
||||||
.symmetric_state_squeeze(symmetric_state_handle.into(), out)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn symmetric_state_squeeze_tag(
|
fn symmetric_state_squeeze_tag(
|
||||||
@@ -235,7 +220,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
symmetric_state_handle: guest_types::SymmetricState,
|
symmetric_state_handle: guest_types::SymmetricState,
|
||||||
) -> Result<guest_types::SymmetricTag, guest_types::CryptoErrno> {
|
) -> Result<guest_types::SymmetricTag, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_squeeze_tag(symmetric_state_handle.into())?
|
.symmetric_state_squeeze_tag(symmetric_state_handle.into())?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -247,7 +231,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
) -> Result<guest_types::SymmetricKey, guest_types::CryptoErrno> {
|
) -> Result<guest_types::SymmetricKey, guest_types::CryptoErrno> {
|
||||||
let alg_str = &*alg_str.as_str()?;
|
let alg_str = &*alg_str.as_str()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_squeeze_key(symmetric_state_handle.into(), alg_str)?
|
.symmetric_state_squeeze_key(symmetric_state_handle.into(), alg_str)?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -257,7 +240,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
symmetric_state_handle: guest_types::SymmetricState,
|
symmetric_state_handle: guest_types::SymmetricState,
|
||||||
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_max_tag_len(symmetric_state_handle.into())?
|
.symmetric_state_max_tag_len(symmetric_state_handle.into())?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -273,7 +255,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
||||||
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_encrypt(symmetric_state_handle.into(), out, data)?
|
.symmetric_state_encrypt(symmetric_state_handle.into(), out, data)?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -289,7 +270,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
||||||
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_encrypt_detached(symmetric_state_handle.into(), out, data)?
|
.symmetric_state_encrypt_detached(symmetric_state_handle.into(), out, data)?
|
||||||
.into())
|
.into())
|
||||||
}
|
}
|
||||||
@@ -305,7 +285,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
let out = &mut *out_ptr.as_array(out_len).as_slice_mut()?;
|
||||||
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_decrypt(symmetric_state_handle.into(), out, data)?
|
.symmetric_state_decrypt(symmetric_state_handle.into(), out, data)?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -324,7 +303,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
let data = &*data_ptr.as_array(data_len).as_slice()?;
|
||||||
let raw_tag: &[u8] = &*raw_tag_ptr.as_array(raw_tag_len).as_slice()?;
|
let raw_tag: &[u8] = &*raw_tag_ptr.as_array(raw_tag_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_state_decrypt_detached(symmetric_state_handle.into(), out, data, raw_tag)?
|
.symmetric_state_decrypt_detached(symmetric_state_handle.into(), out, data, raw_tag)?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -333,9 +311,7 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
&self,
|
&self,
|
||||||
symmetric_state_handle: guest_types::SymmetricState,
|
symmetric_state_handle: guest_types::SymmetricState,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self.symmetric_state_ratchet(symmetric_state_handle.into())?)
|
||||||
.ctx
|
|
||||||
.symmetric_state_ratchet(symmetric_state_handle.into())?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- tag
|
// --- tag
|
||||||
@@ -345,7 +321,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
symmetric_tag_handle: guest_types::SymmetricTag,
|
symmetric_tag_handle: guest_types::SymmetricTag,
|
||||||
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_tag_len(symmetric_tag_handle.into())?
|
.symmetric_tag_len(symmetric_tag_handle.into())?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -358,7 +333,6 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
) -> Result<guest_types::Size, guest_types::CryptoErrno> {
|
||||||
let buf = &mut *buf_ptr.as_array(buf_len).as_slice_mut()?;
|
let buf = &mut *buf_ptr.as_array(buf_len).as_slice_mut()?;
|
||||||
Ok(self
|
Ok(self
|
||||||
.ctx
|
|
||||||
.symmetric_tag_pull(symmetric_tag_handle.into(), buf)?
|
.symmetric_tag_pull(symmetric_tag_handle.into(), buf)?
|
||||||
.try_into()?)
|
.try_into()?)
|
||||||
}
|
}
|
||||||
@@ -370,15 +344,13 @@ impl super::wasi_ephemeral_crypto_symmetric::WasiEphemeralCryptoSymmetric for Wa
|
|||||||
expected_raw_len: guest_types::Size,
|
expected_raw_len: guest_types::Size,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
let expected_raw = &*expected_raw_ptr.as_array(expected_raw_len).as_slice()?;
|
let expected_raw = &*expected_raw_ptr.as_array(expected_raw_len).as_slice()?;
|
||||||
Ok(self
|
Ok(self.symmetric_tag_verify(symmetric_tag_handle.into(), expected_raw)?)
|
||||||
.ctx
|
|
||||||
.symmetric_tag_verify(symmetric_tag_handle.into(), expected_raw)?)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn symmetric_tag_close(
|
fn symmetric_tag_close(
|
||||||
&self,
|
&self,
|
||||||
symmetric_tag_handle: guest_types::SymmetricTag,
|
symmetric_tag_handle: guest_types::SymmetricTag,
|
||||||
) -> Result<(), guest_types::CryptoErrno> {
|
) -> Result<(), guest_types::CryptoErrno> {
|
||||||
Ok(self.ctx.symmetric_tag_close(symmetric_tag_handle.into())?)
|
Ok(self.symmetric_tag_close(symmetric_tag_handle.into())?)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user