summaryrefslogtreecommitdiff
path: root/sys/include/ape/libsec.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-01-12 20:16:38 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2017-01-12 20:16:38 +0100
commit2e23780d2f4f1e3a55a096227a01995d0f0c2e52 (patch)
tree2f023d4aa9ba3ed49e1aada021203efb89b671a5 /sys/include/ape/libsec.h
parent47f07b2669e74eb957db56befa2237df5afa8474 (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.h6
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;
};