summaryrefslogtreecommitdiff
path: root/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2014-08-11 13:49:21 -0400
committerMicah Anderson <micah@riseup.net>2014-08-11 13:49:21 -0400
commit2e59f9740a29439df7c7a56cf0ae83dec3081d31 (patch)
treed5e7c4e74c9a0f1ea999327d2e68b1dd27be00e0 /src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c
initial import of debian version from mentors0.6.1
Diffstat (limited to 'src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c')
-rw-r--r--src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c24
1 files changed, 24 insertions, 0 deletions
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);
+}