Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
cipher_mode_gcm.c File Reference
Galois/Counter Mode (GCM) More...
Go to the source code of this file.
Functions | |
| error_t | gcmInit (GcmContext *context, const CipherAlgo *cipherAlgo, void *cipherContext) |
| Initialize GCM context. | |
| error_t | gcmEncrypt (GcmContext *context, const uint8_t *iv, size_t ivLen, const uint8_t *a, size_t aLen, const uint8_t *p, uint8_t *c, size_t length, uint8_t *t, size_t tLen) |
| Authenticated encryption using GCM. | |
| error_t | gcmDecrypt (GcmContext *context, const uint8_t *iv, size_t ivLen, const uint8_t *a, size_t aLen, const uint8_t *c, uint8_t *p, size_t length, const uint8_t *t, size_t tLen) |
| Authenticated decryption using GCM. | |
| void | gcmMul (GcmContext *context, uint8_t *x) |
| Multiplication operation. | |
| void | gcmXorBlock (uint8_t *x, const uint8_t *a, const uint8_t *b, size_t n) |
| XOR operation. | |
| void | gcmIncCounter (uint8_t *x) |
| Increment counter block. | |
Detailed Description
Galois/Counter Mode (GCM)
License
Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneCrypto Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Description
The Galois/Counter Mode (GCM) is an authenticated encryption algorithm designed to provide both data authenticity (integrity) and confidentiality. Refer to SP 800-38D for more details
- Version:
- 1.7.6
Definition in file cipher_mode_gcm.c.
Function Documentation
| error_t gcmDecrypt | ( | GcmContext * | context, |
| const uint8_t * | iv, | ||
| size_t | ivLen, | ||
| const uint8_t * | a, | ||
| size_t | aLen, | ||
| const uint8_t * | c, | ||
| uint8_t * | p, | ||
| size_t | length, | ||
| const uint8_t * | t, | ||
| size_t | tLen | ||
| ) |
Authenticated decryption using GCM.
- Parameters:
-
[in] context Pointer to the GCM context [in] iv Initialization vector [in] ivLen Length of the initialization vector [in] a Additional authenticated data [in] aLen Length of the additional data [in] c Ciphertext to be decrypted [out] p Plaintext resulting from the decryption [in] length Total number of data bytes to be decrypted [in] t Authentication tag [in] tLen Length of the authentication tag
- Returns:
- Error code
Make sure the GCM context is valid
Definition at line 333 of file cipher_mode_gcm.c.
| error_t gcmEncrypt | ( | GcmContext * | context, |
| const uint8_t * | iv, | ||
| size_t | ivLen, | ||
| const uint8_t * | a, | ||
| size_t | aLen, | ||
| const uint8_t * | p, | ||
| uint8_t * | c, | ||
| size_t | length, | ||
| uint8_t * | t, | ||
| size_t | tLen | ||
| ) |
Authenticated encryption using GCM.
- Parameters:
-
[in] context Pointer to the GCM context [in] iv Initialization vector [in] ivLen Length of the initialization vector [in] a Additional authenticated data [in] aLen Length of the additional data [in] p Plaintext to be encrypted [out] c Ciphertext resulting from the encryption [in] length Total number of data bytes to be encrypted [out] t Authentication tag [in] tLen Length of the authentication tag
- Returns:
- Error code
Definition at line 189 of file cipher_mode_gcm.c.
| void gcmIncCounter | ( | uint8_t * | x ) |
Increment counter block.
- Parameters:
-
[in,out] x Pointer to the counter block
Definition at line 554 of file cipher_mode_gcm.c.
| error_t gcmInit | ( | GcmContext * | context, |
| const CipherAlgo * | cipherAlgo, | ||
| void * | cipherContext | ||
| ) |
Initialize GCM context.
- Parameters:
-
[in] context Pointer to the GCM context [in] cipherAlgo Cipher algorithm [in] cipherContext Pointer to the cipher algorithm context
- Returns:
- Error code
Definition at line 77 of file cipher_mode_gcm.c.
| void gcmMul | ( | GcmContext * | context, |
| uint8_t * | x | ||
| ) |
Multiplication operation.
- Parameters:
-
[in] context Pointer to the GCM context [in,out] x 16-byte block to be multiplied by H
Definition at line 474 of file cipher_mode_gcm.c.
| void gcmXorBlock | ( | uint8_t * | x, |
| const uint8_t * | a, | ||
| const uint8_t * | b, | ||
| size_t | n | ||
| ) |
XOR operation.
- Parameters:
-
[out] x Block resulting from the XOR operation [in] a First block [in] b Second block [in] n Size of the block
Definition at line 539 of file cipher_mode_gcm.c.
Generated on Tue Jul 12 2022 17:10:19 by
1.7.2