diff options
Diffstat (limited to 'nacl/crypto_stream/xsalsa20/ref')
-rw-r--r-- | nacl/crypto_stream/xsalsa20/ref/api.h | 2 | ||||
-rw-r--r-- | nacl/crypto_stream/xsalsa20/ref/implementors | 1 | ||||
-rw-r--r-- | nacl/crypto_stream/xsalsa20/ref/stream.c | 22 | ||||
-rw-r--r-- | nacl/crypto_stream/xsalsa20/ref/xor.c | 23 |
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 | /* | ||
2 | version 20080914 | ||
3 | D. J. Bernstein | ||
4 | Public domain. | ||
5 | */ | ||
6 | |||
7 | #include "crypto_core_hsalsa20.h" | ||
8 | #include "crypto_stream_salsa20.h" | ||
9 | #include "crypto_stream.h" | ||
10 | |||
11 | static const unsigned char sigma[16] = "expand 32-byte k"; | ||
12 | |||
13 | int 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 | /* | ||
2 | version 20080913 | ||
3 | D. J. Bernstein | ||
4 | Public domain. | ||
5 | */ | ||
6 | |||
7 | #include "crypto_core_hsalsa20.h" | ||
8 | #include "crypto_stream_salsa20.h" | ||
9 | #include "crypto_stream.h" | ||
10 | |||
11 | static const unsigned char sigma[16] = "expand 32-byte k"; | ||
12 | |||
13 | int 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 | } | ||