summaryrefslogtreecommitdiff
path: root/src/libsodium/crypto_stream/xsalsa20/ref
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsodium/crypto_stream/xsalsa20/ref')
-rw-r--r--src/libsodium/crypto_stream/xsalsa20/ref/api.h10
-rw-r--r--src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c24
-rw-r--r--src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c25
3 files changed, 59 insertions, 0 deletions
diff --git a/src/libsodium/crypto_stream/xsalsa20/ref/api.h b/src/libsodium/crypto_stream/xsalsa20/ref/api.h
new file mode 100644
index 0000000..58915f3
--- /dev/null
+++ b/src/libsodium/crypto_stream/xsalsa20/ref/api.h
@@ -0,0 +1,10 @@
+
+#include "crypto_stream_xsalsa20.h"
+
+#define crypto_stream crypto_stream_xsalsa20
+#define crypto_stream_xor crypto_stream_xsalsa20_xor
+#define crypto_stream_KEYBYTES crypto_stream_xsalsa20_KEYBYTES
+#define crypto_stream_NONCEBYTES crypto_stream_xsalsa20_NONCEBYTES
+#define crypto_stream_IMPLEMENTATION crypto_stream_xsalsa20_IMPLEMENTATION
+#define crypto_stream_VERSION crypto_stream_xsalsa20_VERSION
+
diff --git a/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c b/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c
new file mode 100644
index 0000000..50f8788
--- /dev/null
+++ b/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c
@@ -0,0 +1,24 @@
+/*
+version 20080914
+D. J. Bernstein
+Public domain.
+*/
+
+#include "api.h"
+#include "crypto_core_hsalsa20.h"
+#include "crypto_stream_salsa20.h"
+
+static const unsigned char sigma[16] = {
+ 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3', '2', '-', 'b', 'y', 't', 'e', ' ', 'k'
+};
+
+int crypto_stream(
+ unsigned char *c,unsigned long long clen,
+ const unsigned char *n,
+ const unsigned char *k
+)
+{
+ unsigned char subkey[32];
+ crypto_core_hsalsa20(subkey,n,k,sigma);
+ return crypto_stream_salsa20(c,clen,n + 16,subkey);
+}
diff --git a/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c b/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c
new file mode 100644
index 0000000..14cce18
--- /dev/null
+++ b/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c
@@ -0,0 +1,25 @@
+/*
+version 20080913
+D. J. Bernstein
+Public domain.
+*/
+
+#include "api.h"
+#include "crypto_core_hsalsa20.h"
+#include "crypto_stream_salsa20.h"
+
+static const unsigned char sigma[16] = {
+ 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3', '2', '-', 'b', 'y', 't', 'e', ' ', 'k'
+};
+
+int crypto_stream_xor(
+ unsigned char *c,
+ const unsigned char *m,unsigned long long mlen,
+ const unsigned char *n,
+ const unsigned char *k
+)
+{
+ unsigned char subkey[32];
+ crypto_core_hsalsa20(subkey,n,k,sigma);
+ return crypto_stream_salsa20_xor(c,m,mlen,n + 16,subkey);
+}