diff options
author | Matt Johnston <matt@ucc.asn.au> | 2018-02-09 21:44:05 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2018-02-09 21:44:05 +0800 |
commit | 82ce1e2bdeb6ca01a0fca49be7e5ab609f5e088f (patch) | |
tree | d4be3a9369f274cccf02931239a4898830f8c032 /libtomcrypt/src/stream/chacha/chacha_keystream.c | |
parent | ea980c648234da9c6925dac0a27f33ed01cb79d3 (diff) | |
download | dropbear-82ce1e2bdeb6ca01a0fca49be7e5ab609f5e088f.tar.gz |
Update to libtomcrypt 1.18.1, merged with Dropbear changes
Diffstat (limited to 'libtomcrypt/src/stream/chacha/chacha_keystream.c')
-rw-r--r-- | libtomcrypt/src/stream/chacha/chacha_keystream.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/libtomcrypt/src/stream/chacha/chacha_keystream.c b/libtomcrypt/src/stream/chacha/chacha_keystream.c new file mode 100644 index 0000000..25eb63a --- /dev/null +++ b/libtomcrypt/src/stream/chacha/chacha_keystream.c @@ -0,0 +1,38 @@ +/* LibTomCrypt, modular cryptographic library -- Tom St Denis + * + * LibTomCrypt is a library that provides various cryptographic + * algorithms in a highly modular and flexible manner. + * + * The library is free for all purposes without any express + * guarantee it works. + */ + +/* The implementation is based on: + * chacha-ref.c version 20080118 + * Public domain from D. J. Bernstein + */ + +#include "tomcrypt.h" + +#ifdef LTC_CHACHA + +/** + Generate a stream of random bytes via ChaCha + @param st The ChaCha20 state + @param out [out] The output buffer + @param outlen The output length + @return CRYPT_OK on success + */ +int chacha_keystream(chacha_state *st, unsigned char *out, unsigned long outlen) +{ + if (outlen == 0) return CRYPT_OK; /* nothing to do */ + LTC_ARGCHK(out != NULL); + XMEMSET(out, 0, outlen); + return chacha_crypt(st, out, outlen, out); +} + +#endif + +/* ref: $Format:%D$ */ +/* git commit: $Format:%H$ */ +/* commit time: $Format:%ai$ */ |