diff options
Diffstat (limited to 'debian/vendor-h2o/deps/picotls/deps/cifra/src/salsa20.h')
-rw-r--r-- | debian/vendor-h2o/deps/picotls/deps/cifra/src/salsa20.h | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/debian/vendor-h2o/deps/picotls/deps/cifra/src/salsa20.h b/debian/vendor-h2o/deps/picotls/deps/cifra/src/salsa20.h deleted file mode 100644 index 462d019..0000000 --- a/debian/vendor-h2o/deps/picotls/deps/cifra/src/salsa20.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * cifra - embedded cryptography library - * Written in 2014 by Joseph Birr-Pixton <jpixton@gmail.com> - * - * To the extent possible under law, the author(s) have dedicated all - * copyright and related and neighboring rights to this software to the - * public domain worldwide. This software is distributed without any - * warranty. - * - * You should have received a copy of the CC0 Public Domain Dedication - * along with this software. If not, see - * <http://creativecommons.org/publicdomain/zero/1.0/>. - */ - -#ifndef SALSA20_H -#define SALSA20_H - -#include <stdint.h> -#include <stddef.h> - -/** - * The Salsa20/Chacha20 stream ciphers - * =================================== - * - * These are similar stream ciphers by djb. - * - * A reduced round variant of Salsa20 (Salsa20/12) - * was selected as a finalist of the eSTREAM stream - * cipher competition. This implementation does - * the full 20 rounds. - * - * ChaCha20 is fundamentally like Salsa20, but - * has a tweaked round function to improve security - * margin without damaging performance. - */ - -/* Salsa20 core transform. */ -void cf_salsa20_core(const uint8_t key0[16], - const uint8_t key1[16], - const uint8_t nonce[16], - const uint8_t constant[16], - uint8_t out[64]); - -/* Chacha20 core transform. */ -void cf_chacha20_core(const uint8_t key0[16], - const uint8_t key1[16], - const uint8_t nonce[16], - const uint8_t constant[16], - uint8_t out[64]); - -/* .. c:type:: cf_salsa20_ctx - * Incremental interface to Salsa20. - * - * .. c:member:: cf_salsa20_ctx.key0 - * Half of key material. - * - * .. c:member:: cf_salsa20_ctx.key1 - * Half of key material. - * - * .. c:member:: cf_salsa20_ctx.nonce - * Nonce and counter block. - * - * .. c:member:: cf_salsa20_ctx.constant - * Per-key-length constants. - * - * .. c:member:: cf_salsa20_ctx.block - * Buffer for unused key stream material. - * - * .. c:member:: cf_salsa20_ctx.nblock - * Number of bytes at end of `block` that can be used as key stream. - * - */ -typedef struct -{ - uint8_t key0[16], key1[16]; - uint8_t nonce[16]; - const uint8_t *constant; - uint8_t block[64]; - size_t nblock; - size_t ncounter; -} cf_salsa20_ctx, cf_chacha20_ctx; - -/* .. c:type:: cf_chacha20_ctx - * Incremental interface to Chacha20. This structure - * is identical to :c:type:`cf_salsa20_ctx`. - */ - -/* .. c:function:: $DECL - * Salsa20 initialisation function. - * - * :param ctx: salsa20 context. - * :param key: key material. - * :param nkey: length of key in bytes, either 16 or 32. - * :param nonce: per-message nonce. - */ -void cf_salsa20_init(cf_salsa20_ctx *ctx, const uint8_t *key, size_t nkey, const uint8_t nonce[8]); - -/* .. c:function:: $DECL - * Chacha20 initialisation function. - * - * :param ctx: chacha20 context (written). - * :param key: key material. - * :param nkey: length of key in bytes, either 16 or 32. - * :param nonce: per-message nonce. - */ -void cf_chacha20_init(cf_chacha20_ctx *ctx, const uint8_t *key, size_t nkey, const uint8_t nonce[8]); - -/* .. c:function:: $DECL - * Chacha20 initialisation function. This version gives full control over the whole - * initial nonce value, and the size of the counter. The counter is always at the front - * of the nonce. - * - * :param ctx: chacha20 context (written). - * :param key: key material. - * :param nkey: length of key in bytes, either 16 or 32. - * :param nonce: per-message nonce. `ncounter` bytes at the start are the block counter. - * :param ncounter: length, in bytes, of the counter portion of the nonce. - */ -void cf_chacha20_init_custom(cf_chacha20_ctx *ctx, const uint8_t *key, size_t nkey, - const uint8_t nonce[16], size_t ncounter); - -/* .. c:function:: $DECL - * Salsa20 encryption/decryption function. - * - * :param ctx: salsa20 context. - * :param input: input data buffer (read), `count` bytes long. - * :param output: output data buffer (written), `count` bytes long. - */ -void cf_salsa20_cipher(cf_salsa20_ctx *ctx, const uint8_t *input, uint8_t *output, size_t count); - -/* .. c:function:: $DECL - * Chacha20 encryption/decryption function. - * - * :param ctx: chacha20 context. - * :param input: input data buffer (read), `count` bytes long. - * :param output: output data buffer (written), `count` bytes long. - */ -void cf_chacha20_cipher(cf_chacha20_ctx *ctx, const uint8_t *input, uint8_t *output, size_t count); - -#endif |