summaryrefslogtreecommitdiff
path: root/libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c')
-rw-r--r--libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c212
1 files changed, 106 insertions, 106 deletions
diff --git a/libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c b/libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c
index 7ec0c4e78e..e52a573d40 100644
--- a/libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c
+++ b/libs/libsodium/src/crypto_stream/salsa208/ref/stream_salsa208_ref.c
@@ -1,106 +1,106 @@
-/*
-version 20140420
-D. J. Bernstein
-Public domain.
-*/
-
-#include <stdint.h>
-
-#include "crypto_core_salsa208.h"
-#include "crypto_stream_salsa208.h"
-#include "utils.h"
-
-int
-crypto_stream_salsa208(unsigned char *c, unsigned long long clen,
- const unsigned char *n, const unsigned char *k)
-{
- unsigned char in[16];
- unsigned char block[64];
- unsigned char kcopy[32];
- unsigned int i;
- unsigned int u;
-
- if (!clen) {
- return 0;
- }
- for (i = 0; i < 32; ++i) {
- kcopy[i] = k[i];
- }
- for (i = 0; i < 8; ++i) {
- in[i] = n[i];
- }
- for (i = 8; i < 16; ++i) {
- in[i] = 0;
- }
- while (clen >= 64) {
- crypto_core_salsa208(c, in, kcopy, NULL);
- u = 1;
- for (i = 8; i < 16; ++i) {
- u += (unsigned int)in[i];
- in[i] = u;
- u >>= 8;
- }
- clen -= 64;
- c += 64;
- }
- if (clen) {
- crypto_core_salsa208(block, in, kcopy, NULL);
- for (i = 0; i < (unsigned int)clen; ++i) {
- c[i] = block[i];
- }
- }
- sodium_memzero(block, sizeof block);
- sodium_memzero(kcopy, sizeof kcopy);
-
- return 0;
-}
-
-int
-crypto_stream_salsa208_xor(unsigned char *c, const unsigned char *m,
- unsigned long long mlen, const unsigned char *n,
- const unsigned char *k)
-{
- unsigned char in[16];
- unsigned char block[64];
- unsigned char kcopy[32];
- unsigned int i;
- unsigned int u;
-
- if (!mlen) {
- return 0;
- }
- for (i = 0; i < 32; ++i) {
- kcopy[i] = k[i];
- }
- for (i = 0; i < 8; ++i) {
- in[i] = n[i];
- }
- for (i = 8; i < 16; ++i) {
- in[i] = 0;
- }
- while (mlen >= 64) {
- crypto_core_salsa208(block, in, kcopy, NULL);
- for (i = 0; i < 64; ++i) {
- c[i] = m[i] ^ block[i];
- }
- u = 1;
- for (i = 8; i < 16; ++i) {
- u += (unsigned int)in[i];
- in[i] = u;
- u >>= 8;
- }
- mlen -= 64;
- c += 64;
- m += 64;
- }
- if (mlen) {
- crypto_core_salsa208(block, in, kcopy, NULL);
- for (i = 0; i < (unsigned int)mlen; ++i) {
- c[i] = m[i] ^ block[i];
- }
- }
- sodium_memzero(block, sizeof block);
- sodium_memzero(kcopy, sizeof kcopy);
-
- return 0;
-}
+/*
+version 20140420
+D. J. Bernstein
+Public domain.
+*/
+
+#include <stdint.h>
+
+#include "crypto_core_salsa208.h"
+#include "crypto_stream_salsa208.h"
+#include "utils.h"
+
+int
+crypto_stream_salsa208(unsigned char *c, unsigned long long clen,
+ const unsigned char *n, const unsigned char *k)
+{
+ unsigned char in[16];
+ unsigned char block[64];
+ unsigned char kcopy[32];
+ unsigned int i;
+ unsigned int u;
+
+ if (!clen) {
+ return 0;
+ }
+ for (i = 0; i < 32; ++i) {
+ kcopy[i] = k[i];
+ }
+ for (i = 0; i < 8; ++i) {
+ in[i] = n[i];
+ }
+ for (i = 8; i < 16; ++i) {
+ in[i] = 0;
+ }
+ while (clen >= 64) {
+ crypto_core_salsa208(c, in, kcopy, NULL);
+ u = 1;
+ for (i = 8; i < 16; ++i) {
+ u += (unsigned int)in[i];
+ in[i] = u;
+ u >>= 8;
+ }
+ clen -= 64;
+ c += 64;
+ }
+ if (clen) {
+ crypto_core_salsa208(block, in, kcopy, NULL);
+ for (i = 0; i < (unsigned int)clen; ++i) {
+ c[i] = block[i];
+ }
+ }
+ sodium_memzero(block, sizeof block);
+ sodium_memzero(kcopy, sizeof kcopy);
+
+ return 0;
+}
+
+int
+crypto_stream_salsa208_xor(unsigned char *c, const unsigned char *m,
+ unsigned long long mlen, const unsigned char *n,
+ const unsigned char *k)
+{
+ unsigned char in[16];
+ unsigned char block[64];
+ unsigned char kcopy[32];
+ unsigned int i;
+ unsigned int u;
+
+ if (!mlen) {
+ return 0;
+ }
+ for (i = 0; i < 32; ++i) {
+ kcopy[i] = k[i];
+ }
+ for (i = 0; i < 8; ++i) {
+ in[i] = n[i];
+ }
+ for (i = 8; i < 16; ++i) {
+ in[i] = 0;
+ }
+ while (mlen >= 64) {
+ crypto_core_salsa208(block, in, kcopy, NULL);
+ for (i = 0; i < 64; ++i) {
+ c[i] = m[i] ^ block[i];
+ }
+ u = 1;
+ for (i = 8; i < 16; ++i) {
+ u += (unsigned int)in[i];
+ in[i] = u;
+ u >>= 8;
+ }
+ mlen -= 64;
+ c += 64;
+ m += 64;
+ }
+ if (mlen) {
+ crypto_core_salsa208(block, in, kcopy, NULL);
+ for (i = 0; i < (unsigned int)mlen; ++i) {
+ c[i] = m[i] ^ block[i];
+ }
+ }
+ sodium_memzero(block, sizeof block);
+ sodium_memzero(kcopy, sizeof kcopy);
+
+ return 0;
+}