Function esp_idf_svc::sys::mbedtls_ecdsa_sign

source ·
pub unsafe extern "C" fn mbedtls_ecdsa_sign(
    grp: *mut mbedtls_ecp_group,
    r: *mut mbedtls_mpi,
    s: *mut mbedtls_mpi,
    d: *const mbedtls_mpi,
    buf: *const u8,
    blen: usize,
    f_rng: Option<unsafe extern "C" fn(_: *mut c_void, _: *mut u8, _: usize) -> i32>,
    p_rng: *mut c_void,
) -> i32
Expand description

\brief This function computes the ECDSA signature of a previously-hashed message.

\note The deterministic version implemented in mbedtls_ecdsa_sign_det_ext() is usually preferred.

\note If the bitlength of the message hash is larger than the bitlength of the group order, then the hash is truncated as defined in Standards for Efficient Cryptography Group (SECG): SEC1 Elliptic Curve Cryptography, section 4.1.3, step 5.

\see ecp.h

\param grp The context for the elliptic curve to use. This must be initialized and have group parameters set, for example through mbedtls_ecp_group_load(). \param r The MPI context in which to store the first part the signature. This must be initialized. \param s The MPI context in which to store the second part the signature. This must be initialized. \param d The private signing key. This must be initialized. \param buf The content to be signed. This is usually the hash of the original data to be signed. This must be a readable buffer of length \p blen Bytes. It may be \c NULL if \p blen is zero. \param blen The length of \p buf in Bytes. \param f_rng The RNG function. This 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 parameter.

\return \c 0 on success. \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX error code on failure.