1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
* License, v. 2.0. If a copy of the MPL was not distributed with this
3
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
10
typedef struct GCMContextStr GCMContext;
13
* The context argument is the inner cipher context to use with cipher. The
14
* GCMContext does not own context. context needs to remain valid for as long
15
* as the GCMContext is valid.
17
* The cipher argument is a block cipher in the ECB encrypt mode.
19
GCMContext * GCM_CreateContext(void *context, freeblCipherFunc cipher,
20
const unsigned char *params, unsigned int blocksize);
21
void GCM_DestroyContext(GCMContext *gcm, PRBool freeit);
22
SECStatus GCM_EncryptUpdate(GCMContext *gcm, unsigned char *outbuf,
23
unsigned int *outlen, unsigned int maxout,
24
const unsigned char *inbuf, unsigned int inlen,
25
unsigned int blocksize);
26
SECStatus GCM_DecryptUpdate(GCMContext *gcm, unsigned char *outbuf,
27
unsigned int *outlen, unsigned int maxout,
28
const unsigned char *inbuf, unsigned int inlen,
29
unsigned int blocksize);