  *  * \note On decryption, the output buffer cannot be the same as input buffer.  *       If buffers overlap, the output buffer must trail at least 0 bytes  *       behind the input buffer.  *  * \param ctx       GCM context  * \param length    length of the input data  * \param input     buffer holding the input data  * \param output    buffer for holding the output data  *  * \return         0 if successful or MBEDTLS_ERR_GCM_BAD_INPUT  */ int mbedtls_gcm_