add portable AES-GCM (Galois/Counter Mode) implementation to libsec and devtls
This commit is contained in:
parent
7ff779ff52
commit
aa6673fcfb
7 changed files with 669 additions and 22 deletions
|
@ -27,7 +27,7 @@ struct AESstate
|
|||
ulong ekey[4*(AESmaxrounds + 1)]; /* encryption key */
|
||||
ulong dkey[4*(AESmaxrounds + 1)]; /* decryption key */
|
||||
uchar ivec[AESbsize]; /* initialization vector */
|
||||
uchar mackey[3 * AESbsize]; /* 3 XCBC mac 96 keys */
|
||||
uchar mackey[3 * AESbsize]; /* 3 XCBC mac 96 keys */
|
||||
};
|
||||
|
||||
/* block ciphers */
|
||||
|
@ -41,6 +41,20 @@ void aesCBCdecrypt(uchar *p, int len, AESstate *s);
|
|||
void setupAESXCBCstate(AESstate *s);
|
||||
uchar* aesXCBCmac(uchar *p, int len, AESstate *s);
|
||||
|
||||
typedef struct AESGCMstate AESGCMstate;
|
||||
struct AESGCMstate
|
||||
{
|
||||
AESstate;
|
||||
|
||||
ulong H[4];
|
||||
ulong M[16][256][4];
|
||||
};
|
||||
|
||||
void setupAESGCMstate(AESGCMstate *s, uchar *key, int keylen, uchar *iv, int ivlen);
|
||||
void aesgcm_setiv(AESGCMstate *s, uchar *iv, int ivlen);
|
||||
void aesgcm_encrypt(uchar *dat, ulong ndat, uchar *aad, ulong naad, uchar tag[16], AESGCMstate *s);
|
||||
int aesgcm_decrypt(uchar *dat, ulong ndat, uchar *aad, ulong naad, uchar tag[16], AESGCMstate *s);
|
||||
|
||||
/*
|
||||
* Blowfish Definitions
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue