From 847f3a0cf54ac6aaafaeda7f6c6a4422e2f14700 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 22 Oct 2015 07:48:26 +0200 Subject: libsec: add chacha cipher (from charles forsyth) --- sys/include/libsec.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'sys/include/libsec.h') 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 @@ -70,6 +70,37 @@ void bfCBCdecrypt(uchar*, int, BFstate*); 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 */ -- cgit v1.2.3