Function esp_idf_svc::hal::sys::mbedtls_ccm_star_auth_decrypt

source ยท
pub unsafe extern "C" fn mbedtls_ccm_star_auth_decrypt(
    ctx: *mut mbedtls_ccm_context,
    length: usize,
    iv: *const u8,
    iv_len: usize,
    ad: *const u8,
    ad_len: usize,
    input: *const u8,
    output: *mut u8,
    tag: *const u8,
    tag_len: usize,
) -> i32
Expand description

\brief This function performs a CCM* authenticated decryption of a buffer.

\note When using this function in a variable tag length context, the tag length has to be decoded from \p iv and passed to this function as \p tag_len. (\p tag needs to be adjusted accordingly.)

\param ctx The CCM context to use for decryption. This must be initialized and bound to a key. \param length The length of the input data in Bytes. For tag length = 0, input length is ignored. \param iv The initialization vector (nonce). This must be a readable buffer of at least \p iv_len Bytes. \param iv_len The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12, or 13. The length L of the message length field is 15 - \p iv_len. \param ad The additional data field. This must be a readable buffer of at least that \p ad_len Bytes. \param ad_len The length of additional data in Bytes. This must be less than 2^16 - 2^8. \param input The buffer holding the input data. If \p length is greater than zero, \p input must be a readable buffer of at least that length. \param output The buffer holding the output data. If \p length is greater than zero, \p output must be a writable buffer of at least that length. \param tag The buffer holding the authentication field. This must be a readable buffer of at least \p tag_len Bytes. \param tag_len The length of the authentication field in Bytes. 0, 4, 6, 8, 10, 12, 14 or 16.

\warning Passing \c 0 as \p tag_len means that the message is nos longer authenticated.

\return \c 0 on success. \return #MBEDTLS_ERR_CCM_AUTH_FAILED if the tag does not match. \return A cipher-specific error code on calculation failure.