PolarSSL v1.2.10
|
Galois/Counter mode for AES. More...
Go to the source code of this file.
Data Structures | |
struct | gcm_context |
GCM context structure. More... | |
Macros | |
#define | GCM_ENCRYPT 1 |
#define | GCM_DECRYPT 0 |
#define | POLARSSL_ERR_GCM_AUTH_FAILED -0x0012 |
Authenticated decryption failed. More... | |
#define | POLARSSL_ERR_GCM_BAD_INPUT -0x0014 |
Bad input parameters to function. More... | |
Functions | |
int | gcm_init (gcm_context *ctx, const unsigned char *key, unsigned int keysize) |
GCM initialization (encryption) More... | |
int | gcm_crypt_and_tag (gcm_context *ctx, int mode, size_t length, const unsigned char *iv, size_t iv_len, const unsigned char *add, size_t add_len, const unsigned char *input, unsigned char *output, size_t tag_len, unsigned char *tag) |
GCM buffer encryption/decryption using AES. More... | |
int | gcm_auth_decrypt (gcm_context *ctx, size_t length, const unsigned char *iv, size_t iv_len, const unsigned char *add, size_t add_len, const unsigned char *tag, size_t tag_len, const unsigned char *input, unsigned char *output) |
GCM buffer authenticated decryption using AES. More... | |
int | gcm_self_test (int verbose) |
Checkup routine. More... | |
Galois/Counter mode for AES.
Copyright (C) 2006-2012, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
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.
Definition in file gcm.h.
#define POLARSSL_ERR_GCM_AUTH_FAILED -0x0012 |
#define POLARSSL_ERR_GCM_BAD_INPUT -0x0014 |
int gcm_auth_decrypt | ( | gcm_context * | ctx, |
size_t | length, | ||
const unsigned char * | iv, | ||
size_t | iv_len, | ||
const unsigned char * | add, | ||
size_t | add_len, | ||
const unsigned char * | tag, | ||
size_t | tag_len, | ||
const unsigned char * | input, | ||
unsigned char * | output | ||
) |
GCM buffer authenticated decryption using AES.
ctx | GCM context |
length | length of the input data |
iv | initialization vector |
iv_len | length of IV |
add | additional data |
add_len | length of additional data |
tag | buffer holding the tag |
tag_len | length of the tag |
input | buffer holding the input data |
output | buffer for holding the output data |
int gcm_crypt_and_tag | ( | gcm_context * | ctx, |
int | mode, | ||
size_t | length, | ||
const unsigned char * | iv, | ||
size_t | iv_len, | ||
const unsigned char * | add, | ||
size_t | add_len, | ||
const unsigned char * | input, | ||
unsigned char * | output, | ||
size_t | tag_len, | ||
unsigned char * | tag | ||
) |
GCM buffer encryption/decryption using AES.
ctx | GCM context |
mode | GCM_ENCRYPT or GCM_DECRYPT |
length | length of the input data |
iv | initialization vector |
iv_len | length of IV |
add | additional data |
add_len | length of additional data |
input | buffer holding the input data |
output | buffer for holding the output data |
tag_len | length of the tag to generate |
tag | buffer for holding the tag |
int gcm_init | ( | gcm_context * | ctx, |
const unsigned char * | key, | ||
unsigned int | keysize | ||
) |
GCM initialization (encryption)
ctx | GCM context to be initialized |
key | encryption key |
keysize | must be 128, 192 or 256 |
int gcm_self_test | ( | int | verbose | ) |
Checkup routine.