diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-01-12 20:16:38 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-01-12 20:16:38 +0100 |
commit | 2e23780d2f4f1e3a55a096227a01995d0f0c2e52 (patch) | |
tree | 2f023d4aa9ba3ed49e1aada021203efb89b671a5 /sys/include/ape/libsec.h | |
parent | 47f07b2669e74eb957db56befa2237df5afa8474 (diff) |
libsec: implement extended 192-bit nonce xchacha variant and hchacha function
Diffstat (limited to 'sys/include/ape/libsec.h')
-rw-r--r-- | sys/include/ape/libsec.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/include/ape/libsec.h b/sys/include/ape/libsec.h index 11e8b5f61..96007de48 100644 --- a/sys/include/ape/libsec.h +++ b/sys/include/ape/libsec.h @@ -101,6 +101,7 @@ enum ChachaBsize= 64, ChachaKeylen= 256/8, ChachaIVlen= 96/8, + XChachaIVlen= 192/8, }; typedef struct Chachastate Chachastate; @@ -115,6 +116,7 @@ struct Chachastate u32int iv[3]; }; }; + u32int xkey[8]; int rounds; int ivwords; }; @@ -125,6 +127,8 @@ void chacha_setblock(Chachastate*, u64int); void chacha_encrypt(uchar*, ulong, Chachastate*); void chacha_encrypt2(uchar*, uchar*, ulong, Chachastate*); +void hchacha(uchar h[32], uchar *key, ulong keylen, uchar nonce[16], int rounds); + void ccpoly_encrypt(uchar *dat, ulong ndat, uchar *aad, ulong naad, uchar tag[16], Chachastate *cs); int ccpoly_decrypt(uchar *dat, ulong ndat, uchar *aad, ulong naad, uchar tag[16], Chachastate *cs); @@ -143,7 +147,7 @@ typedef struct Salsastate Salsastate; struct Salsastate { u32int input[16]; - u32int key[8]; + u32int xkey[8]; int rounds; int ivwords; }; |