From 33479f263aff0e2c5354b9d22c43f759a05a4d52 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Fri, 12 Apr 2019 08:30:49 +0000 Subject: Modified AES GCM function signatures. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_19.1.x@12734 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- os/hal/templates/hal_crypto_lld.c | 91 ++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 44 deletions(-) (limited to 'os/hal/templates/hal_crypto_lld.c') diff --git a/os/hal/templates/hal_crypto_lld.c b/os/hal/templates/hal_crypto_lld.c index 3c2cb43c6..656561a7c 100644 --- a/os/hal/templates/hal_crypto_lld.c +++ b/os/hal/templates/hal_crypto_lld.c @@ -560,17 +560,16 @@ cryerror_t cry_lld_decrypt_AES_CTR(CRYDriver *cryp, * @param[in] key_id the key to be used for the operation, zero is * the transient key, other values are keys stored * in an unspecified way - * @param[in] size size of the text buffers, this number must be a + * @param[in] auth_size size of the data buffer to be authenticated + * @param[in] auth_in buffer containing the data to be authenticated + * @param[in] text_size size of the text buffer, this number must be a * multiple of 16 - * @param[in] in buffer containing the input plaintext - * @param[out] out buffer for the output cyphertext - * @param[in] iv 128 bits initial vector + counter, it contains - * a 96 bits IV and a 32 bits counter - * @param[in] aadsize size of the authentication data, this number - * must be a multiple of 16 - * @param[in] aad buffer containing the authentication data - * @param[in] authtag 128 bits buffer for the generated authentication - * tag + * @param[in] text_in buffer containing the input plaintext + * @param[out] text_out buffer for the output cyphertext + * @param[in] iv 128 bits input vector + * @param[in] tag_size size of the authentication tag, this number + * must be between 1 and 16 + * @param[out] tag_out buffer for the generated authentication tag * @return The operation status. * @retval CRY_NOERROR if the operation succeeded. * @retval CRY_ERR_INV_ALGO if the operation is unsupported on this @@ -585,23 +584,25 @@ cryerror_t cry_lld_decrypt_AES_CTR(CRYDriver *cryp, */ cryerror_t cry_lld_encrypt_AES_GCM(CRYDriver *cryp, crykey_t key_id, - size_t size, - const uint8_t *in, - uint8_t *out, + size_t auth_size, + const uint8_t *auth_in, + size_t text_size, + const uint8_t *text_in, + uint8_t *text_out, const uint8_t *iv, - size_t aadsize, - const uint8_t *aad, - uint8_t *authtag) { + size_t tag_size, + uint8_t *tag_out) { (void)cryp; (void)key_id; - (void)size; - (void)in; - (void)out; + (void)auth_size; + (void)auth_in; + (void)text_size; + (void)text_in; + (void)text_out; (void)iv; - (void)aadsize; - (void)aad; - (void)authtag; + (void)tag_size; + (void)tag_out; return CRY_ERR_INV_ALGO; } @@ -616,17 +617,16 @@ cryerror_t cry_lld_encrypt_AES_GCM(CRYDriver *cryp, * @param[in] key_id the key to be used for the operation, zero is * the transient key, other values are keys stored * in an unspecified way - * @param[in] size size of the text buffers, this number must be a + * @param[in] auth_size size of the data buffer to be authenticated + * @param[in] auth_in buffer containing the data to be authenticated + * @param[in] text_size size of the text buffer, this number must be a * multiple of 16 - * @param[in] in buffer for the output cyphertext - * @param[out] out buffer containing the input plaintext - * @param[in] iv 128 bits initial vector + counter, it contains - * a 96 bits IV and a 32 bits counter - * @param[in] aadsize size of the authentication data, this number - * must be a multiple of 16 - * @param[in] aad buffer containing the authentication data - * @param[in] authtag 128 bits buffer for the generated authentication - * tag + * @param[in] text_in buffer containing the input plaintext + * @param[out] text_out buffer for the output cyphertext + * @param[in] iv 128 bits input vector + * @param[in] tag_size size of the authentication tag, this number + * must be between 1 and 16 + * @param[in] tag_in buffer for the generated authentication tag * @return The operation status. * @retval CRY_NOERROR if the operation succeeded. * @retval CRY_ERR_INV_ALGO if the operation is unsupported on this @@ -634,6 +634,7 @@ cryerror_t cry_lld_encrypt_AES_GCM(CRYDriver *cryp, * @retval CRY_ERR_INV_KEY_TYPE the selected key is invalid for this operation. * @retval CRY_ERR_INV_KEY_ID if the specified key identifier is invalid * or refers to an empty key slot. + * @retval CRY_ERR_AUTH_FAILED authentication failed * @retval CRY_ERR_OP_FAILURE if the operation failed, implementation * dependent. * @@ -641,23 +642,25 @@ cryerror_t cry_lld_encrypt_AES_GCM(CRYDriver *cryp, */ cryerror_t cry_lld_decrypt_AES_GCM(CRYDriver *cryp, crykey_t key_id, - size_t size, - const uint8_t *in, - uint8_t *out, + size_t auth_size, + const uint8_t *auth_in, + size_t text_size, + const uint8_t *text_in, + uint8_t *text_out, const uint8_t *iv, - size_t aadsize, - const uint8_t *aad, - uint8_t *authtag) { + size_t tag_size, + const uint8_t *tag_in) { (void)cryp; (void)key_id; - (void)size; - (void)in; - (void)out; + (void)auth_size; + (void)auth_in; + (void)text_size; + (void)text_in; + (void)text_out; (void)iv; - (void)aadsize; - (void)aad; - (void)authtag; + (void)tag_size; + (void)tag_in; return CRY_ERR_INV_ALGO; } -- cgit v1.2.3