diff options
Diffstat (limited to 'nacl/crypto_secretbox/xsalsa20poly1305')
-rw-r--r-- | nacl/crypto_secretbox/xsalsa20poly1305/checksum | 1 | ||||
-rw-r--r-- | nacl/crypto_secretbox/xsalsa20poly1305/ref/api.h | 4 | ||||
-rw-r--r-- | nacl/crypto_secretbox/xsalsa20poly1305/ref/box.c | 35 | ||||
-rw-r--r-- | nacl/crypto_secretbox/xsalsa20poly1305/selected | 0 | ||||
-rw-r--r-- | nacl/crypto_secretbox/xsalsa20poly1305/used | 0 |
5 files changed, 40 insertions, 0 deletions
diff --git a/nacl/crypto_secretbox/xsalsa20poly1305/checksum b/nacl/crypto_secretbox/xsalsa20poly1305/checksum new file mode 100644 index 00000000..af3c6897 --- /dev/null +++ b/nacl/crypto_secretbox/xsalsa20poly1305/checksum | |||
@@ -0,0 +1 @@ | |||
df372f95dd87381b7c9ceb6f340ccaa03d19bed5d9e4ab004d99d847675a9658 | |||
diff --git a/nacl/crypto_secretbox/xsalsa20poly1305/ref/api.h b/nacl/crypto_secretbox/xsalsa20poly1305/ref/api.h new file mode 100644 index 00000000..f5aeb356 --- /dev/null +++ b/nacl/crypto_secretbox/xsalsa20poly1305/ref/api.h | |||
@@ -0,0 +1,4 @@ | |||
1 | #define CRYPTO_KEYBYTES 32 | ||
2 | #define CRYPTO_NONCEBYTES 24 | ||
3 | #define CRYPTO_ZEROBYTES 32 | ||
4 | #define CRYPTO_BOXZEROBYTES 16 | ||
diff --git a/nacl/crypto_secretbox/xsalsa20poly1305/ref/box.c b/nacl/crypto_secretbox/xsalsa20poly1305/ref/box.c new file mode 100644 index 00000000..f1abb06f --- /dev/null +++ b/nacl/crypto_secretbox/xsalsa20poly1305/ref/box.c | |||
@@ -0,0 +1,35 @@ | |||
1 | #include "crypto_onetimeauth_poly1305.h" | ||
2 | #include "crypto_stream_xsalsa20.h" | ||
3 | #include "crypto_secretbox.h" | ||
4 | |||
5 | int crypto_secretbox( | ||
6 | unsigned char *c, | ||
7 | const unsigned char *m,unsigned long long mlen, | ||
8 | const unsigned char *n, | ||
9 | const unsigned char *k | ||
10 | ) | ||
11 | { | ||
12 | int i; | ||
13 | if (mlen < 32) return -1; | ||
14 | crypto_stream_xsalsa20_xor(c,m,mlen,n,k); | ||
15 | crypto_onetimeauth_poly1305(c + 16,c + 32,mlen - 32,c); | ||
16 | for (i = 0;i < 16;++i) c[i] = 0; | ||
17 | return 0; | ||
18 | } | ||
19 | |||
20 | int crypto_secretbox_open( | ||
21 | unsigned char *m, | ||
22 | const unsigned char *c,unsigned long long clen, | ||
23 | const unsigned char *n, | ||
24 | const unsigned char *k | ||
25 | ) | ||
26 | { | ||
27 | int i; | ||
28 | unsigned char subkey[32]; | ||
29 | if (clen < 32) return -1; | ||
30 | crypto_stream_xsalsa20(subkey,32,n,k); | ||
31 | if (crypto_onetimeauth_poly1305_verify(c + 16,c + 32,clen - 32,subkey) != 0) return -1; | ||
32 | crypto_stream_xsalsa20_xor(m,c,clen,n,k); | ||
33 | for (i = 0;i < 32;++i) m[i] = 0; | ||
34 | return 0; | ||
35 | } | ||
diff --git a/nacl/crypto_secretbox/xsalsa20poly1305/selected b/nacl/crypto_secretbox/xsalsa20poly1305/selected new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/nacl/crypto_secretbox/xsalsa20poly1305/selected | |||
diff --git a/nacl/crypto_secretbox/xsalsa20poly1305/used b/nacl/crypto_secretbox/xsalsa20poly1305/used new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/nacl/crypto_secretbox/xsalsa20poly1305/used | |||