[All] - [crypto_errno] - [keypair_encoding] - [publickey_encoding] - [secretkey_encoding] - [signature_encoding] - [algorithm_type] - [version] - [size] - [timestamp] - [u64] - [array_output] - [options] - [secrets_manager] - [keypair] - [signature_state] - [signature] - [publickey] - [secretkey] - [signature_verification_state] - [symmetric_state] - [symmetric_key] - [symmetric_tag] - [opt_options_u] - [opt_options] - [opt_symmetric_key_u] - [opt_symmetric_key] - [signature_keypair] - [signature_publickey] - [signature_secretkey]
[All] - [signature_export()] - [signature_import()] - [signature_state_open()] - [signature_state_update()] - [signature_state_sign()] - [signature_state_close()] - [signature_verification_state_open()] - [signature_verification_state_update()] - [signature_verification_state_verify()] - [signature_verification_state_close()] - [signature_close()]
Enumeration with tag type: u16, and the following members:
success:crypto_errnoguest_error:crypto_errnonot_implemented:crypto_errnounsupported_feature:crypto_errnoprohibited_operation:crypto_errnounsupported_encoding:crypto_errnounsupported_algorithm:crypto_errnounsupported_option:crypto_errnoinvalid_key:crypto_errnoinvalid_length:crypto_errnoverification_failed:crypto_errnorng_error:crypto_errnoalgorithm_failure:crypto_errnoinvalid_signature:crypto_errnoclosed:crypto_errnoinvalid_handle:crypto_errnooverflow:crypto_errnointernal_error:crypto_errnotoo_many_handles:crypto_errnokey_not_supported:crypto_errnokey_required:crypto_errnoinvalid_tag:crypto_errnoinvalid_operation:crypto_errnononce_required:crypto_errnoinvalid_nonce:crypto_errnooption_not_set:crypto_errnonot_found:crypto_errnoparameters_missing:crypto_errnoin_progress:crypto_errnoincompatible_keys:crypto_errnoexpired:crypto_errno
Error codes.
Enumeration with tag type: u16, and the following members:
raw:keypair_encodingpkcs8:keypair_encodingpem:keypair_encodinglocal:keypair_encoding
Encoding to use for importing or exporting a key pair.
Enumeration with tag type: u16, and the following members:
raw:publickey_encodingpkcs8:publickey_encodingpem:publickey_encodingsec:publickey_encodinglocal:publickey_encoding
Encoding to use for importing or exporting a public key.
Enumeration with tag type: u16, and the following members:
raw:secretkey_encodingpkcs8:secretkey_encodingpem:secretkey_encodingsec:secretkey_encodinglocal:secretkey_encoding
Encoding to use for importing or exporting a secret key.
Enumeration with tag type: u16, and the following members:
raw:signature_encodingder:signature_encoding
Encoding to use for importing or exporting a signature.
Enumeration with tag type: u16, and the following members:
signatures:algorithm_typesymmetric:algorithm_typekey_exchange:algorithm_type
An algorithm category.
Alias for u64.
Version of a managed key.
A version can be an arbitrary
u64integer, with the expection of some reserved values.
Alias for usize.
Size of a value.
Alias for u64.
A UNIX timestamp, in seconds since 01/01/1970.
Alias for u64.
A 64-bit value
Alias for handle.
Handle for functions returning output whose size may be large or not known in advance.
An
array_outputobject contains a host-allocated byte array.A guest can get the size of that array after a function returns in order to then allocate a buffer of the correct size. In addition, the content of such an object can be consumed by a guest in a streaming fashion.
An
array_outputhandle is automatically closed after its full content has been consumed.
Alias for handle.
A set of options.
This type is used to set non-default parameters.
The exact set of allowed options depends on the algorithm being used.
Alias for handle.
A handle to the optional secrets management facilities offered by a host.
This is used to generate, retrieve and invalidate managed keys.
Alias for handle.
A key pair.
Alias for handle.
A state to absorb data to be signed.
After a signature has been computed or verified, the state remains valid for further operations.
A subsequent signature would sign all the data accumulated since the creation of the state object.
Alias for handle.
A signature.
Alias for handle.
A public key, for key exchange and signature verification.
Alias for handle.
A secret key, for key exchange mechanisms.
Alias for handle.
A state to absorb signed data to be verified.
Alias for handle.
A state to perform symmetric operations.
The state is not reset nor invalidated after an option has been performed. Incremental updates and sessions are thus supported.
Alias for handle.
A symmetric key.
The key can be imported from raw bytes, or can be a reference to a managed key.
If it was imported, the host will wipe it from memory as soon as the handle is closed.
Alias for handle.
An authentication tag.
This is an object returned by functions computing authentication tags.
A tag can be compared against another tag (directly supplied as raw bytes) in constant time with the
symmetric_tag_verify()function.This object type can't be directly created from raw bytes. They are only returned by functions computing MACs.
The host is reponsible for securely wiping them from memory on close.
Enumeration with tag type: u8, and the following members:
some:opt_options_unone:opt_options_u
Options index, only required by the Interface Types translation layer.
Tagged union with tag type: u8 and the following possibilities:
some:optionsnone: (empty)
An optional options set.
This union simulates an
Option\<Options\>type to make theoptionsparameter of some functions optional.
Enumeration with tag type: u8, and the following members:
some:opt_symmetric_key_unone:opt_symmetric_key_u
Symmetric key index, only required by the Interface Types translation layer.
Tagged union with tag type: u8 and the following possibilities:
some:symmetric_keynone: (empty)
An optional symmetric key.
This union simulates an
Option\<SymmetricKey\>type to make thesymmetric_keyparameter of some functions optional.
Alias for handle.
$signature_keypairis just an alias for$keypairHowever, bindings may want to define a specialized type
signature_keypairas a super class ofkeypair, with additional methods such assign.
Alias for handle.
$signature_publickeyis just an alias for$publickeyHowever, bindings may want to define a specialized type
signature_publickeyas a super class ofpublickey, with additional methods such asverify.
Alias for handle.
$signature_secretkeyis just an alias for$secretkeyHowever, bindings may want to define a specialized type
signature_secretkeyas a super class ofsecretkey.
Returned error type: crypto_errno
signature:signatureencoding:signature_encoding
array_outputmutable pointer
Export a signature.
This function exports a signature object using the specified encoding.
May return
unsupported_encodingif the signature cannot be encoded into the given format.
Returned error type: crypto_errno
algorithm:stringencoded:u8pointerencoded_len:sizeencoding:signature_encoding
signaturemutable pointer
Create a signature object.
This object can be used along with a public key to verify an existing signature.
It may return
invalid_signatureif the signature is invalid or incompatible with the specified algorithm, as well asunsupported_encodingif the encoding is not compatible with the signature type.The function may also return
unsupported_algorithmif the algorithm is not supported by the host.Example usage:
let signature_handle = ctx.signature_import("ECDSA_P256_SHA256", SignatureEncoding::DER, encoded)?;
Returned error type: crypto_errno
signature_statemutable pointer
Create a new state to collect data to compute a signature on.
This function allows data to be signed to be supplied in a streaming fashion.
The state is not closed and can be used after a signature has been computed, allowing incremental updates by calling
signature_state_update()again afterwards.Example usage - signature creation
let kp_handle = ctx.keypair_import(AlgorithmType::Signatures, "Ed25519ph", keypair, KeypairEncoding::Raw)?; let state_handle = ctx.signature_state_open(kp_handle)?; ctx.signature_state_update(state_handle, b"message part 1")?; ctx.signature_state_update(state_handle, b"message part 2")?; let sig_handle = ctx.signature_state_sign(state_handle)?; let raw_sig = ctx.signature_export(sig_handle, SignatureEncoding::Raw)?;
Returned error type: crypto_errno
state:signature_stateinput:u8pointerinput_len:size
This function has no output.
Absorb data into the signature state.
This function may return
unsupported_featureis the selected algorithm doesn't support incremental updates.
Returned error type: crypto_errno
state:signature_state
array_outputmutable pointer
Compute a signature for all the data collected up to that point.
The function can be called multiple times for incremental signing.
Returned error type: crypto_errno
state:signature_state
This function has no output.
Destroy a signature state.
Objects are reference counted. It is safe to close an object immediately after the last function needing it is called.
Note that closing a signature state doesn't close or invalidate the key pair object, that be reused for further signatures.
Returned error type: crypto_errno
signature_verification_statemutable pointer
Create a new state to collect data to verify a signature on.
This is the verification counterpart of
signature_state.Data can be injected using
signature_verification_state_update(), and the state is not closed after a verification, allowing incremental verification.Example usage - signature verification:
let pk_handle = ctx.publickey_import(AlgorithmType::Signatures, "ECDSA_P256_SHA256", encoded_pk, PublicKeyEncoding::Sec)?; let signature_handle = ctx.signature_import(AlgorithmType::Signatures, "ECDSA_P256_SHA256", encoded_sig, SignatureEncoding::Der)?; let state_handle = ctx.signature_verification_state_open(pk_handle)?; ctx.signature_verification_state_update(state_handle, "message")?; ctx.signature_verification_state_verify(signature_handle)?;
Returned error type: crypto_errno
state:signature_verification_stateinput:u8pointerinput_len:size
This function has no output.
Absorb data into the signature verification state.
This function may return
unsupported_featureis the selected algorithm doesn't support incremental updates.
Returned error type: crypto_errno
state:signature_verification_statesignature:signature
This function has no output.
Check that the given signature is verifies for the data collected up to that point point.
The state is not closed and can absorb more data to allow for incremental verification.
The function returns
invalid_signatureif the signature doesn't appear to be valid.
Returned error type: crypto_errno
state:signature_verification_state
This function has no output.
Destroy a signature verification state.
Objects are reference counted. It is safe to close an object immediately after the last function needing it is called.
Note that closing a signature state doesn't close or invalidate the public key object, that be reused for further verifications.
Returned error type: crypto_errno
signature:signature
This function has no output.
Destroy a signature.
Objects are reference counted. It is safe to close an object immediately after the last function needing it is called.