rbnacl-libsodium 0.5.0.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +4 -0
- data/lib/rbnacl/libsodium/version.rb +1 -1
- data/vendor/libsodium/AUTHORS +62 -81
- data/vendor/libsodium/ChangeLog +31 -1
- data/vendor/libsodium/README.markdown +15 -364
- data/vendor/libsodium/THANKS +6 -0
- data/vendor/libsodium/autom4te.cache/output.0 +67 -36
- data/vendor/libsodium/autom4te.cache/output.1 +67 -36
- data/vendor/libsodium/autom4te.cache/output.2 +67 -36
- data/vendor/libsodium/autom4te.cache/traces.0 +52 -51
- data/vendor/libsodium/autom4te.cache/traces.1 +137 -133
- data/vendor/libsodium/autom4te.cache/traces.2 +52 -51
- data/vendor/libsodium/builds/msvc/version.h +2 -2
- data/vendor/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj +365 -345
- data/vendor/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters +1114 -1037
- data/vendor/libsodium/builds/msvc/vs2010/test/test.props +8 -2
- data/vendor/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj +364 -344
- data/vendor/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters +1113 -1036
- data/vendor/libsodium/builds/msvc/vs2012/test/test.props +8 -2
- data/vendor/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj +365 -345
- data/vendor/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters +1114 -1037
- data/vendor/libsodium/builds/msvc/vs2013/test/test.props +8 -2
- data/vendor/libsodium/configure +66 -35
- data/vendor/libsodium/configure.ac +25 -14
- data/vendor/libsodium/dist-build/ios.sh +1 -1
- data/vendor/libsodium/dist-build/msys2-win64.sh +1 -1
- data/vendor/libsodium/libsodium.vcxproj +29 -14
- data/vendor/libsodium/libsodium.vcxproj.filters +77 -28
- data/vendor/libsodium/msvc-scripts/process.bat +3 -3
- data/vendor/libsodium/packaging/nuget/package.config +1 -1
- data/vendor/libsodium/packaging/nuget/package.gsl +6 -1
- data/vendor/libsodium/packaging/nuget/package.nuspec +1 -1
- data/vendor/libsodium/src/libsodium/Makefile.am +31 -13
- data/vendor/libsodium/src/libsodium/Makefile.in +406 -155
- data/vendor/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c +146 -0
- data/vendor/libsodium/src/libsodium/crypto_box/crypto_box.c +13 -0
- data/vendor/libsodium/src/libsodium/crypto_box/crypto_box_easy.c +39 -73
- data/vendor/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c +5 -0
- data/vendor/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/api.h +2 -0
- data/vendor/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c +15 -0
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c +6 -5
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2s-ref.c +6 -5
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c +25 -0
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/auth_poly1305_donna.c +76 -47
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h +30 -7
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h +3 -16
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h +3 -10
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/verify_poly1305_donna.c +11 -6
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c +23 -1
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305_try.c +1 -1
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256 → scryptsalsa208sha256}/crypto_scrypt-common.c +7 -7
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256 → scryptsalsa208sha256}/crypto_scrypt.h +6 -20
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256/nosse/pwhash_scryptxsalsa208sha256_nosse.c → scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c} +0 -0
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256 → scryptsalsa208sha256}/pbkdf2-sha256.c +1 -11
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256 → scryptsalsa208sha256}/pbkdf2-sha256.h +0 -0
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256/pwhash_scryptxsalsa208sha256.c → scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c} +50 -25
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256 → scryptsalsa208sha256}/scrypt_platform.c +4 -0
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256/sse/pwhash_scryptxsalsa208sha256_sse.c → scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c} +0 -0
- data/vendor/libsodium/src/libsodium/crypto_pwhash/{scryptxsalsa208sha256 → scryptsalsa208sha256}/sysendian.h +0 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/smult_curve25519_donna_c64.c +1 -1
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/{ref → ref10}/api.h +0 -3
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/base_curve25519_ref10.c +14 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe.h +44 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_0_curve25519_ref10.c +23 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_1_curve25519_ref10.c +23 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_add_curve25519_ref10.c +61 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_copy_curve25519_ref10.c +33 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_cswap_curve25519_ref10.c +77 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_frombytes_curve25519_ref10.c +73 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_invert_curve25519_ref10.c +18 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_mul121666_curve25519_ref10.c +74 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_mul_curve25519_ref10.c +257 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_sq_curve25519_ref10.c +153 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_sub_curve25519_ref10.c +61 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_tobytes_curve25519_ref10.c +123 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/montgomery.h +140 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/pow225521.h +160 -0
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/scalarmult_curve25519_ref10.c +54 -0
- data/vendor/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c +92 -61
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_scalarmult_base.c +3 -3
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/pow22523.h +2 -2
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/pow225521.h +2 -2
- data/vendor/libsodium/src/libsodium/crypto_sign/edwards25519sha512batch/ref/sc25519_edwards25519sha512batch.c +8 -4
- data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c +3 -3
- data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128.h +6 -3
- data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c +23 -23
- data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/ref/api.h +12 -0
- data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c +275 -0
- data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20_api.c +36 -0
- data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/amd64_xmm6/stream_salsa20_amd64_xmm6.S +11 -10
- data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c +8 -3
- data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c +8 -0
- data/vendor/libsodium/src/libsodium/include/Makefile.am +3 -2
- data/vendor/libsodium/src/libsodium/include/Makefile.in +3 -2
- data/vendor/libsodium/src/libsodium/include/sodium.h +3 -1
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h +55 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_box.h +21 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h +11 -1
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_hash.h +7 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h +7 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h +7 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h +15 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h +25 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h +80 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h +2 -2
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox.h +14 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h +11 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_aes256estream.h +11 -6
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h +49 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h +6 -0
- data/vendor/libsodium/src/libsodium/include/sodium/randombytes.h +7 -7
- data/vendor/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c +10 -14
- data/vendor/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c +10 -13
- data/vendor/libsodium/src/libsodium/sodium/compat.c +55 -4
- data/vendor/libsodium/src/libsodium/sodium/utils.c +18 -0
- data/vendor/libsodium/test/default/Makefile.am +24 -12
- data/vendor/libsodium/test/default/Makefile.in +116 -73
- data/vendor/libsodium/test/default/aead_chacha20poly1305.c +97 -0
- data/vendor/libsodium/test/default/aead_chacha20poly1305.exp +8 -0
- data/vendor/libsodium/test/default/box_easy.c +1 -1
- data/vendor/libsodium/test/default/box_seed.c +28 -0
- data/vendor/libsodium/test/default/box_seed.exp +8 -0
- data/vendor/libsodium/test/default/chacha20.c +45 -0
- data/vendor/libsodium/test/default/chacha20.exp +5 -0
- data/vendor/libsodium/test/default/pwhash.c +83 -15
- data/vendor/libsodium/test/default/pwhash.exp +10 -1
- data/vendor/libsodium/test/default/pwhash_scrypt_ll.c +67 -0
- data/vendor/libsodium/test/default/pwhash_scrypt_ll.exp +15 -0
- data/vendor/libsodium/test/default/secretbox_easy.c +13 -1
- data/vendor/libsodium/test/default/secretbox_easy.exp +19 -0
- data/vendor/libsodium/test/default/secretbox_easy2.c +5 -0
- data/vendor/libsodium/test/default/secretbox_easy2.exp +1 -0
- data/vendor/libsodium/test/default/sign.c +7 -3
- metadata +44 -21
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/api.h +0 -8
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref/base_curve25519_ref.c +0 -20
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref/smult_curve25519_ref.c +0 -268
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305_donna.h +0 -37
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptxsalsa208sha256.h +0 -48
- data/vendor/libsodium/test/default/scalarmult7.c +0 -32
- data/vendor/libsodium/test/default/scalarmult7.exp +0 -1
- data/vendor/libsodium/test/default/scalarmult8.c +0 -32
- data/vendor/libsodium/test/default/scalarmult8.exp +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5cb069040837f0e3b04341b168a355dd6e969bae
|
|
4
|
+
data.tar.gz: 31e229a06aacbda9d0a507a1ea92bd58371239e2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ff6905fa1b20ed8541561347d2fd1cc7a8969e08c121dfc0d63bc3f3bee84413c423dd1a0e4fdf4ebc9dfd6c207bddf02684ba69a1a595e2a7fe278c96e53724
|
|
7
|
+
data.tar.gz: 89d77a27b2a5c140867221ec4836f77c96d52bf01ddce6095e2e22cd16f4fa79dc31342d0f28fdae62e57521aaae2a70b3a51bffe689e2bffb3fa919d3869469
|
data/CHANGES.md
CHANGED
data/vendor/libsodium/AUTHORS
CHANGED
|
@@ -1,106 +1,87 @@
|
|
|
1
|
+
|
|
1
2
|
Designers
|
|
2
3
|
=========
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
blake2 Jean-Philippe Aumasson
|
|
6
|
+
Christian Winnerlein
|
|
7
|
+
Samuel Neves
|
|
8
|
+
Zooko Wilcox-O'Hearn
|
|
9
|
+
|
|
10
|
+
chacha20 Daniel J. Bernstein
|
|
11
|
+
salsa20
|
|
12
|
+
|
|
13
|
+
chacha20poly1305 Adam Langley
|
|
14
|
+
|
|
15
|
+
curve25519 Daniel J. Bernstein
|
|
16
|
+
|
|
17
|
+
curve25519xsalsa20poly1305 Daniel J. Bernstein
|
|
18
|
+
|
|
19
|
+
ed25519 Daniel J. Bernstein
|
|
20
|
+
Bo-Yin Yang
|
|
21
|
+
Niels Duif
|
|
22
|
+
Peter Schwabe
|
|
23
|
+
Tanja Lange
|
|
24
|
+
|
|
25
|
+
poly1305 Daniel J. Bernstein
|
|
26
|
+
|
|
27
|
+
siphash Jean-Philippe Aumasson
|
|
28
|
+
Daniel J. Bernstein
|
|
29
|
+
|
|
30
|
+
scrypt Colin Percival
|
|
11
31
|
|
|
12
32
|
Implementors
|
|
13
33
|
============
|
|
14
34
|
|
|
15
|
-
|
|
16
|
-
--------------------
|
|
17
|
-
Daniel J. Bernstein
|
|
35
|
+
crypto_aead/chacha20poly1305 Frank Denis
|
|
18
36
|
|
|
19
|
-
|
|
20
|
-
--------------------
|
|
21
|
-
Daniel J. Bernstein
|
|
37
|
+
crypto_box/curve25519xsalsa20poly1305 Daniel J. Bernstein
|
|
22
38
|
|
|
39
|
+
crypto_core/hsalsa20 Daniel J. Bernstein
|
|
40
|
+
crypto_core/salsa20
|
|
23
41
|
crypto_core/salsa2012
|
|
24
|
-
-------------------
|
|
25
|
-
Daniel J. Bernstein
|
|
26
|
-
|
|
27
42
|
crypto_core/salsa208
|
|
28
|
-
---------------------
|
|
29
|
-
Daniel J. Bernstein
|
|
30
|
-
|
|
31
|
-
crypto_hash/sha256
|
|
32
|
-
------------------
|
|
33
|
-
Colin Percival
|
|
34
43
|
|
|
44
|
+
crypto_hash/sha256 Colin Percival
|
|
35
45
|
crypto_hash/sha512
|
|
36
|
-
|
|
37
|
-
Colin Percival
|
|
38
|
-
|
|
39
|
-
crypto_auth/hmacsha256
|
|
40
|
-
------------------
|
|
41
|
-
Colin Percival
|
|
46
|
+
crypto_hash/sha512256
|
|
42
47
|
|
|
48
|
+
crypto_auth/hmacsha256 Colin Percival
|
|
43
49
|
crypto_auth/hmacsha512
|
|
44
|
-
|
|
45
|
-
Colin Percival
|
|
50
|
+
crypto_auth/hmacsha512256
|
|
46
51
|
|
|
47
|
-
crypto_scalarmult/curve25519/
|
|
48
|
-
--------------------------------
|
|
49
|
-
Matthew Dempsky (Mochi Media)
|
|
52
|
+
crypto_scalarmult/curve25519/ref10 Daniel J. Bernstein
|
|
50
53
|
|
|
51
|
-
crypto_scalarmult/curve25519/donna_c64
|
|
52
|
-
--------------------------------------
|
|
53
|
-
Adam Langley (Google)
|
|
54
|
+
crypto_scalarmult/curve25519/donna_c64 Adam Langley
|
|
54
55
|
|
|
55
|
-
|
|
56
|
-
-------------------
|
|
57
|
-
Daniel J. Bernstein
|
|
58
|
-
Niels Duif
|
|
59
|
-
Tanja Lange
|
|
60
|
-
lead: Peter Schwabe
|
|
61
|
-
Bo-Yin Yang
|
|
56
|
+
crypto_secretbox/xsalsa20poly1305 Daniel J. Bernstein
|
|
62
57
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
crypto_sign/ed25519 Peter Schwabe
|
|
59
|
+
Daniel J. Bernstein
|
|
60
|
+
Niels Duif
|
|
61
|
+
Tanja Lange
|
|
62
|
+
Bo-Yin Yang
|
|
66
63
|
|
|
67
|
-
crypto_stream/
|
|
68
|
-
---------------------------
|
|
69
|
-
Hongjun Wu
|
|
64
|
+
crypto_stream/aes128ctr Peter Schwabe
|
|
70
65
|
|
|
71
|
-
crypto_stream/
|
|
72
|
-
|
|
73
|
-
Daniel J. Bernstein
|
|
66
|
+
crypto_stream/aes256estream Hongjun Wu
|
|
67
|
+
Frank Denis
|
|
74
68
|
|
|
75
|
-
crypto_stream/
|
|
76
|
-
-----------------------
|
|
77
|
-
Daniel J. Bernstein
|
|
69
|
+
crypto_stream/chacha20 Daniel J. Bernstein
|
|
78
70
|
|
|
71
|
+
crypto_stream/salsa20 Daniel J. Bernstein
|
|
72
|
+
crypto_stream/salsa2012
|
|
79
73
|
crypto_stream/salsa208
|
|
80
|
-
----------------------
|
|
81
|
-
Daniel J. Bernstein
|
|
82
|
-
|
|
83
74
|
crypto_stream/xsalsa20
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
Christian Winnerlein
|
|
98
|
-
|
|
99
|
-
crypto_onetimeauth/poly1305/donna
|
|
100
|
-
---------------------------------
|
|
101
|
-
Andrew "floodyberry" Moon.
|
|
102
|
-
|
|
103
|
-
crypto_pwhash/scryptxsalsa208sha256
|
|
104
|
-
--------------------------------
|
|
105
|
-
Colin Percival
|
|
106
|
-
Alexander Peslyak
|
|
75
|
+
|
|
76
|
+
crypto_shorthash/siphash24 Jean-Philippe Aumasson
|
|
77
|
+
Daniel J. Bernstein
|
|
78
|
+
|
|
79
|
+
crypto_generichash/blake2b Jean-Philippe Aumasson
|
|
80
|
+
Christian Winnerlein
|
|
81
|
+
Samuel Neves
|
|
82
|
+
Zooko Wilcox-O'Hearn
|
|
83
|
+
|
|
84
|
+
crypto_onetimeauth/poly1305/donna Andrew "floodyberry" Moon.
|
|
85
|
+
|
|
86
|
+
crypto_pwhash/scryptsalsa208sha256 Colin Percival
|
|
87
|
+
Alexander Peslyak
|
data/vendor/libsodium/ChangeLog
CHANGED
|
@@ -1,4 +1,34 @@
|
|
|
1
1
|
|
|
2
|
+
* Version 0.6.0
|
|
3
|
+
- The ChaCha20 stream cipher has been added, as crypto_stream_chacha20_*
|
|
4
|
+
- The ChaCha20Poly1305 AEAD construction has been implemented, as
|
|
5
|
+
crypto_aead_chacha20poly1305_*
|
|
6
|
+
- The _easy API does not require any heap allocations any more and
|
|
7
|
+
does not have any overhead over the NaCl API. With the password
|
|
8
|
+
hashing function being an obvious exception, the library doesn't
|
|
9
|
+
allocate and will not allocate heap memory ever.
|
|
10
|
+
- crypto_box and crypto_secretbox have a new _detached API to store
|
|
11
|
+
the authentication tag and the encrypted message separately.
|
|
12
|
+
- crypto_pwhash_scryptxsalsa208sha256*() functions have been renamed
|
|
13
|
+
crypto_pwhash_scryptsalsa208sha256*().
|
|
14
|
+
- The low-level crypto_pwhash_scryptsalsa208sha256_ll() function
|
|
15
|
+
allows setting individual parameters of the scrypt function.
|
|
16
|
+
- New macros and functions for recommended crypto_pwhash_* parameters
|
|
17
|
+
have been added.
|
|
18
|
+
- Similarly to crypto_sign_seed_keypair(), crypto_box_seed_keypair()
|
|
19
|
+
has been introduced to deterministically generate a key pair from a seed.
|
|
20
|
+
- crypto_onetimeauth() now provides a streaming interface.
|
|
21
|
+
- crypto_stream_chacha20_xor_ic() and crypto_stream_salsa20_xor_ic()
|
|
22
|
+
have been added to use a non-zero initial block counter.
|
|
23
|
+
- On Windows, CryptGenRandom() was replaced by RtlGenRandom(), which
|
|
24
|
+
doesn't require the Crypt API.
|
|
25
|
+
- The high bit in curve25519 is masked instead of processing the key as
|
|
26
|
+
a 256-bit value.
|
|
27
|
+
- The curve25519 ref implementation was replaced by the latest ref10
|
|
28
|
+
implementation from Supercop.
|
|
29
|
+
- sodium_mlock() now prevents memory from being included in coredumps
|
|
30
|
+
on Linux 3.4+
|
|
31
|
+
|
|
2
32
|
* Version 0.5.0
|
|
3
33
|
- sodium_mlock()/sodium_munlock() have been introduced to lock pages
|
|
4
34
|
in memory before storing sensitive data, and to zero them before
|
|
@@ -6,7 +36,7 @@ unlocking them.
|
|
|
6
36
|
- High-level wrappers for crypto_box and crypto_secretbox
|
|
7
37
|
(crypto_box_easy and crypto_secretbox_easy) can be used to avoid
|
|
8
38
|
dealing with the specific memory layout regular functions depend on.
|
|
9
|
-
-
|
|
39
|
+
- crypto_pwhash_scryptsalsa208sha256* functions have been added
|
|
10
40
|
to derive a key from a password, and for password storage.
|
|
11
41
|
- Salsa20 and ed25519 implementations now support overlapping
|
|
12
42
|
inputs/keys/outputs (changes imported from supercop-20140505).
|
|
@@ -1,385 +1,36 @@
|
|
|
1
1
|
[](https://travis-ci.org/jedisct1/libsodium?branch=master)
|
|
2
|
+
[](https://scan.coverity.com/projects/2397)
|
|
2
3
|
|
|
3
4
|

|
|
4
5
|
============
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
decryption, signatures, etc.
|
|
7
|
+
Sodium is a new, easy-to-use software library for encryption,
|
|
8
|
+
decryption, signatures, password hashing and more.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Sodium is a portable, cross-compilable, installable, packageable
|
|
14
|
-
fork of NaCl (based on the latest released upstream version [nacl-20110221](http://hyperelliptic.org/nacl/nacl-20110221.tar.bz2)), with a compatible API.
|
|
15
|
-
|
|
16
|
-
The design choices, particularly in regard to the Curve25519
|
|
17
|
-
Diffie-Hellman function, emphasize security (whereas NIST curves
|
|
18
|
-
emphasize "performance" at the cost of security), and "magic
|
|
19
|
-
constants" in NaCl/Sodium have clear rationales.
|
|
20
|
-
|
|
21
|
-
The same cannot be said of NIST curves, where the specific origins of
|
|
22
|
-
certain constants are not described by the standards.
|
|
23
|
-
|
|
24
|
-
And despite the emphasis on higher security, primitives are faster
|
|
25
|
-
across-the-board than most implementations of the NIST standards.
|
|
26
|
-
|
|
27
|
-
## Portability
|
|
10
|
+
It is a portable, cross-compilable, installable, packageable
|
|
11
|
+
fork of [NaCl](http://nacl.cr.yp.to/), with a compatible API, and an
|
|
12
|
+
extended API to improve usability even further.
|
|
28
13
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
resulting library is not guaranteed to work on different hardware.
|
|
32
|
-
|
|
33
|
-
Sodium performs tests at run-time, so that the same binary package can
|
|
34
|
-
still run everywhere.
|
|
14
|
+
Its goal is to provide all of the core operations needed to build
|
|
15
|
+
higher-level cryptographic tools.
|
|
35
16
|
|
|
36
|
-
Sodium
|
|
17
|
+
Sodium supports a variety of compilers and operating systems,
|
|
37
18
|
including Windows (with MingW or Visual Studio, x86 and x64), iOS and Android.
|
|
38
19
|
|
|
39
|
-
##
|
|
40
|
-
|
|
41
|
-
Sodium is a shared library with a machine-independent set of
|
|
42
|
-
headers, so that it can easily be used by 3rd party projects.
|
|
43
|
-
|
|
44
|
-
The library is built using autotools, making it easy to package.
|
|
45
|
-
|
|
46
|
-
Installation is trivial, and both compilation and testing can take
|
|
47
|
-
advantage of multiple CPU cores.
|
|
48
|
-
|
|
49
|
-
Download a
|
|
50
|
-
[tarball of libsodium](https://download.libsodium.org/libsodium/releases/),
|
|
51
|
-
then follow the ritual:
|
|
52
|
-
|
|
53
|
-
./configure
|
|
54
|
-
make && make check && make install
|
|
55
|
-
|
|
56
|
-
Pre-compiled Win32 packages are available for download at the same
|
|
57
|
-
location.
|
|
58
|
-
|
|
59
|
-
Integrity of source tarballs can currently be checked using PGP or
|
|
60
|
-
verified DNS queries (`dig +dnssec +short txt <file>.download.libsodium.org`
|
|
61
|
-
returns the SHA256 of any file available for download).
|
|
62
|
-
|
|
63
|
-
## Pre-built binaries
|
|
64
|
-
|
|
65
|
-
Pre-built libraries for Visual studio 2010, 2012 and 2013, both for
|
|
66
|
-
x86 and x64, are available for download at
|
|
67
|
-
https://download.libsodium.org/libsodium/releases/ , courtesy of
|
|
68
|
-
Samuel Neves (@sneves).
|
|
69
|
-
|
|
70
|
-
## Bindings for other languages
|
|
71
|
-
|
|
72
|
-
* C++: [sodiumpp](https://github.com/rubendv/sodiumpp)
|
|
73
|
-
* Erlang: [Erlang-NaCl](https://github.com/tonyg/erlang-nacl)
|
|
74
|
-
* Erlang: [Salt](https://github.com/freza/salt)
|
|
75
|
-
* Haskell: [Saltine](https://github.com/tel/saltine)
|
|
76
|
-
* Idris: [Idris-Sodium](https://github.com/edwinb/sodium-idris)
|
|
77
|
-
* Java: [Kalium](https://github.com/abstractj/kalium)
|
|
78
|
-
* Java JNI: [Kalium-JNI](https://github.com/joshjdevl/kalium-jni)
|
|
79
|
-
* Julia: [Sodium.jl](https://github.com/amitmurthy/Sodium.jl)
|
|
80
|
-
* LUA: [lua-sodium](https://github.com/morfoh/lua-sodium)
|
|
81
|
-
* .NET: [libsodium-net](https://github.com/adamcaudill/libsodium-net)
|
|
82
|
-
* NodeJS: [node-sodium](https://github.com/paixaop/node-sodium)
|
|
83
|
-
* Objective C: [NAChloride](https://github.com/gabriel/NAChloride)
|
|
84
|
-
* OCaml: [ocaml-sodium](https://github.com/dsheets/ocaml-sodium)
|
|
85
|
-
* Perl: [Crypto-Sodium](https://github.com/mgregoro/Crypt-Sodium)
|
|
86
|
-
* Pharo/Squeak: [Crypto-NaCl](http://www.eighty-twenty.org/index.cgi/tech/smalltalk/nacl-for-squeak-and-pharo-20130601.html)
|
|
87
|
-
* PHP: [PHP-Sodium](https://github.com/alethia7/php-sodium)
|
|
88
|
-
* PHP: [libsodium-php](https://github.com/jedisct1/libsodium-php)
|
|
89
|
-
* Python: [PyNaCl](https://github.com/dstufft/pynacl)
|
|
90
|
-
* Python: [PySodium](https://github.com/stef/pysodium)
|
|
91
|
-
* Racket: part of [CRESTaceans](https://github.com/mgorlick/CRESTaceans/tree/master/bindings/libsodium)
|
|
92
|
-
* Ruby: [RbNaCl](https://github.com/cryptosphere/rbnacl)
|
|
93
|
-
* Ruby: [Sodium](https://github.com/stouset/sodium)
|
|
94
|
-
* Rust: [Sodium Oxide](https://github.com/dnaq/sodiumoxide)
|
|
95
|
-
|
|
96
|
-
## Comparison with vanilla NaCl
|
|
97
|
-
|
|
98
|
-
Sodium does not ship C++ bindings. These might be part of a distinct
|
|
99
|
-
package.
|
|
100
|
-
|
|
101
|
-
The default public-key signature system in NaCl was a prototype that
|
|
102
|
-
shouldn't be used any more.
|
|
103
|
-
|
|
104
|
-
Sodium ships with the SUPERCOP reference implementation of
|
|
105
|
-
[Ed25519](http://ed25519.cr.yp.to/), and uses this system by default
|
|
106
|
-
for `crypto_sign*` operations.
|
|
107
|
-
|
|
108
|
-
For backward compatibility, the previous system is still compiled in,
|
|
109
|
-
as `crypto_sign_edwards25519sha512batch*`.
|
|
110
|
-
|
|
111
|
-
## Additional features
|
|
112
|
-
|
|
113
|
-
The Sodium library provides some convenience functions in order to retrieve
|
|
114
|
-
the current version of the package and of the shared library:
|
|
115
|
-
|
|
116
|
-
const char *sodium_version_string(void);
|
|
117
|
-
const int sodium_library_version_major(void);
|
|
118
|
-
const int sodium_library_version_minor(void);
|
|
119
|
-
|
|
120
|
-
Headers are installed in `${prefix}/include/sodium`.
|
|
121
|
-
|
|
122
|
-
A convenience header includes everything you need to use the library:
|
|
123
|
-
|
|
124
|
-
#include <sodium.h>
|
|
125
|
-
|
|
126
|
-
This is not required, however, before any other libsodium functions, it
|
|
127
|
-
is recommended to call:
|
|
128
|
-
|
|
129
|
-
sodium_init();
|
|
130
|
-
|
|
131
|
-
This will pick optimized implementations of some primitives, if they
|
|
132
|
-
appear to work as expected after running some tests, and these will be
|
|
133
|
-
used for subsequent operations.
|
|
134
|
-
It will also initialize the pseudorandom number generator.
|
|
135
|
-
This function should only be called once, and before performing any other
|
|
136
|
-
operations.
|
|
137
|
-
Doing so is required to ensure thread safety of all the functions provided by
|
|
138
|
-
the library.
|
|
139
|
-
|
|
140
|
-
Sodium also provides helper functions to generate random numbers,
|
|
141
|
-
leveraging `/dev/urandom` or `/dev/random` on *nix and the cryptographic
|
|
142
|
-
service provider on Windows. The interface is similar to
|
|
143
|
-
`arc4random(3)`. It is `fork(2)`-safe but not thread-safe. This holds
|
|
144
|
-
true for `crypto_sign_keypair()` and `crypto_box_keypair()` as well.
|
|
145
|
-
|
|
146
|
-
uint32_t randombytes_random(void);
|
|
147
|
-
|
|
148
|
-
Return a random 32-bit unsigned value.
|
|
149
|
-
|
|
150
|
-
void randombytes_stir(void);
|
|
151
|
-
|
|
152
|
-
Generate a new key for the pseudorandom number generator. The file
|
|
153
|
-
descriptor for the entropy source is kept open, so that the generator
|
|
154
|
-
can be reseeded even in a chroot() jail.
|
|
155
|
-
|
|
156
|
-
uint32_t randombytes_uniform(const uint32_t upper_bound);
|
|
157
|
-
|
|
158
|
-
Return a value between 0 and upper_bound using a uniform distribution.
|
|
159
|
-
|
|
160
|
-
void randombytes_buf(void * const buf, const size_t size);
|
|
161
|
-
|
|
162
|
-
Fill the buffer `buf` with `size` random bytes.
|
|
163
|
-
|
|
164
|
-
int randombytes_close(void);
|
|
165
|
-
|
|
166
|
-
Close the file descriptor or the handle for the cryptographic service
|
|
167
|
-
provider.
|
|
168
|
-
|
|
169
|
-
A custom implementation of these functions can be registered with
|
|
170
|
-
`randombytes_set_implementation()`.
|
|
171
|
-
|
|
172
|
-
In addition, Sodium provides a function to securely wipe a memory
|
|
173
|
-
region:
|
|
174
|
-
|
|
175
|
-
void sodium_memzero(void * const pnt, const size_t size);
|
|
176
|
-
|
|
177
|
-
Warning: if a region has been allocated on the heap, you still have
|
|
178
|
-
to make sure that it can't get swapped to disk, possibly using
|
|
179
|
-
`mlock(2)`.
|
|
20
|
+
## Documentation
|
|
180
21
|
|
|
181
|
-
|
|
22
|
+
The documentation is a work-in-progress, and is being written using
|
|
23
|
+
Gitbook:
|
|
182
24
|
|
|
183
|
-
|
|
184
|
-
size_t size);
|
|
25
|
+
[libsodium documentation](http://doc.libsodium.org)
|
|
185
26
|
|
|
186
|
-
|
|
187
|
-
equal, another value if they are not. Unlike `memcmp()`,
|
|
188
|
-
`sodium_memcmp()` cannot be used to put `b1_` and `b2_` into a defined
|
|
189
|
-
order.
|
|
190
|
-
|
|
191
|
-
And a convenience function for converting a binary buffer to a
|
|
192
|
-
hexadecimal string:
|
|
193
|
-
|
|
194
|
-
char * sodium_bin2hex(char * const hex, const size_t hexlen,
|
|
195
|
-
const unsigned char *bin, const size_t binlen);
|
|
196
|
-
|
|
197
|
-
Sensitive data should not be swapped out to disk, especially if swap
|
|
198
|
-
partitions are not encrypted. Libsodium provides the `sodium_mlock()`
|
|
199
|
-
function to lock pages in memory before writing sensitive content to
|
|
200
|
-
them:
|
|
201
|
-
|
|
202
|
-
int sodium_mlock(void *addr, size_t len);
|
|
203
|
-
|
|
204
|
-
Once done with these pages, they can be unlocked with
|
|
205
|
-
`sodium_munlock()`. This function will zero the data before unlocking
|
|
206
|
-
the pages.
|
|
207
|
-
|
|
208
|
-
int sodium_munlock(void * addr, size_t len);
|
|
209
|
-
|
|
210
|
-
## Easy interfaces to `crypto_box` and `crypto_secretbox`
|
|
211
|
-
|
|
212
|
-
`crypto_box` and `crypto_secretbox` require prepending
|
|
213
|
-
`crypto_box_ZEROBYTES` or `crypto_secretbox_ZEROBYTE` extra bytes to the
|
|
214
|
-
message, and making sure that these are all zeros.
|
|
215
|
-
A similar padding is required to decrypt the ciphertext. And this
|
|
216
|
-
padding is actually larger than the MAC size,
|
|
217
|
-
`crypto_box_MACBYTES`/`crypto_secretbox_MACBYTES`.
|
|
218
|
-
|
|
219
|
-
This API, as defined by NaCl, can be confusing. And while using a
|
|
220
|
-
larger buffer and two pointers is not an issue for native C
|
|
221
|
-
applications, this might not be an option when another runtime is
|
|
222
|
-
controlling the allocations.
|
|
223
|
-
|
|
224
|
-
Libsodium provides an easy, higher-level interface to these operations.
|
|
225
|
-
|
|
226
|
-
int crypto_box_easy(unsigned char *c, const unsigned char *m,
|
|
227
|
-
unsigned long long mlen, const unsigned char *n,
|
|
228
|
-
const unsigned char *pk, const unsigned char *sk);
|
|
229
|
-
|
|
230
|
-
This function encrypts and authenticates a message `m` using the
|
|
231
|
-
sender's secret key `sk`, the receiver's public key `pk` and a nonce
|
|
232
|
-
`n`, which should be `crypto_box_NONCEBYTES` bytes long.
|
|
233
|
-
The ciphertext, including the MAC, will be copied to `c`, whose length
|
|
234
|
-
should be `len(m) + crypto_box_MACBYTES`, and that doesn't require to be
|
|
235
|
-
initialized.
|
|
236
|
-
|
|
237
|
-
int crypto_box_open_easy(unsigned char *m, const unsigned char *c,
|
|
238
|
-
unsigned long long clen, const unsigned char *n,
|
|
239
|
-
const unsigned char *pk, const unsigned char *sk);
|
|
240
|
-
|
|
241
|
-
This function verifies and decrypts a ciphertext `c` as returned by
|
|
242
|
-
`crypto_box_easy()`, whose length is `clen`, using the nonce `n`, the
|
|
243
|
-
receiver's secret key `sk`, and the sender's public key `pk`. The
|
|
244
|
-
message is stored to `m`, whose length should be at least `len(c) -
|
|
245
|
-
crypto_box_MACBYTES` and that doesn't require to be initialized.
|
|
246
|
-
|
|
247
|
-
Similarily, secret-key authenticated encryption provide "easy" wrappers:
|
|
248
|
-
|
|
249
|
-
int crypto_secretbox_easy(unsigned char *c, const unsigned char *m,
|
|
250
|
-
unsigned long long mlen, const unsigned char *n,
|
|
251
|
-
const unsigned char *k);
|
|
252
|
-
|
|
253
|
-
int crypto_secretbox_open_easy(unsigned char *m, const unsigned char *c,
|
|
254
|
-
unsigned long long clen,
|
|
255
|
-
const unsigned char *n,
|
|
256
|
-
const unsigned char *k);
|
|
257
|
-
|
|
258
|
-
The length of the ciphertext, which will include the MAC, is
|
|
259
|
-
`len(m) + crypto_secretbox_MACBYTES`, and the length of the buffer for
|
|
260
|
-
the decrypted message doesn't have to be more than `len(c) -
|
|
261
|
-
crypto_secretbox_MACBYTES`.
|
|
262
|
-
|
|
263
|
-
The "easy" interface currently requires allocations and copying, which
|
|
264
|
-
makes it slower than using the traditional NaCl interface. This
|
|
265
|
-
shouldn't make any sensible difference in most use cases, and future
|
|
266
|
-
versions of the library may not require extra copy operations any
|
|
267
|
-
more. Unless speed is absolutely critical, you are welcome to use the
|
|
268
|
-
"easy" interface, especially if you are new to NaCl/Sodium.
|
|
269
|
-
|
|
270
|
-
## New operations
|
|
271
|
-
|
|
272
|
-
### crypto_shorthash
|
|
273
|
-
|
|
274
|
-
A lot of applications and programming language implementations have
|
|
275
|
-
been recently found to be vulnerable to denial-of-service attacks when
|
|
276
|
-
a hash function with weak security guarantees, like Murmurhash 3, was
|
|
277
|
-
used to construct a hash table.
|
|
278
|
-
|
|
279
|
-
In order to address this, Sodium provides the “shorthash” function,
|
|
280
|
-
currently implemented using SipHash-2-4. This very fast hash function
|
|
281
|
-
outputs short, but unpredictable (without knowing the secret key)
|
|
282
|
-
values suitable for picking a list in a hash table for a given key.
|
|
283
|
-
|
|
284
|
-
See `crypto_shorthash.h` for details.
|
|
285
|
-
|
|
286
|
-
### crypto_generichash
|
|
287
|
-
|
|
288
|
-
This hash function provides:
|
|
289
|
-
|
|
290
|
-
* A variable output length (up to `crypto_generichash_BYTES_MAX` bytes)
|
|
291
|
-
* A variable key length (from no key at all to
|
|
292
|
-
`crypto_generichash_KEYBYTES_MAX` bytes)
|
|
293
|
-
* A simple interface as well as a streaming interface.
|
|
294
|
-
|
|
295
|
-
`crypto_generichash` is currently being implemented using
|
|
296
|
-
[Blake2](https://blake2.net/).
|
|
297
|
-
|
|
298
|
-
### crypto_pwhash (scrypt)
|
|
299
|
-
|
|
300
|
-
High-level functions for password hashing are not defined yet: they will
|
|
301
|
-
eventually be wrappers for the winning function of the ongoing
|
|
302
|
-
[Password Hashing Competition](https://password-hashing.net/).
|
|
303
|
-
|
|
304
|
-
Meanwhile, the [scrypt](http://www.tarsnap.com/scrypt.html) function is
|
|
305
|
-
available through explicitly-named functions, and will remain available
|
|
306
|
-
in the library even after the PHC.
|
|
307
|
-
|
|
308
|
-
int crypto_pwhash_scryptxsalsa208sha256(unsigned char *out,
|
|
309
|
-
unsigned long long outlen,
|
|
310
|
-
const char *passwd,
|
|
311
|
-
unsigned long long passwdlen,
|
|
312
|
-
const unsigned char *salt,
|
|
313
|
-
unsigned long long opslimit,
|
|
314
|
-
size_t memlimit);
|
|
315
|
-
|
|
316
|
-
This function derives `outlen` bytes from a password `passwd` and a
|
|
317
|
-
salt `salt` that has to be `crypto_pwhash_scryptxsalsa208sha256_SALTBYTES`
|
|
318
|
-
bytes long.
|
|
319
|
-
|
|
320
|
-
The function will use at most `memlimit` bytes of memory and `opslimit`
|
|
321
|
-
is the maximum number of iterations to perform. Making the function
|
|
322
|
-
memory-hard and CPU intensive by increasing these parameters might increase
|
|
323
|
-
security.
|
|
324
|
-
|
|
325
|
-
Although password storage was not the primary goal of the scrypt
|
|
326
|
-
function, it can still be used for this purpose:
|
|
327
|
-
|
|
328
|
-
int crypto_pwhash_scryptxsalsa208sha256_str
|
|
329
|
-
(char out[crypto_pwhash_scryptxsalsa208sha256_STRBYTES],
|
|
330
|
-
const char *passwd,
|
|
331
|
-
unsigned long long passwdlen,
|
|
332
|
-
unsigned long long opslimit,
|
|
333
|
-
size_t memlimit);
|
|
334
|
-
|
|
335
|
-
This function returns a `crypto_pwhash_scryptxsalsa208sha256_STRBYTES`
|
|
336
|
-
bytes C string (the length includes the final `\0`) suitable for storage.
|
|
337
|
-
The string is guaranteed to only include ASCII characters.
|
|
338
|
-
|
|
339
|
-
The function will use at most `memlimit` bytes of memory and `opslimit`
|
|
340
|
-
is the maximum number of iterations to perform. These parameters are
|
|
341
|
-
included in the output string, and do not need to be stored separately.
|
|
342
|
-
|
|
343
|
-
The function automatically generates a random salt, which is also
|
|
344
|
-
included in the output string.
|
|
345
|
-
|
|
346
|
-
int crypto_pwhash_scryptxsalsa208sha256_str_verify
|
|
347
|
-
(const char str[crypto_pwhash_scryptxsalsa208sha256_STRBYTES],
|
|
348
|
-
const char *passwd,
|
|
349
|
-
unsigned long long passwdlen);
|
|
350
|
-
|
|
351
|
-
This function verifies that hashing the plaintext password `passwd`
|
|
352
|
-
results in the stored hash value included in `str` when using the same
|
|
353
|
-
parameters.
|
|
354
|
-
|
|
355
|
-
`0` is returned if the passwords are matching, `-1` is they are not.
|
|
356
|
-
The plaintext password should be locked in memory using
|
|
357
|
-
`sodium_mlock()` and immediately zeroed out and unlocked after this
|
|
358
|
-
function returns, using `sodium_munlock()`.
|
|
359
|
-
|
|
360
|
-
## Constants available as functions
|
|
361
|
-
|
|
362
|
-
In addition to constants for key sizes, output sizes and block sizes,
|
|
363
|
-
Sodium provides these values through function calls, so that using
|
|
364
|
-
them from different languages is easier.
|
|
365
|
-
|
|
366
|
-
## CurveCP
|
|
367
|
-
|
|
368
|
-
CurveCP tools are part of a different project,
|
|
369
|
-
[libchloride](https://github.com/jedisct1/libchloride).
|
|
370
|
-
If you are interested in an embeddable CurveCP implementation, take a
|
|
371
|
-
look at [libcurvecpr](https://github.com/impl/libcurvecpr).
|
|
372
|
-
|
|
373
|
-
## Mailing list
|
|
27
|
+
## Community
|
|
374
28
|
|
|
375
29
|
A mailing-list is available to discuss libsodium.
|
|
376
30
|
|
|
377
31
|
In order to join, just send a random mail to `sodium-subscribe` {at}
|
|
378
|
-
`pureftpd`{dot}`org`.
|
|
32
|
+
`pureftpd` {dot} `org`.
|
|
379
33
|
|
|
380
34
|
## License
|
|
381
35
|
|
|
382
36
|
[ISC license](http://en.wikipedia.org/wiki/ISC_license).
|
|
383
|
-
|
|
384
|
-
See the `COPYING` file for details, `AUTHORS` for designers and
|
|
385
|
-
implementors, and `THANKS` for contributors.
|