diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-10-22 07:48:26 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-10-22 07:48:26 +0200 |
commit | 847f3a0cf54ac6aaafaeda7f6c6a4422e2f14700 (patch) | |
tree | e3d7c7a64a11b083fdc735e6f66d16fcd358af05 /sys/include/libsec.h | |
parent | 7effba9d98e8a39ee1504192d02d40e86d90b19a (diff) |
libsec: add chacha cipher (from charles forsyth)
Diffstat (limited to 'sys/include/libsec.h')
-rw-r--r-- | sys/include/libsec.h | 31 |
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 */ |