Implement RFC 11: Redesigning Wasmtime's APIs (#2897)

Implement Wasmtime's new API as designed by RFC 11. This is quite a large commit which has had lots of discussion externally, so for more information it's best to read the RFC thread and the PR thread.
This commit is contained in:
Alex Crichton
2021-06-03 09:10:53 -05:00
committed by GitHub
parent a5a28b1c5b
commit 7a1b7cdf92
233 changed files with 13349 additions and 11997 deletions

View File

@@ -6,17 +6,17 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
// --- signature
fn signature_export(
&self,
&mut self,
signature_handle: guest_types::Signature,
encoding: guest_types::SignatureEncoding,
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
Ok(self
Ok((&*self)
.signature_export(signature_handle.into(), encoding.into())?
.into())
}
fn signature_import(
&self,
&mut self,
alg_str: &wiggle::GuestPtr<'_, str>,
encoded_ptr: &wiggle::GuestPtr<'_, u8>,
encoded_len: guest_types::Size,
@@ -24,86 +24,89 @@ impl super::wasi_ephemeral_crypto_signatures::WasiEphemeralCryptoSignatures for
) -> Result<guest_types::Signature, guest_types::CryptoErrno> {
let alg_str = &*alg_str.as_str()?;
let encoded = &*encoded_ptr.as_array(encoded_len).as_slice()?;
Ok(self
Ok((&*self)
.signature_import(alg_str, encoded, encoding.into())?
.into())
}
fn signature_state_open(
&self,
&mut self,
kp_handle: guest_types::Keypair,
) -> Result<guest_types::SignatureState, guest_types::CryptoErrno> {
Ok(self.signature_state_open(kp_handle.into())?.into())
Ok((&*self).signature_state_open(kp_handle.into())?.into())
}
fn signature_state_update(
&self,
&mut self,
state_handle: guest_types::SignatureState,
input_ptr: &wiggle::GuestPtr<'_, u8>,
input_len: guest_types::Size,
) -> Result<(), guest_types::CryptoErrno> {
let input = &*input_ptr.as_array(input_len).as_slice()?;
Ok(self.signature_state_update(state_handle.into(), input)?)
Ok((&*self).signature_state_update(state_handle.into(), input)?)
}
fn signature_state_sign(
&self,
&mut self,
signature_state_handle: guest_types::SignatureState,
) -> Result<guest_types::ArrayOutput, guest_types::CryptoErrno> {
Ok(self
Ok((&*self)
.signature_state_sign(signature_state_handle.into())?
.into())
}
fn signature_state_close(
&self,
&mut self,
signature_state_handle: guest_types::SignatureState,
) -> Result<(), guest_types::CryptoErrno> {
Ok(self.signature_state_close(signature_state_handle.into())?)
Ok((&*self).signature_state_close(signature_state_handle.into())?)
}
fn signature_verification_state_open(
&self,
&mut self,
pk_handle: guest_types::Publickey,
) -> Result<guest_types::SignatureVerificationState, guest_types::CryptoErrno> {
Ok(self
Ok((&*self)
.signature_verification_state_open(pk_handle.into())?
.into())
}
fn signature_verification_state_update(
&self,
&mut self,
verification_state_handle: guest_types::SignatureVerificationState,
input_ptr: &wiggle::GuestPtr<'_, u8>,
input_len: guest_types::Size,
) -> Result<(), guest_types::CryptoErrno> {
let input: &[u8] = &*input_ptr.as_array(input_len).as_slice()?;
Ok(self.signature_verification_state_update(verification_state_handle.into(), input)?)
Ok(
(&*self)
.signature_verification_state_update(verification_state_handle.into(), input)?,
)
}
fn signature_verification_state_verify(
&self,
&mut self,
verification_state_handle: guest_types::SignatureVerificationState,
signature_handle: guest_types::Signature,
) -> Result<(), guest_types::CryptoErrno> {
Ok(self.signature_verification_state_verify(
Ok((&*self).signature_verification_state_verify(
verification_state_handle.into(),
signature_handle.into(),
)?)
}
fn signature_verification_state_close(
&self,
&mut self,
verification_state_handle: guest_types::SignatureVerificationState,
) -> Result<(), guest_types::CryptoErrno> {
Ok(self.signature_verification_state_close(verification_state_handle.into())?)
Ok((&*self).signature_verification_state_close(verification_state_handle.into())?)
}
fn signature_close(
&self,
&mut self,
signature_handle: guest_types::Signature,
) -> Result<(), guest_types::CryptoErrno> {
Ok(self.signature_close(signature_handle.into())?)
Ok((&*self).signature_close(signature_handle.into())?)
}
}