rbnacl-libsodium 1.0.15.1 → 1.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -6
- data/CHANGES.md +50 -42
- data/Gemfile +1 -1
- data/README.md +3 -1
- data/Rakefile +46 -0
- data/ext/rbnacl/extconf.rb +16 -1
- data/lib/rbnacl/libsodium.rb +16 -8
- data/lib/rbnacl/libsodium/version.rb +1 -1
- data/rbnacl-libsodium.gemspec +3 -0
- data/vendor/libsodium/AUTHORS +20 -5
- data/vendor/libsodium/ChangeLog +25 -0
- data/vendor/libsodium/Makefile.in +3 -1
- data/vendor/libsodium/README.markdown +2 -1
- data/vendor/libsodium/aclocal.m4 +1 -0
- data/vendor/libsodium/autom4te.cache/output.1 +836 -123
- data/vendor/libsodium/autom4te.cache/output.4 +21342 -0
- data/vendor/libsodium/autom4te.cache/requests +801 -554
- data/vendor/libsodium/autom4te.cache/traces.1 +717 -596
- data/vendor/libsodium/autom4te.cache/traces.4 +4355 -0
- data/vendor/libsodium/builds/Makefile.in +3 -1
- data/vendor/libsodium/builds/msvc/resource.h +1 -1
- data/vendor/libsodium/builds/msvc/resource.rc +2 -2
- data/vendor/libsodium/builds/msvc/version.h +2 -2
- data/vendor/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj +17 -8
- data/vendor/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters +60 -24
- data/vendor/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj +17 -8
- data/vendor/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters +60 -24
- data/vendor/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj +17 -8
- data/vendor/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters +60 -24
- data/vendor/libsodium/builds/msvc/vs2015/libsodium/libsodium.vcxproj +17 -8
- data/vendor/libsodium/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters +60 -24
- data/vendor/libsodium/builds/msvc/vs2017/libsodium/libsodium.vcxproj +17 -8
- data/vendor/libsodium/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters +60 -24
- data/vendor/libsodium/configure +834 -121
- data/vendor/libsodium/configure.ac +55 -13
- data/vendor/libsodium/contrib/Findsodium.cmake +22 -3
- data/vendor/libsodium/contrib/Makefile.in +3 -1
- data/vendor/libsodium/dist-build/Makefile.in +3 -1
- data/vendor/libsodium/dist-build/android-build.sh +2 -2
- data/vendor/libsodium/dist-build/emscripten-symbols.def +38 -26
- data/vendor/libsodium/dist-build/emscripten.sh +23 -8
- data/vendor/libsodium/dist-build/msys2-win32.sh +1 -1
- data/vendor/libsodium/dist-build/msys2-win64.sh +1 -1
- data/vendor/libsodium/libsodium.vcxproj +17 -8
- data/vendor/libsodium/libsodium.vcxproj.filters +41 -14
- data/vendor/libsodium/m4/ax_tls.m4 +74 -0
- data/vendor/libsodium/msvc-scripts/Makefile.in +3 -1
- data/vendor/libsodium/msvc-scripts/process.bat +2 -2
- data/vendor/libsodium/packaging/dotnet-core/README.md +5 -5
- data/vendor/libsodium/packaging/dotnet-core/prepare.py +7 -7
- data/vendor/libsodium/packaging/nuget/package.config +1 -1
- data/vendor/libsodium/regen-msvc/libsodium.vcxproj +326 -0
- data/vendor/libsodium/regen-msvc/libsodium.vcxproj.filters +23 -0
- data/vendor/libsodium/regen-msvc/libsodium.vcxproj.filters.tpl +35 -0
- data/vendor/libsodium/regen-msvc/libsodium.vcxproj.tpl +93 -0
- data/vendor/libsodium/regen-msvc/regen-msvc.py +136 -0
- data/vendor/libsodium/regen-msvc/tl_libsodium.vcxproj.filters.tpl +23 -0
- data/vendor/libsodium/regen-msvc/tl_libsodium.vcxproj.tpl +331 -0
- data/vendor/libsodium/src/Makefile.in +3 -1
- data/vendor/libsodium/src/libsodium/Makefile.am +40 -24
- data/vendor/libsodium/src/libsodium/Makefile.in +238 -180
- data/vendor/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +10 -2
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/core_ed25519.c +79 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c +2031 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h +1344 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h +40 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h +20 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h +220 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h +1344 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h +40 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/constants.h +21 -0
- data/vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h +116 -0
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2.h +1 -1
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c +2 -1
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c +14 -82
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c +1 -0
- data/vendor/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c +3 -3
- data/vendor/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c +3 -3
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h +1 -7
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c +1 -0
- data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c +0 -6
- data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c +19 -92
- data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h +72 -4
- data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c +5 -1
- data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h +1 -1
- data/vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c +10 -7
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c +108 -231
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h +1 -1
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c +27 -27
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c +2 -1
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c +6 -3
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c +3 -11
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c +86 -0
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c +28 -26
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c +32 -30
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c +14 -115
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c +56 -13
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/{ed25519_ref10.h → sign_ed25519_ref10.h} +2 -5
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519.c +1 -1
- data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c +1 -0
- data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.c +1 -0
- data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/u8.h +1 -1
- data/vendor/libsodium/src/libsodium/include/Makefile.am +2 -0
- data/vendor/libsodium/src/libsodium/include/Makefile.in +13 -9
- data/vendor/libsodium/src/libsodium/include/sodium.h +2 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_core_ed25519.h +37 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h +8 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h +8 -0
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult_ed25519.h +41 -0
- data/vendor/libsodium/src/libsodium/include/sodium/private/common.h +18 -0
- data/vendor/libsodium/src/libsodium/include/sodium/private/ed25519_ref10.h +125 -0
- data/vendor/libsodium/src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h +1050 -0
- data/vendor/libsodium/src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h +518 -0
- data/vendor/libsodium/src/libsodium/include/sodium/runtime.h +3 -0
- data/vendor/libsodium/src/libsodium/include/sodium/utils.h +3 -0
- data/vendor/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c +182 -102
- data/vendor/libsodium/src/libsodium/sodium/core.c +30 -2
- data/vendor/libsodium/src/libsodium/sodium/runtime.c +14 -0
- data/vendor/libsodium/src/libsodium/sodium/utils.c +46 -0
- data/vendor/libsodium/test/Makefile.in +3 -1
- data/vendor/libsodium/test/default/Makefile.am +16 -0
- data/vendor/libsodium/test/default/Makefile.in +71 -23
- data/vendor/libsodium/test/default/aead_aes256gcm.c +1 -1
- data/vendor/libsodium/test/default/cmptest.h +4 -0
- data/vendor/libsodium/test/default/core3.c +44 -4
- data/vendor/libsodium/test/default/core3.exp +2 -0
- data/vendor/libsodium/test/default/core4.c +1 -1
- data/vendor/libsodium/test/default/core_ed25519.c +151 -0
- data/vendor/libsodium/test/default/core_ed25519.exp +1 -0
- data/vendor/libsodium/test/default/ed25519_convert.c +9 -1
- data/vendor/libsodium/test/default/index.html.tpl +17 -3
- data/vendor/libsodium/test/default/kdf.c +4 -2
- data/vendor/libsodium/test/default/metamorphic.c +8 -8
- data/vendor/libsodium/test/default/misuse.c +29 -1
- data/vendor/libsodium/test/default/pwhash_argon2i.c +9 -3
- data/vendor/libsodium/test/default/pwhash_argon2i.exp +2 -2
- data/vendor/libsodium/test/default/pwhash_argon2id.c +7 -2
- data/vendor/libsodium/test/default/pwhash_argon2id.exp +2 -2
- data/vendor/libsodium/test/default/scalarmult.c +0 -2
- data/vendor/libsodium/test/default/scalarmult.exp +0 -1
- data/vendor/libsodium/test/default/scalarmult_ed25519.c +90 -0
- data/vendor/libsodium/test/default/scalarmult_ed25519.exp +1 -0
- data/vendor/libsodium/test/default/secretbox_easy2.c +1 -1
- data/vendor/libsodium/test/default/secretstream.c +52 -3
- data/vendor/libsodium/test/default/sign.c +16 -0
- data/vendor/libsodium/test/default/sodium_core.c +1 -0
- data/vendor/libsodium/test/default/sodium_utils.c +2 -1
- data/vendor/libsodium/test/default/xchacha20.c +2 -1
- metadata +63 -12
- data/vendor/libsodium/src/libsodium/crypto_core/curve25519/ref10/base.h +0 -1344
- data/vendor/libsodium/src/libsodium/crypto_core/curve25519/ref10/base2.h +0 -40
- data/vendor/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c +0 -2797
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c +0 -545
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h +0 -10
- data/vendor/libsodium/src/libsodium/include/sodium/private/curve25519_ref10.h +0 -132
- data/vendor/libsodium/test/default/index-wasm.html.tpl +0 -118
@@ -6,6 +6,6 @@ c121209f0ba70aed93d49200e5dc82cce013cef25ea31e160bf8db3cf448a59d1a56f6c19259e18e
|
|
6
6
|
91c337ce8918a5805a59b00bd1819d3eb4356807cbd2a80b271c4b482dce03f5b02ae4eb831ff668cbb327b93c300b41da4852e5547bea8342d518dd9311aaeb5f90eccf66d548f9275631f0b1fd4b299cec5d2e86a59e55dc7b3afab6204447b21d1ef1da824abaf31a25a0d6135c4fe81d34a06816c8a6eab19141f5687108500f3719a862af8c5fee36e130c69921e11ce83dfc72c5ec3b862c1bccc5fd63ad57f432fbcca6f9e18d5a59015950cdf053
|
7
7
|
[tv] pwhash failure (maybe intentional): [6]
|
8
8
|
e942951dfbc2d508294b10f9e97b47d0cd04e668a043cb95679cc1139df7c27cd54367688725be9d069f5704c12223e7e4ca181fbd0bed18bb4634795e545a6c04a7306933a41a794baedbb628d41bc285e0b9084055ae136f6b63624c874f5a1e1d8be7b0b7227a171d2d7ed578d88bfdcf18323198962d0dcad4126fd3f21adeb1e11d66252ea0c58c91696e91031bfdcc2a9dc0e028d17b9705ba2d7bcdcd1e3ba75b4b1fea
|
9
|
-
|
10
|
-
|
9
|
+
fd329873387429cb79faaec4f65c35649f65de0aabc1f092ca9dee20029d8ae6c3a97e9940763e1703a7fef5a20eb7f210123fc8c6d3f1745d19d5e3c1eb392ab4a6070c8a6b9ecbeabae0711326e81530099541a882d4bd7733c4a7477ae72b6928c46cd07264172a9d2cfb7d649594f877f8b447d9c01b17996b85db5a71f733f8cc5fd0436540a5b7a1d79de09e20c3abe6515501b3156cd51e
|
10
|
+
bbbc4c7963593601d4d685ed9d89682374f8e6b3ce92ce8ccc702728ec8bf839fd7cb8e37ddb09be8c18c7e0ed099949665227a00fb33e1f63ca830dbeb13b29d987b445b3e081cd8428bdb2f9e003e12bea98230fd30842fa193af9169171b550322072c88330ea464cbe02b6ee044374d3f3d174c23617b707159a11926c56601123dcc30508ec84fdb0797b7ab23a77eeefb2a0be2ef45e903c
|
11
11
|
OK
|
@@ -121,14 +121,14 @@ tv2(void)
|
|
121
121
|
"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6",
|
122
122
|
127,
|
123
123
|
"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2",
|
124
|
-
155, 4,
|
124
|
+
155, 4, 397645, 1 },
|
125
125
|
{ "a347ae92bce9f80f6f595a4480fc9c2fe7e7d7148d371e9487d75f5c23008ffae0"
|
126
126
|
"65577a928febd9b1973a5a95073acdbeb6a030cfc0d79caa2dc5cd011cef02c08d"
|
127
127
|
"a232d76d52dfbca38ca8dcbd665b17d1665f7cf5fe59772ec909733b24de97d6f5"
|
128
128
|
"8d220b20c60d7c07ec1fd93c52c31020300c6c1facd77937a597c7a6",
|
129
129
|
127,
|
130
130
|
"5541fbc995d5c197ba290346d2c559dedf405cf97e5f95482143202f9e74f5c2",
|
131
|
-
155, 3,
|
131
|
+
155, 3, 397645, 1 },
|
132
132
|
};
|
133
133
|
char passwd[256];
|
134
134
|
unsigned char salt[crypto_pwhash_SALTBYTES];
|
@@ -177,6 +177,8 @@ tv2(void)
|
|
177
177
|
1ULL << 12, crypto_pwhash_argon2id_alg_argon2id13()) != -1) {
|
178
178
|
printf("[tv2] pwhash with a long password length should have failed\n");
|
179
179
|
}
|
180
|
+
assert(crypto_pwhash_argon2id(out, sizeof out, "password", strlen("password"), salt,
|
181
|
+
OPSLIMIT, MEMLIMIT, crypto_pwhash_alg_argon2i13()) == -1);
|
180
182
|
}
|
181
183
|
|
182
184
|
static void
|
@@ -266,6 +268,9 @@ str_tests(void)
|
|
266
268
|
crypto_pwhash_argon2i_str_needs_rehash(str_out, OPSLIMIT + 1, MEMLIMIT) != -1) {
|
267
269
|
printf("needs_rehash() false negative (2)\n");
|
268
270
|
}
|
271
|
+
if (crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT / 2) != 1) {
|
272
|
+
printf("pwhash_str_needs_rehash() didn't handle argon2id\n");
|
273
|
+
}
|
269
274
|
if (crypto_pwhash_str_needs_rehash(str_out + 1, OPSLIMIT, MEMLIMIT) != -1 ||
|
270
275
|
crypto_pwhash_argon2id_str_needs_rehash(str_out + 1, OPSLIMIT, MEMLIMIT) != -1) {
|
271
276
|
printf("needs_rehash() didn't fail with an invalid hash string\n");
|
@@ -6,8 +6,8 @@
|
|
6
6
|
d6e9d6cabd42fb9ba7162fe9b8e41d59d3c7034756cb460c9affe393308bd0225ce0371f2e6c3ca32aca2002bf2d3909c6b6e7dfc4a00e850ff4f570f8f749d4bb6f0091e554be67a9095ae1eefaa1a933316cbec3c2fd4a14a5b6941bda9b7eabd821d79abde2475a53af1a8571c7ee46460be415882e0b393f48c12f740a6a72cba9773000602e13b40d3dfa6ac1d4ec43a838b7e3e165fecad4b2498389e60a3ff9f0f8f4b9fca1126e64f49501e38690
|
7
7
|
7fb72409b0987f8190c3729710e98c3f80c5a8727d425fdcde7f3644d467fe973f5b5fee683bd3fce812cb9ae5e9921a2d06c2f1905e4e839692f2b934b682f11a2fe2b90482ea5dd234863516dba6f52dc0702d324ec77d860c2e181f84472bd7104fedce071ffa93c5309494ad51623d214447a7b2b1462dc7d5d55a1f6fd5b54ce024118d86f0c6489d16545aaa87b6689dad9f2fb47fda9894f8e12b87d978b483ccd4cc5fd9595cdc7a818452f915ce2f7df95ec12b1c72e3788d473441d884f9748eb14703c21b45d82fd667b85f5b2d98c13303b3fe76285531a826b6fc0fe8e3dddecf
|
8
8
|
4e702bc5f891df884c6ddaa243aa846ce3c087fe930fef0f36b3c2be34164ccc295db509254743f18f947159c813bcd5dd8d94a3aec93bbe57605d1fad1aef1112687c3d4ef1cb329d21f1632f626818d766915d886e8d819e4b0b9c9307f4b6afc081e13b0cf31db382ff1bf05a16aac7af696336d75e99f82163e0f371e1d25c4add808e215697ad3f779a51a462f8bf52610af21fc69dba6b072606f2dabca7d4ae1d91d919
|
9
|
-
|
10
|
-
|
9
|
+
20e7ba6faa2c0a4b07f3ff38e15e252a069c2c62bac3f2785d311764d73e67fd713be342ee938e6df4de6af1a89a44b8589838864457bcfe3cf0f2d329b800ab9f5810b6325588eb4e0c56f99192b2cc76dc8194dc1097fe5ed12ac4214481c03c3597131ba164a56e7187e2da565a8cd529668e9a37faa58a1701c49a14edf7a50dec4143b456cba6d14c957bb655e99ce96bc506961216ef887a
|
10
|
+
8fb6ed1862cdd2a399e10956c60dc9b2670338ea59c3414d0443216925ba24c6e89a17f3e56c12893dcbc9bc498e8308aea9627d9c9e47912d6342b631008719edfa2db364b97e60cf47a97ad9aa3b7f139d80ddda44f1ef2af881ce027a15644218cac6cc74751469ae56be0469fbc760825882b3e8abca55daaae5753575106cf867cd69932602c63ec880ad8811d9aa4870a9e0b39fef47c92e
|
11
11
|
[tv3] pwhash_argon2id_str failure (maybe intentional): [0]
|
12
12
|
[tv3] pwhash_argon2id_str failure (maybe intentional): [1]
|
13
13
|
[tv3] pwhash_argon2id_str failure (maybe intentional): [3]
|
@@ -0,0 +1,90 @@
|
|
1
|
+
#define TEST_NAME "scalarmult_ed25519"
|
2
|
+
#include "cmptest.h"
|
3
|
+
|
4
|
+
static const unsigned char non_canonical_p[32] = {
|
5
|
+
0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
6
|
+
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
|
7
|
+
};
|
8
|
+
static const unsigned char non_canonical_invalid_p[32] = {
|
9
|
+
0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
10
|
+
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
|
11
|
+
};
|
12
|
+
static const unsigned char max_canonical_p[32] = {
|
13
|
+
0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
14
|
+
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
|
15
|
+
};
|
16
|
+
|
17
|
+
static const unsigned char B[32] = {
|
18
|
+
0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
|
19
|
+
0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66
|
20
|
+
};
|
21
|
+
|
22
|
+
int
|
23
|
+
main(void)
|
24
|
+
{
|
25
|
+
unsigned char *n, *p, *q, *q2;
|
26
|
+
|
27
|
+
n = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_SCALARBYTES);
|
28
|
+
p = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_BYTES);
|
29
|
+
q = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_BYTES);
|
30
|
+
q2 = (unsigned char *) sodium_malloc(crypto_scalarmult_ed25519_BYTES);
|
31
|
+
|
32
|
+
randombytes_buf(n, crypto_scalarmult_ed25519_SCALARBYTES);
|
33
|
+
if (crypto_scalarmult_ed25519_base(q, n) != 0) {
|
34
|
+
printf("crypto_scalarmult_ed25519_base() failed\n");
|
35
|
+
}
|
36
|
+
memcpy(p, B, crypto_scalarmult_ed25519_BYTES);
|
37
|
+
if (crypto_scalarmult_ed25519(q2, n, p) != 0) {
|
38
|
+
printf("crypto_scalarmult_ed25519() failed\n");
|
39
|
+
}
|
40
|
+
if (memcmp(q, q2, crypto_scalarmult_ed25519_BYTES) != 0) {
|
41
|
+
printf("crypto_scalarmult_ed25519_base(n) != crypto_scalarmult_ed25519(n, 9)\n");
|
42
|
+
}
|
43
|
+
|
44
|
+
memset(n, 0, crypto_scalarmult_ed25519_SCALARBYTES);
|
45
|
+
if (crypto_scalarmult_ed25519_base(q, n) != -1) {
|
46
|
+
printf("crypto_scalarmult_ed25519_base(0) failed\n");
|
47
|
+
}
|
48
|
+
if (crypto_scalarmult_ed25519(q2, n, p) != -1) {
|
49
|
+
printf("crypto_scalarmult_ed25519(0) passed\n");
|
50
|
+
}
|
51
|
+
|
52
|
+
n[0] = 1;
|
53
|
+
if (crypto_scalarmult_ed25519_base(q, n) != 0) {
|
54
|
+
printf("crypto_scalarmult_ed25519_base() failed\n");
|
55
|
+
}
|
56
|
+
if (crypto_scalarmult_ed25519(q2, n, p) != 0) {
|
57
|
+
printf("crypto_scalarmult_ed25519() passed\n");
|
58
|
+
}
|
59
|
+
|
60
|
+
if (crypto_scalarmult_ed25519(q, n, non_canonical_p) != -1) {
|
61
|
+
printf("crypto_scalarmult_ed25519() didn't fail\n");
|
62
|
+
}
|
63
|
+
if (crypto_scalarmult_ed25519(q, n, non_canonical_invalid_p) != -1) {
|
64
|
+
printf("crypto_scalarmult_ed25519() didn't fail\n");
|
65
|
+
}
|
66
|
+
if (crypto_scalarmult_ed25519(q, n, max_canonical_p) != 0) {
|
67
|
+
printf("crypto_scalarmult_ed25519() failed\n");
|
68
|
+
}
|
69
|
+
|
70
|
+
memset(p, 0, crypto_scalarmult_ed25519_BYTES);
|
71
|
+
if (crypto_scalarmult_ed25519(q, n, p) != -1) {
|
72
|
+
printf("crypto_scalarmult_ed25519() didn't fail\n");
|
73
|
+
}
|
74
|
+
n[0] = 8;
|
75
|
+
if (crypto_scalarmult_ed25519(q, n, p) != -1) {
|
76
|
+
printf("crypto_scalarmult_ed25519() didn't fail\n");
|
77
|
+
}
|
78
|
+
|
79
|
+
sodium_free(q2);
|
80
|
+
sodium_free(q);
|
81
|
+
sodium_free(p);
|
82
|
+
sodium_free(n);
|
83
|
+
|
84
|
+
assert(crypto_scalarmult_ed25519_BYTES == crypto_scalarmult_ed25519_bytes());
|
85
|
+
assert(crypto_scalarmult_ed25519_SCALARBYTES == crypto_scalarmult_ed25519_scalarbytes());
|
86
|
+
|
87
|
+
printf("OK\n");
|
88
|
+
|
89
|
+
return 0;
|
90
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
OK
|
@@ -22,7 +22,7 @@ main(void)
|
|
22
22
|
k = (unsigned char *) sodium_malloc(crypto_secretbox_KEYBYTES);
|
23
23
|
mac = (unsigned char *) sodium_malloc(crypto_secretbox_MACBYTES);
|
24
24
|
crypto_secretbox_keygen(k);
|
25
|
-
randombytes_buf(m,
|
25
|
+
randombytes_buf(m, mlen);
|
26
26
|
randombytes_buf(nonce, crypto_secretbox_NONCEBYTES);
|
27
27
|
crypto_secretbox_easy(c, m, (unsigned long long) mlen, nonce, k);
|
28
28
|
if (crypto_secretbox_open_easy(
|
@@ -5,12 +5,12 @@
|
|
5
5
|
int
|
6
6
|
main(void)
|
7
7
|
{
|
8
|
-
crypto_secretstream_xchacha20poly1305_state *state;
|
8
|
+
crypto_secretstream_xchacha20poly1305_state *state, *statesave;
|
9
9
|
crypto_secretstream_xchacha20poly1305_state state_copy;
|
10
10
|
unsigned char *ad;
|
11
11
|
unsigned char *header;
|
12
12
|
unsigned char *k;
|
13
|
-
unsigned char *c1, *c2, *c3;
|
13
|
+
unsigned char *c1, *c2, *c3, *csave;
|
14
14
|
unsigned char *m1, *m2, *m3;
|
15
15
|
unsigned char *m1_, *m2_, *m3_;
|
16
16
|
unsigned long long res_len;
|
@@ -21,6 +21,8 @@ main(void)
|
|
21
21
|
|
22
22
|
state = (crypto_secretstream_xchacha20poly1305_state *)
|
23
23
|
sodium_malloc(crypto_secretstream_xchacha20poly1305_statebytes());
|
24
|
+
statesave = (crypto_secretstream_xchacha20poly1305_state *)
|
25
|
+
sodium_malloc(crypto_secretstream_xchacha20poly1305_statebytes());
|
24
26
|
header = (unsigned char *)
|
25
27
|
sodium_malloc(crypto_secretstream_xchacha20poly1305_HEADERBYTES);
|
26
28
|
|
@@ -35,6 +37,8 @@ main(void)
|
|
35
37
|
sodium_malloc(m2_len + crypto_secretstream_xchacha20poly1305_ABYTES);
|
36
38
|
c3 = (unsigned char *)
|
37
39
|
sodium_malloc(m3_len + crypto_secretstream_xchacha20poly1305_ABYTES);
|
40
|
+
csave = (unsigned char *)
|
41
|
+
sodium_malloc((m1_len | m2_len | m3_len) + crypto_secretstream_xchacha20poly1305_ABYTES);
|
38
42
|
|
39
43
|
ad = (unsigned char *) sodium_malloc(ad_len);
|
40
44
|
m1 = (unsigned char *) sodium_malloc(m1_len);
|
@@ -113,7 +117,7 @@ main(void)
|
|
113
117
|
|
114
118
|
ret = crypto_secretstream_xchacha20poly1305_pull
|
115
119
|
(state, m3, NULL, &tag,
|
116
|
-
c3, m3_len + crypto_secretstream_xchacha20poly1305_ABYTES,
|
120
|
+
c3, m3_len + crypto_secretstream_xchacha20poly1305_ABYTES, ad, ad_len);
|
117
121
|
assert(ret == -1);
|
118
122
|
|
119
123
|
/* previous without a tag */
|
@@ -196,6 +200,49 @@ main(void)
|
|
196
200
|
c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, NULL, 0);
|
197
201
|
assert(ret == 0);
|
198
202
|
|
203
|
+
/* with explicit rekeying using TAG_REKEY */
|
204
|
+
|
205
|
+
ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);
|
206
|
+
assert(ret == 0);
|
207
|
+
|
208
|
+
memcpy(statesave, state, sizeof *state);
|
209
|
+
|
210
|
+
ret = crypto_secretstream_xchacha20poly1305_push
|
211
|
+
(state, c1, NULL, m1, m1_len, NULL, 0, crypto_secretstream_xchacha20poly1305_TAG_REKEY);
|
212
|
+
assert(ret == 0);
|
213
|
+
|
214
|
+
ret = crypto_secretstream_xchacha20poly1305_push
|
215
|
+
(state, c2, NULL, m2, m2_len, NULL, 0, 0);
|
216
|
+
assert(ret == 0);
|
217
|
+
|
218
|
+
memcpy(csave, c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES);
|
219
|
+
|
220
|
+
ret = crypto_secretstream_xchacha20poly1305_init_pull(state, header, k);
|
221
|
+
assert(ret == 0);
|
222
|
+
ret = crypto_secretstream_xchacha20poly1305_pull
|
223
|
+
(state, m1, NULL, &tag,
|
224
|
+
c1, m1_len + crypto_secretstream_xchacha20poly1305_ABYTES, &tag, 0);
|
225
|
+
assert(ret == 0);
|
226
|
+
assert(tag == crypto_secretstream_xchacha20poly1305_TAG_REKEY);
|
227
|
+
|
228
|
+
ret = crypto_secretstream_xchacha20poly1305_pull
|
229
|
+
(state, m2, NULL, &tag,
|
230
|
+
c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES, &tag, 0);
|
231
|
+
assert(ret == 0);
|
232
|
+
assert(tag == 0);
|
233
|
+
|
234
|
+
memcpy(state, statesave, sizeof *state);
|
235
|
+
|
236
|
+
ret = crypto_secretstream_xchacha20poly1305_push
|
237
|
+
(state, c1, NULL, m1, m1_len, NULL, 0, 0);
|
238
|
+
assert(ret == 0);
|
239
|
+
|
240
|
+
ret = crypto_secretstream_xchacha20poly1305_push
|
241
|
+
(state, c2, NULL, m2, m2_len, NULL, 0, 0);
|
242
|
+
assert(ret == 0);
|
243
|
+
|
244
|
+
assert(memcmp(csave, c2, m2_len + crypto_secretstream_xchacha20poly1305_ABYTES) != 0);
|
245
|
+
|
199
246
|
/* New stream */
|
200
247
|
|
201
248
|
ret = crypto_secretstream_xchacha20poly1305_init_push(state, header, k);
|
@@ -249,11 +296,13 @@ main(void)
|
|
249
296
|
sodium_free(m2);
|
250
297
|
sodium_free(m1);
|
251
298
|
sodium_free(ad);
|
299
|
+
sodium_free(csave);
|
252
300
|
sodium_free(c3);
|
253
301
|
sodium_free(c2);
|
254
302
|
sodium_free(c1);
|
255
303
|
sodium_free(k);
|
256
304
|
sodium_free(header);
|
305
|
+
sodium_free(statesave);
|
257
306
|
sodium_free(state);
|
258
307
|
|
259
308
|
assert(crypto_secretstream_xchacha20poly1305_abytes() ==
|
@@ -1041,6 +1041,11 @@ static TestData test_data[] = {
|
|
1041
1041
|
{{0xf5,0xe5,0x76,0x7c,0xf1,0x53,0x31,0x95,0x17,0x63,0x0f,0x22,0x68,0x76,0xb8,0x6c,0x81,0x60,0xcc,0x58,0x3b,0xc0,0x13,0x74,0x4c,0x6b,0xf2,0x55,0xf5,0xcc,0x0e,0xe5,},{0x27,0x81,0x17,0xfc,0x14,0x4c,0x72,0x34,0x0f,0x67,0xd0,0xf2,0x31,0x6e,0x83,0x86,0xce,0xff,0xbf,0x2b,0x24,0x28,0xc9,0xc5,0x1f,0xef,0x7c,0x59,0x7f,0x1d,0x42,0x6e,},{0x0a,0xab,0x4c,0x90,0x05,0x01,0xb3,0xe2,0x4d,0x7c,0xdf,0x46,0x63,0x32,0x6a,0x3a,0x87,0xdf,0x5e,0x48,0x43,0xb2,0xcb,0xdb,0x67,0xcb,0xf6,0xe4,0x60,0xfe,0xc3,0x50,0xaa,0x53,0x71,0xb1,0x50,0x8f,0x9f,0x45,0x28,0xec,0xea,0x23,0xc4,0x36,0xd9,0x4b,0x5e,0x8f,0xcd,0x4f,0x68,0x1e,0x30,0xa6,0xac,0x00,0xa9,0x70,0x4a,0x18,0x8a,0x03,},"\x08\xb8\xb2\xb7\x33\x42\x42\x43\x76\x0f\xe4\x26\xa4\xb5\x49\x08\x63\x21\x10\xa6\x6c\x2f\x65\x91\xea\xbd\x33\x45\xe3\xe4\xeb\x98\xfa\x6e\x26\x4b\xf0\x9e\xfe\x12\xee\x50\xf8\xf5\x4e\x9f\x77\xb1\xe3\x55\xf6\xc5\x05\x44\xe2\x3f\xb1\x43\x3d\xdf\x73\xbe\x84\xd8\x79\xde\x7c\x00\x46\xdc\x49\x96\xd9\xe7\x73\xf4\xbc\x9e\xfe\x57\x38\x82\x9a\xdb\x26\xc8\x1b\x37\xc9\x3a\x1b\x27\x0b\x20\x32\x9d\x65\x86\x75\xfc\x6e\xa5\x34\xe0\x81\x0a\x44\x32\x82\x6b\xf5\x8c\x94\x1e\xfb\x65\xd5\x7a\x33\x8b\xbd\x2e\x26\x64\x0f\x89\xff\xbc\x1a\x85\x8e\xfc\xb8\x55\x0e\xe3\xa5\xe1\x99\x8b\xd1\x77\xe9\x3a\x73\x63\xc3\x44\xfe\x6b\x19\x9e\xe5\xd0\x2e\x82\xd5\x22\xc4\xfe\xba\x15\x45\x2f\x80\x28\x8a\x82\x1a\x57\x91\x16\xec\x6d\xad\x2b\x3b\x31\x0d\xa9\x03\x40\x1a\xa6\x21\x00\xab\x5d\x1a\x36\x55\x3e\x06\x20\x3b\x33\x89\x0c\xc9\xb8\x32\xf7\x9e\xf8\x05\x60\xcc\xb9\xa3\x9c\xe7\x67\x96\x7e\xd6\x28\xc6\xad\x57\x3c\xb1\x16\xdb\xef\xef\xd7\x54\x99\xda\x96\xbd\x68\xa8\xa9\x7b\x92\x8a\x8b\xbc\x10\x3b\x66\x21\xfc\xde\x2b\xec\xa1\x23\x1d\x20\x6b\xe6\xcd\x9e\xc7\xaf\xf6\xf6\xc9\x4f\xcd\x72\x04\xed\x34\x55\xc6\x8c\x83\xf4\xa4\x1d\xa4\xaf\x2b\x74\xef\x5c\x53\xf1\xd8\xac\x70\xbd\xcb\x7e\xd1\x85\xce\x81\xbd\x84\x35\x9d\x44\x25\x4d\x95\x62\x9e\x98\x55\xa9\x4a\x7c\x19\x58\xd1\xf8\xad\xa5\xd0\x53\x2e\xd8\xa5\xaa\x3f\xb2\xd1\x7b\xa7\x0e\xb6\x24\x8e\x59\x4e\x1a\x22\x97\xac\xbb\xb3\x9d\x50\x2f\x1a\x8c\x6e\xb6\xf1\xce\x22\xb3\xde\x1a\x1f\x40\xcc\x24\x55\x41\x19\xa8\x31\xa9\xaa\xd6\x07\x9c\xad\x88\x42\x5d\xe6\xbd\xe1\xa9\x18\x7e\xbb\x60\x92\xcf\x67\xbf\x2b\x13\xfd\x65\xf2\x70\x88\xd7\x8b\x7e\x88\x3c\x87\x59\xd2\xc4\xf5\xc6\x5a\xdb\x75\x53\x87\x8a\xd5\x75\xf9\xfa\xd8\x78\xe8\x0a\x0c\x9b\xa6\x3b\xcb\xcc\x27\x32\xe6\x94\x85\xbb\xc9\xc9\x0b\xfb\xd6\x24\x81\xd9\x08\x9b\xec\xcf\x80\xcf\xe2\xdf\x16\xa2\xcf\x65\xbd\x92\xdd\x59\x7b\x07\x07\xe0\x91\x7a\xf4\x8b\xbb\x75\xfe\xd4\x13\xd2\x38\xf5\x55\x5a\x7a\x56\x9d\x80\xc3\x41\x4a\x8d\x08\x59\xdc\x65\xa4\x61\x28\xba\xb2\x7a\xf8\x7a\x71\x31\x4f\x31\x8c\x78\x2b\x23\xeb\xfe\x80\x8b\x82\xb0\xce\x26\x40\x1d\x2e\x22\xf0\x4d\x83\xd1\x25\x5d\xc5\x1a\xdd\xd3\xb7\x5a\x2b\x1a\xe0\x78\x45\x04\xdf\x54\x3a\xf8\x96\x9b\xe3\xea\x70\x82\xff\x7f\xc9\x88\x8c\x14\x4d\xa2\xaf\x58\x42\x9e\xc9\x60\x31\xdb\xca\xd3\xda\xd9\xaf\x0d\xcb\xaa\xaf\x26\x8c\xb8\xfc\xff\xea\xd9\x4f\x3c\x7c\xa4\x95\xe0\x56\xa9\xb4\x7a\xcd\xb7\x51\xfb\x73\xe6\x66\xc6\xc6\x55\xad\xe8\x29\x72\x97\xd0\x7a\xd1\xba\x5e\x43\xf1\xbc\xa3\x23\x01\x65\x13\x39\xe2\x29\x04\xcc\x8c\x42\xf5\x8c\x30\xc0\x4a\xaf\xdb\x03\x8d\xda\x08\x47\xdd\x98\x8d\xcd\xa6\xf3\xbf\xd1\x5c\x4b\x4c\x45\x25\x00\x4a\xa0\x6e\xef\xf8\xca\x61\x78\x3a\xac\xec\x57\xfb\x3d\x1f\x92\xb0\xfe\x2f\xd1\xa8\x5f\x67\x24\x51\x7b\x65\xe6\x14\xad\x68\x08\xd6\xf6\xee\x34\xdf\xf7\x31\x0f\xdc\x82\xae\xbf\xd9\x04\xb0\x1e\x1d\xc5\x4b\x29\x27\x09\x4b\x2d\xb6\x8d\x6f\x90\x3b\x68\x40\x1a\xde\xbf\x5a\x7e\x08\xd7\x8f\xf4\xef\x5d\x63\x65\x3a\x65\x04\x0c\xf9\xbf\xd4\xac\xa7\x98\x4a\x74\xd3\x71\x45\x98\x67\x80\xfc\x0b\x16\xac\x45\x16\x49\xde\x61\x88\xa7\xdb\xdf\x19\x1f\x64\xb5\xfc\x5e\x2a\xb4\x7b\x57\xf7\xf7\x27\x6c\xd4\x19\xc1\x7a\x3c\xa8\xe1\xb9\x39\xae\x49\xe4\x88\xac\xba\x6b\x96\x56\x10\xb5\x48\x01\x09\xc8\xb1\x7b\x80\xe1\xb7\xb7\x50\xdf\xc7\x59\x8d\x5d\x50\x11\xfd\x2d\xcc\x56\x00\xa3\x2e\xf5\xb5\x2a\x1e\xcc\x82\x0e\x30\x8a\xa3\x42\x72\x1a\xac\x09\x43\xbf\x66\x86\xb6\x4b\x25\x79\x37\x65\x04\xcc\xc4\x93\xd9\x7e\x6a\xed\x3f\xb0\xf9\xcd\x71\xa4\x3d\xd4\x97\xf0\x1f\x17\xc0\xe2\xcb\x37\x97\xaa\x2a\x2f\x25\x66\x56\x16\x8e\x6c\x49\x6a\xfc\x5f\xb9\x32\x46\xf6\xb1\x11\x63\x98\xa3\x46\xf1\xa6\x41\xf3\xb0\x41\xe9\x89\xf7\x91\x4f\x90\xcc\x2c\x7f\xff\x35\x78\x76\xe5\x06\xb5\x0d\x33\x4b\xa7\x7c\x22\x5b\xc3\x07\xba\x53\x71\x52\xf3\xf1\x61\x0e\x4e\xaf\xe5\x95\xf6\xd9\xd9\x0d\x11\xfa\xa9\x33\xa1\x5e\xf1\x36\x95\x46\x86\x8a\x7f\x3a\x45\xa9\x67\x68\xd4\x0f\xd9\xd0\x34\x12\xc0\x91\xc6\x31\x5c\xf4\xfd\xe7\xcb\x68\x60\x69\x37\x38\x0d\xb2\xea\xaa\x70\x7b\x4c\x41\x85\xc3\x2e\xdd\xcd\xd3\x06\x70\x5e\x4d\xc1\xff\xc8\x72\xee\xee\x47\x5a\x64\xdf\xac\x86\xab\xa4\x1c\x06\x18\x98\x3f\x87\x41\xc5\xef\x68\xd3\xa1\x01\xe8\xa3\xb8\xca\xc6\x0c\x90\x5c\x15\xfc\x91\x08\x40\xb9\x4c\x00\xa0\xb9\xd0"},
|
1042
1042
|
};
|
1043
1043
|
|
1044
|
+
static const unsigned char non_canonical_p[32] = {
|
1045
|
+
0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
1046
|
+
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
|
1047
|
+
};
|
1048
|
+
|
1044
1049
|
static void add_l(unsigned char * const S)
|
1045
1050
|
{
|
1046
1051
|
static const unsigned char l[32] =
|
@@ -1176,6 +1181,13 @@ int main(void)
|
|
1176
1181
|
sig[63] ^= (j << 5);
|
1177
1182
|
}
|
1178
1183
|
|
1184
|
+
#ifndef ED25519_COMPAT
|
1185
|
+
if (crypto_sign_verify_detached(sig,
|
1186
|
+
(const unsigned char *)test_data[i].m,
|
1187
|
+
i, non_canonical_p) != -1) {
|
1188
|
+
printf("detached signature verification with non-canonical key should have failed\n");
|
1189
|
+
}
|
1190
|
+
#endif
|
1179
1191
|
memset(pk, 0, sizeof pk);
|
1180
1192
|
if (crypto_sign_verify_detached(sig,
|
1181
1193
|
(const unsigned char *)test_data[i].m,
|
@@ -1311,5 +1323,9 @@ int main(void)
|
|
1311
1323
|
== crypto_sign_ed25519_secretkeybytes());
|
1312
1324
|
assert(crypto_sign_statebytes() == crypto_sign_ed25519ph_statebytes());
|
1313
1325
|
|
1326
|
+
#ifdef ED25519_NONDETERMINISTIC
|
1327
|
+
exit(0);
|
1328
|
+
#endif
|
1329
|
+
|
1314
1330
|
return 0;
|
1315
1331
|
}
|
@@ -9,7 +9,6 @@ main(void)
|
|
9
9
|
unsigned char buf2[1000];
|
10
10
|
unsigned char buf1_rev[1000];
|
11
11
|
unsigned char buf2_rev[1000];
|
12
|
-
char buf3[33];
|
13
12
|
unsigned char nonce[24];
|
14
13
|
char nonce_hex[49];
|
15
14
|
unsigned char *bin_padded;
|
@@ -173,5 +172,7 @@ main(void)
|
|
173
172
|
sodium_free(bin_padded);
|
174
173
|
}
|
175
174
|
|
175
|
+
sodium_stackzero(512);
|
176
|
+
|
176
177
|
return 0;
|
177
178
|
}
|
@@ -244,7 +244,7 @@ tv_secretbox_xchacha20poly1305(void)
|
|
244
244
|
assert(crypto_secretbox_xchacha20poly1305_easy(out2, m, m_len, nonce, key) == 0);
|
245
245
|
assert(memcmp(out, out2,
|
246
246
|
crypto_secretbox_xchacha20poly1305_MACBYTES + m_len) == 0);
|
247
|
-
n = randombytes_uniform(crypto_secretbox_xchacha20poly1305_MACBYTES + m_len);
|
247
|
+
n = randombytes_uniform(crypto_secretbox_xchacha20poly1305_MACBYTES + (uint32_t) m_len);
|
248
248
|
assert(crypto_secretbox_xchacha20poly1305_open_easy
|
249
249
|
(out2, out2, crypto_secretbox_xchacha20poly1305_MACBYTES - 1,
|
250
250
|
nonce, key) == -1);
|
@@ -291,6 +291,7 @@ tv_secretbox_xchacha20poly1305(void)
|
|
291
291
|
assert(crypto_secretbox_xchacha20poly1305_keybytes() == crypto_secretbox_xchacha20poly1305_KEYBYTES);
|
292
292
|
assert(crypto_secretbox_xchacha20poly1305_noncebytes() == crypto_secretbox_xchacha20poly1305_NONCEBYTES);
|
293
293
|
assert(crypto_secretbox_xchacha20poly1305_macbytes() == crypto_secretbox_xchacha20poly1305_MACBYTES);
|
294
|
+
assert(crypto_secretbox_xchacha20poly1305_messagebytes_max() == crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX);
|
294
295
|
|
295
296
|
printf("tv_secretbox_xchacha20: ok\n");
|
296
297
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbnacl-libsodium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artiom Di
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rbnacl
|
@@ -53,6 +53,34 @@ dependencies:
|
|
53
53
|
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '10'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rake-compiler
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.9.7
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.9.7
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake-compiler-dock
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.5.2
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.5.2
|
56
84
|
description:
|
57
85
|
email:
|
58
86
|
- kron82@gmail.com
|
@@ -88,11 +116,13 @@ files:
|
|
88
116
|
- vendor/libsodium/autom4te.cache/output.1
|
89
117
|
- vendor/libsodium/autom4te.cache/output.2
|
90
118
|
- vendor/libsodium/autom4te.cache/output.3
|
119
|
+
- vendor/libsodium/autom4te.cache/output.4
|
91
120
|
- vendor/libsodium/autom4te.cache/requests
|
92
121
|
- vendor/libsodium/autom4te.cache/traces.0
|
93
122
|
- vendor/libsodium/autom4te.cache/traces.1
|
94
123
|
- vendor/libsodium/autom4te.cache/traces.2
|
95
124
|
- vendor/libsodium/autom4te.cache/traces.3
|
125
|
+
- vendor/libsodium/autom4te.cache/traces.4
|
96
126
|
- vendor/libsodium/build-aux/compile
|
97
127
|
- vendor/libsodium/build-aux/config.guess
|
98
128
|
- vendor/libsodium/build-aux/config.sub
|
@@ -205,6 +235,7 @@ files:
|
|
205
235
|
- vendor/libsodium/m4/ax_check_gnu_make.m4
|
206
236
|
- vendor/libsodium/m4/ax_check_link_flag.m4
|
207
237
|
- vendor/libsodium/m4/ax_pthread.m4
|
238
|
+
- vendor/libsodium/m4/ax_tls.m4
|
208
239
|
- vendor/libsodium/m4/ax_valgrind_check.m4
|
209
240
|
- vendor/libsodium/m4/ld-output-def.m4
|
210
241
|
- vendor/libsodium/m4/libtool.m4
|
@@ -233,6 +264,13 @@ files:
|
|
233
264
|
- vendor/libsodium/packaging/nuget/package.bat
|
234
265
|
- vendor/libsodium/packaging/nuget/package.config
|
235
266
|
- vendor/libsodium/packaging/nuget/package.gsl
|
267
|
+
- vendor/libsodium/regen-msvc/libsodium.vcxproj
|
268
|
+
- vendor/libsodium/regen-msvc/libsodium.vcxproj.filters
|
269
|
+
- vendor/libsodium/regen-msvc/libsodium.vcxproj.filters.tpl
|
270
|
+
- vendor/libsodium/regen-msvc/libsodium.vcxproj.tpl
|
271
|
+
- vendor/libsodium/regen-msvc/regen-msvc.py
|
272
|
+
- vendor/libsodium/regen-msvc/tl_libsodium.vcxproj.filters.tpl
|
273
|
+
- vendor/libsodium/regen-msvc/tl_libsodium.vcxproj.tpl
|
236
274
|
- vendor/libsodium/src/Makefile.am
|
237
275
|
- vendor/libsodium/src/Makefile.in
|
238
276
|
- vendor/libsodium/src/libsodium/Makefile.am
|
@@ -250,9 +288,16 @@ files:
|
|
250
288
|
- vendor/libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c
|
251
289
|
- vendor/libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c
|
252
290
|
- vendor/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c
|
253
|
-
- vendor/libsodium/src/libsodium/crypto_core/
|
254
|
-
- vendor/libsodium/src/libsodium/crypto_core/
|
255
|
-
- vendor/libsodium/src/libsodium/crypto_core/
|
291
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/core_ed25519.c
|
292
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c
|
293
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base.h
|
294
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/base2.h
|
295
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/constants.h
|
296
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h
|
297
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/base.h
|
298
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/base2.h
|
299
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/constants.h
|
300
|
+
- vendor/libsodium/src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h
|
256
301
|
- vendor/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c
|
257
302
|
- vendor/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c
|
258
303
|
- vendor/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c
|
@@ -317,8 +362,6 @@ files:
|
|
317
362
|
- vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c
|
318
363
|
- vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c
|
319
364
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c
|
320
|
-
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c
|
321
|
-
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h
|
322
365
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c
|
323
366
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h
|
324
367
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts.S
|
@@ -342,6 +385,7 @@ files:
|
|
342
385
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S
|
343
386
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c
|
344
387
|
- vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h
|
388
|
+
- vendor/libsodium/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.c
|
345
389
|
- vendor/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c
|
346
390
|
- vendor/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c
|
347
391
|
- vendor/libsodium/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c
|
@@ -354,11 +398,11 @@ files:
|
|
354
398
|
- vendor/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c
|
355
399
|
- vendor/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.c
|
356
400
|
- vendor/libsodium/src/libsodium/crypto_sign/crypto_sign.c
|
357
|
-
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ed25519_ref10.h
|
358
401
|
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c
|
359
402
|
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c
|
360
403
|
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c
|
361
404
|
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c
|
405
|
+
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h
|
362
406
|
- vendor/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519.c
|
363
407
|
- vendor/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c
|
364
408
|
- vendor/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.h
|
@@ -409,6 +453,7 @@ files:
|
|
409
453
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_box.h
|
410
454
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xchacha20poly1305.h
|
411
455
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h
|
456
|
+
- vendor/libsodium/src/libsodium/include/sodium/crypto_core_ed25519.h
|
412
457
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_core_hchacha20.h
|
413
458
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h
|
414
459
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h
|
@@ -430,6 +475,7 @@ files:
|
|
430
475
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h
|
431
476
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h
|
432
477
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h
|
478
|
+
- vendor/libsodium/src/libsodium/include/sodium/crypto_scalarmult_ed25519.h
|
433
479
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox.h
|
434
480
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox_xchacha20poly1305.h
|
435
481
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h
|
@@ -451,7 +497,9 @@ files:
|
|
451
497
|
- vendor/libsodium/src/libsodium/include/sodium/crypto_verify_64.h
|
452
498
|
- vendor/libsodium/src/libsodium/include/sodium/export.h
|
453
499
|
- vendor/libsodium/src/libsodium/include/sodium/private/common.h
|
454
|
-
- vendor/libsodium/src/libsodium/include/sodium/private/
|
500
|
+
- vendor/libsodium/src/libsodium/include/sodium/private/ed25519_ref10.h
|
501
|
+
- vendor/libsodium/src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h
|
502
|
+
- vendor/libsodium/src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h
|
455
503
|
- vendor/libsodium/src/libsodium/include/sodium/private/implementations.h
|
456
504
|
- vendor/libsodium/src/libsodium/include/sodium/private/mutex.h
|
457
505
|
- vendor/libsodium/src/libsodium/include/sodium/private/sse2_64_32.h
|
@@ -527,6 +575,8 @@ files:
|
|
527
575
|
- vendor/libsodium/test/default/core5.exp
|
528
576
|
- vendor/libsodium/test/default/core6.c
|
529
577
|
- vendor/libsodium/test/default/core6.exp
|
578
|
+
- vendor/libsodium/test/default/core_ed25519.c
|
579
|
+
- vendor/libsodium/test/default/core_ed25519.exp
|
530
580
|
- vendor/libsodium/test/default/ed25519_convert.c
|
531
581
|
- vendor/libsodium/test/default/ed25519_convert.exp
|
532
582
|
- vendor/libsodium/test/default/generichash.c
|
@@ -540,7 +590,6 @@ files:
|
|
540
590
|
- vendor/libsodium/test/default/hash2.exp
|
541
591
|
- vendor/libsodium/test/default/hash3.c
|
542
592
|
- vendor/libsodium/test/default/hash3.exp
|
543
|
-
- vendor/libsodium/test/default/index-wasm.html.tpl
|
544
593
|
- vendor/libsodium/test/default/index.html.tpl
|
545
594
|
- vendor/libsodium/test/default/kdf.c
|
546
595
|
- vendor/libsodium/test/default/kdf.exp
|
@@ -580,6 +629,8 @@ files:
|
|
580
629
|
- vendor/libsodium/test/default/scalarmult6.exp
|
581
630
|
- vendor/libsodium/test/default/scalarmult7.c
|
582
631
|
- vendor/libsodium/test/default/scalarmult7.exp
|
632
|
+
- vendor/libsodium/test/default/scalarmult_ed25519.c
|
633
|
+
- vendor/libsodium/test/default/scalarmult_ed25519.exp
|
583
634
|
- vendor/libsodium/test/default/secretbox.c
|
584
635
|
- vendor/libsodium/test/default/secretbox.exp
|
585
636
|
- vendor/libsodium/test/default/secretbox2.c
|
@@ -636,7 +687,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
636
687
|
requirements:
|
637
688
|
- - ">="
|
638
689
|
- !ruby/object:Gem::Version
|
639
|
-
version:
|
690
|
+
version: 2.2.6
|
640
691
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
641
692
|
requirements:
|
642
693
|
- - ">="
|
@@ -644,7 +695,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
644
695
|
version: '0'
|
645
696
|
requirements: []
|
646
697
|
rubyforge_project:
|
647
|
-
rubygems_version: 2.6.
|
698
|
+
rubygems_version: 2.6.13
|
648
699
|
signing_key:
|
649
700
|
specification_version: 4
|
650
701
|
summary: rbnacl with bundled libsodium
|