summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/chacha
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/chacha')
-rw-r--r--src/lib/libcrypto/chacha/chacha.c20
-rw-r--r--src/lib/libcrypto/chacha/chacha.h11
2 files changed, 31 insertions, 0 deletions
diff --git a/src/lib/libcrypto/chacha/chacha.c b/src/lib/libcrypto/chacha/chacha.c
index d76d64de4a..1bc95f502d 100644
--- a/src/lib/libcrypto/chacha/chacha.c
+++ b/src/lib/libcrypto/chacha/chacha.c
@@ -14,9 +14,29 @@
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */ 15 */
16 16
17#include "chacha.h"
17#include "chacha-merged.c" 18#include "chacha-merged.c"
18 19
19void 20void
21ChaCha_set_key(ChaCha_ctx *ctx, const unsigned char *key, uint32_t keybits)
22{
23 chacha_keysetup((chacha_ctx *)ctx, key, keybits);
24}
25
26void
27ChaCha_set_iv(ChaCha_ctx *ctx, const unsigned char *iv,
28 const unsigned char *counter)
29{
30 chacha_ivsetup((chacha_ctx *)ctx, iv, counter);
31}
32
33void
34ChaCha(ChaCha_ctx *ctx, unsigned char *out, const unsigned char *in, size_t len)
35{
36 chacha_encrypt_bytes((chacha_ctx *)ctx, in, out, (uint32_t)len);
37}
38
39void
20CRYPTO_chacha_20(unsigned char *out, const unsigned char *in, size_t len, 40CRYPTO_chacha_20(unsigned char *out, const unsigned char *in, size_t len,
21 const unsigned char key[32], const unsigned char iv[8], size_t counter) 41 const unsigned char key[32], const unsigned char iv[8], size_t counter)
22{ 42{
diff --git a/src/lib/libcrypto/chacha/chacha.h b/src/lib/libcrypto/chacha/chacha.h
index d66a719ae4..456d960ed9 100644
--- a/src/lib/libcrypto/chacha/chacha.h
+++ b/src/lib/libcrypto/chacha/chacha.h
@@ -29,6 +29,17 @@
29extern "C" { 29extern "C" {
30#endif 30#endif
31 31
32typedef struct {
33 unsigned int input[16];
34} ChaCha_ctx;
35
36void ChaCha_set_key(ChaCha_ctx *ctx, const unsigned char *key,
37 unsigned int keybits);
38void ChaCha_set_iv(ChaCha_ctx *ctx, const unsigned char *iv,
39 const unsigned char *counter);
40void ChaCha(ChaCha_ctx *ctx, unsigned char *out, const unsigned char *in,
41 size_t len);
42
32void CRYPTO_chacha_20(unsigned char *out, const unsigned char *in, size_t len, 43void CRYPTO_chacha_20(unsigned char *out, const unsigned char *in, size_t len,
33 const unsigned char key[32], const unsigned char iv[8], size_t counter); 44 const unsigned char key[32], const unsigned char iv[8], size_t counter);
34 45