summaryrefslogtreecommitdiff
path: root/sys/include/libsec.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-10-22 07:48:26 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-10-22 07:48:26 +0200
commit847f3a0cf54ac6aaafaeda7f6c6a4422e2f14700 (patch)
treee3d7c7a64a11b083fdc735e6f66d16fcd358af05 /sys/include/libsec.h
parent7effba9d98e8a39ee1504192d02d40e86d90b19a (diff)
libsec: add chacha cipher (from charles forsyth)
Diffstat (limited to 'sys/include/libsec.h')
-rw-r--r--sys/include/libsec.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/sys/include/libsec.h b/sys/include/libsec.h
index 127395bef..359a8aa61 100644
--- a/sys/include/libsec.h
+++ b/sys/include/libsec.h
@@ -71,6 +71,37 @@ void bfECBencrypt(uchar*, int, BFstate*);
void bfECBdecrypt(uchar*, int, BFstate*);
/*
+ * Chacha definitions
+ */
+
+enum
+{
+ ChachaBsize= 64,
+ ChachaKeylen= 256/8,
+ ChachaIVlen= 96/8,
+};
+
+typedef struct Chachastate Chachastate;
+struct Chachastate
+{
+ union{
+ u32int input[16];
+ struct {
+ u32int constant[4];
+ u32int key[8];
+ u32int counter;
+ u32int iv[3];
+ };
+ };
+ int rounds;
+};
+
+void setupChachastate(Chachastate*, uchar*, ulong, uchar*, int);
+void chacha_setblock(Chachastate*, u32int);
+void chacha_encrypt(uchar*, ulong, Chachastate*);
+void chacha_encrypt2(uchar*, uchar*, ulong, Chachastate*);
+
+/*
* DES definitions
*/