summaryrefslogtreecommitdiff
path: root/nacl/crypto_stream/xsalsa20/ref
diff options
context:
space:
mode:
Diffstat (limited to 'nacl/crypto_stream/xsalsa20/ref')
-rw-r--r--nacl/crypto_stream/xsalsa20/ref/api.h2
-rw-r--r--nacl/crypto_stream/xsalsa20/ref/implementors1
-rw-r--r--nacl/crypto_stream/xsalsa20/ref/stream.c22
-rw-r--r--nacl/crypto_stream/xsalsa20/ref/xor.c23
4 files changed, 48 insertions, 0 deletions
diff --git a/nacl/crypto_stream/xsalsa20/ref/api.h b/nacl/crypto_stream/xsalsa20/ref/api.h
new file mode 100644
index 00000000..6910a7dc
--- /dev/null
+++ b/nacl/crypto_stream/xsalsa20/ref/api.h
@@ -0,0 +1,2 @@
1#define CRYPTO_KEYBYTES 32
2#define CRYPTO_NONCEBYTES 24
diff --git a/nacl/crypto_stream/xsalsa20/ref/implementors b/nacl/crypto_stream/xsalsa20/ref/implementors
new file mode 100644
index 00000000..f6fb3c73
--- /dev/null
+++ b/nacl/crypto_stream/xsalsa20/ref/implementors
@@ -0,0 +1 @@
Daniel J. Bernstein
diff --git a/nacl/crypto_stream/xsalsa20/ref/stream.c b/nacl/crypto_stream/xsalsa20/ref/stream.c
new file mode 100644
index 00000000..2d710709
--- /dev/null
+++ b/nacl/crypto_stream/xsalsa20/ref/stream.c
@@ -0,0 +1,22 @@
1/*
2version 20080914
3D. J. Bernstein
4Public domain.
5*/
6
7#include "crypto_core_hsalsa20.h"
8#include "crypto_stream_salsa20.h"
9#include "crypto_stream.h"
10
11static const unsigned char sigma[16] = "expand 32-byte k";
12
13int crypto_stream(
14 unsigned char *c,unsigned long long clen,
15 const unsigned char *n,
16 const unsigned char *k
17)
18{
19 unsigned char subkey[32];
20 crypto_core_hsalsa20(subkey,n,k,sigma);
21 return crypto_stream_salsa20(c,clen,n + 16,subkey);
22}
diff --git a/nacl/crypto_stream/xsalsa20/ref/xor.c b/nacl/crypto_stream/xsalsa20/ref/xor.c
new file mode 100644
index 00000000..13f3134a
--- /dev/null
+++ b/nacl/crypto_stream/xsalsa20/ref/xor.c
@@ -0,0 +1,23 @@
1/*
2version 20080913
3D. J. Bernstein
4Public domain.
5*/
6
7#include "crypto_core_hsalsa20.h"
8#include "crypto_stream_salsa20.h"
9#include "crypto_stream.h"
10
11static const unsigned char sigma[16] = "expand 32-byte k";
12
13int crypto_stream_xor(
14 unsigned char *c,
15 const unsigned char *m,unsigned long long mlen,
16 const unsigned char *n,
17 const unsigned char *k
18)
19{
20 unsigned char subkey[32];
21 crypto_core_hsalsa20(subkey,n,k,sigma);
22 return crypto_stream_salsa20_xor(c,m,mlen,n + 16,subkey);
23}