Function esp_idf_svc::sys::mbedtls_rsa_pkcs1_sign
source · pub unsafe extern "C" fn mbedtls_rsa_pkcs1_sign(
ctx: *mut mbedtls_rsa_context,
f_rng: Option<unsafe extern "C" fn(_: *mut c_void, _: *mut u8, _: usize) -> i32>,
p_rng: *mut c_void,
md_alg: u32,
hashlen: u32,
hash: *const u8,
sig: *mut u8,
) -> i32
Expand description
\brief This function performs a private RSA operation to sign a message digest using PKCS#1.
It is the generic wrapper for performing a PKCS#1
signature.
\note The \p sig buffer must be as large as the size of \p ctx->N. For example, 128 Bytes if RSA-1024 is used.
\note For PKCS#1 v2.1 encoding, see comments on mbedtls_rsa_rsassa_pss_sign() for details on \p md_alg and \p hash_id.
\param ctx The initialized RSA context to use. \param f_rng The RNG function to use. This is mandatory and must not be \c NULL. \param p_rng The RNG context to be passed to \p f_rng. This may be \c NULL if \p f_rng doesn’t need a context argument. \param md_alg The message-digest algorithm used to hash the original data. Use #MBEDTLS_MD_NONE for signing raw data. \param hashlen The length of the message digest or raw data in Bytes. If \p md_alg is not #MBEDTLS_MD_NONE, this must match the output length of the corresponding hash algorithm. \param hash The buffer holding the message digest or raw data. This must be a readable buffer of at least \p hashlen Bytes. \param sig The buffer to hold the signature. This must be a writable buffer of length \c ctx->len Bytes. For example, \c 256 Bytes for an 2048-bit RSA modulus. A buffer length of #MBEDTLS_MPI_MAX_SIZE is always safe.
\return \c 0 if the signing operation was successful. \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.