rbnacl-libsodium 1.0.13 → 1.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +5 -0
  3. data/lib/rbnacl/libsodium.rb +1 -0
  4. data/lib/rbnacl/libsodium/version.rb +1 -1
  5. data/vendor/libsodium/AUTHORS +2 -2
  6. data/vendor/libsodium/ChangeLog +64 -0
  7. data/vendor/libsodium/Makefile.am +1 -0
  8. data/vendor/libsodium/README.markdown +1 -3
  9. data/vendor/libsodium/THANKS +13 -3
  10. data/vendor/libsodium/builds/Makefile.am +65 -0
  11. data/vendor/libsodium/builds/msvc/resource.rc +2 -2
  12. data/vendor/libsodium/builds/msvc/version.h +3 -3
  13. data/vendor/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj +168 -173
  14. data/vendor/libsodium/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters +382 -394
  15. data/vendor/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj +168 -173
  16. data/vendor/libsodium/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters +382 -394
  17. data/vendor/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj +168 -173
  18. data/vendor/libsodium/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters +382 -394
  19. data/vendor/libsodium/builds/msvc/vs2015/libsodium/libsodium.vcxproj +168 -173
  20. data/vendor/libsodium/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters +382 -394
  21. data/vendor/libsodium/builds/msvc/vs2017/libsodium/libsodium.vcxproj +168 -173
  22. data/vendor/libsodium/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters +382 -394
  23. data/vendor/libsodium/configure.ac +59 -10
  24. data/vendor/libsodium/contrib/Findsodium.cmake +2 -0
  25. data/vendor/libsodium/dist-build/emscripten-symbols.def +72 -32
  26. data/vendor/libsodium/dist-build/emscripten.sh +33 -6
  27. data/vendor/libsodium/dist-build/generate-emscripten-symbols.sh +52 -38
  28. data/vendor/libsodium/dist-build/ios.sh +2 -2
  29. data/vendor/libsodium/libsodium.vcxproj +168 -173
  30. data/vendor/libsodium/libsodium.vcxproj.filters +220 -235
  31. data/vendor/libsodium/m4/ax_check_catchable_abrt.m4 +57 -0
  32. data/vendor/libsodium/m4/ax_check_gnu_make.m4 +2 -2
  33. data/vendor/libsodium/m4/ax_pthread.m4 +2 -2
  34. data/vendor/libsodium/msvc-scripts/process.bat +3 -3
  35. data/vendor/libsodium/packaging/dotnet-core/README.md +5 -5
  36. data/vendor/libsodium/packaging/dotnet-core/libsodium.props +5 -2
  37. data/vendor/libsodium/packaging/dotnet-core/prepare.py +13 -31
  38. data/vendor/libsodium/packaging/dotnet-core/recipes/linux-x64 +4 -0
  39. data/vendor/libsodium/packaging/nuget/package.config +1 -1
  40. data/vendor/libsodium/src/libsodium/Makefile.am +11 -12
  41. data/vendor/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +11 -4
  42. data/vendor/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c +17 -4
  43. data/vendor/libsodium/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c +8 -1
  44. data/vendor/libsodium/src/libsodium/crypto_box/crypto_box.c +6 -0
  45. data/vendor/libsodium/src/libsodium/crypto_box/crypto_box_easy.c +5 -4
  46. data/vendor/libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c +11 -4
  47. data/vendor/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c +6 -0
  48. data/vendor/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c +78 -17
  49. data/vendor/libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c +74 -64
  50. data/vendor/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c +2 -0
  51. data/vendor/libsodium/src/libsodium/crypto_kx/crypto_kx.c +7 -0
  52. data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h +1 -1
  53. data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h +1 -0
  54. data/vendor/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c +17 -17
  55. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c +53 -48
  56. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h +37 -11
  57. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c +23 -179
  58. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.c +4 -12
  59. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.c +244 -0
  60. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c +3 -12
  61. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c +4 -12
  62. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c +1 -5
  63. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h +1 -1
  64. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-avx512f.h +145 -0
  65. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c +91 -14
  66. data/vendor/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c +35 -14
  67. data/vendor/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.c +41 -4
  68. data/vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c +31 -17
  69. data/vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h +4 -0
  70. data/vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c +5 -1
  71. data/vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c +30 -1
  72. data/vendor/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c +8 -0
  73. data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c +3 -3
  74. data/vendor/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c +6 -0
  75. data/vendor/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c +5 -4
  76. data/vendor/libsodium/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c +11 -4
  77. data/vendor/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c +6 -0
  78. data/vendor/libsodium/src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c +311 -0
  79. data/vendor/libsodium/src/libsodium/crypto_sign/crypto_sign.c +6 -0
  80. data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ed25519_ref10.h +3 -0
  81. data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c +9 -2
  82. data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c +1 -1
  83. data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c +6 -5
  84. data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519.c +6 -0
  85. data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.c +3 -2
  86. data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.c +3 -2
  87. data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/u0.h +1 -1
  88. data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c +3 -2
  89. data/vendor/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c +12 -0
  90. data/vendor/libsodium/src/libsodium/crypto_stream/crypto_stream.c +6 -0
  91. data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.c +7 -1
  92. data/vendor/libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/u0.h +1 -1
  93. data/vendor/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012.c +6 -0
  94. data/vendor/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208.c +6 -0
  95. data/vendor/libsodium/src/libsodium/crypto_stream/xchacha20/stream_xchacha20.c +6 -0
  96. data/vendor/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c +6 -0
  97. data/vendor/libsodium/src/libsodium/crypto_verify/sodium/verify.c +66 -29
  98. data/vendor/libsodium/src/libsodium/include/Makefile.am +1 -1
  99. data/vendor/libsodium/src/libsodium/include/sodium.h +2 -2
  100. data/vendor/libsodium/src/libsodium/include/sodium/core.h +9 -0
  101. data/vendor/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h +26 -0
  102. data/vendor/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h +16 -4
  103. data/vendor/libsodium/src/libsodium/include/sodium/crypto_aead_xchacha20poly1305.h +10 -4
  104. data/vendor/libsodium/src/libsodium/include/sodium/crypto_box.h +4 -0
  105. data/vendor/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xchacha20poly1305.h +6 -0
  106. data/vendor/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h +24 -15
  107. data/vendor/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h +8 -4
  108. data/vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash.h +40 -18
  109. data/vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2i.h +8 -2
  110. data/vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2id.h +8 -2
  111. data/vendor/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h +11 -3
  112. data/vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox.h +4 -0
  113. data/vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox_xchacha20poly1305.h +6 -0
  114. data/vendor/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h +17 -8
  115. data/vendor/libsodium/src/libsodium/include/sodium/crypto_secretstream_xchacha20poly1305.h +102 -0
  116. data/vendor/libsodium/src/libsodium/include/sodium/crypto_sign.h +4 -0
  117. data/vendor/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h +4 -0
  118. data/vendor/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h +1 -0
  119. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream.h +4 -0
  120. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h +10 -0
  121. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h +4 -0
  122. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h +4 -0
  123. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h +15 -5
  124. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_xchacha20.h +4 -0
  125. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h +4 -0
  126. data/vendor/libsodium/src/libsodium/include/sodium/export.h +9 -0
  127. data/vendor/libsodium/src/libsodium/include/sodium/private/common.h +11 -0
  128. data/vendor/libsodium/src/libsodium/include/sodium/private/curve25519_ref10.h +2 -30
  129. data/vendor/libsodium/src/libsodium/include/sodium/randombytes.h +2 -0
  130. data/vendor/libsodium/src/libsodium/include/sodium/runtime.h +12 -9
  131. data/vendor/libsodium/src/libsodium/include/sodium/utils.h +36 -0
  132. data/vendor/libsodium/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c +3 -2
  133. data/vendor/libsodium/src/libsodium/randombytes/randombytes.c +18 -14
  134. data/vendor/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c +11 -10
  135. data/vendor/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c +20 -8
  136. data/vendor/libsodium/src/libsodium/sodium/codecs.c +333 -0
  137. data/vendor/libsodium/src/libsodium/sodium/core.c +36 -4
  138. data/vendor/libsodium/src/libsodium/sodium/runtime.c +18 -0
  139. data/vendor/libsodium/src/libsodium/sodium/utils.c +87 -100
  140. data/vendor/libsodium/test/constcheck.sh +19 -0
  141. data/vendor/libsodium/test/default/Makefile.am +39 -7
  142. data/vendor/libsodium/test/default/aead_aes256gcm.c +6 -0
  143. data/vendor/libsodium/test/default/aead_chacha20poly1305.c +16 -0
  144. data/vendor/libsodium/test/default/aead_xchacha20poly1305.c +25 -15
  145. data/vendor/libsodium/test/default/auth.c +13 -0
  146. data/vendor/libsodium/test/default/auth.exp +8 -0
  147. data/vendor/libsodium/test/default/box.c +3 -0
  148. data/vendor/libsodium/test/default/box2.c +2 -0
  149. data/vendor/libsodium/test/default/box_easy.c +1 -4
  150. data/vendor/libsodium/test/default/box_easy2.c +7 -3
  151. data/vendor/libsodium/test/default/chacha20.c +9 -2
  152. data/vendor/libsodium/test/default/cmptest.h +47 -1
  153. data/vendor/libsodium/test/default/codecs.c +226 -0
  154. data/vendor/libsodium/test/default/codecs.exp +28 -0
  155. data/vendor/libsodium/test/default/core3.c +42 -15
  156. data/vendor/libsodium/test/default/ed25519_convert.c +17 -0
  157. data/vendor/libsodium/test/default/kdf.c +8 -4
  158. data/vendor/libsodium/test/default/keygen.c +5 -2
  159. data/vendor/libsodium/test/default/kx.c +30 -0
  160. data/vendor/libsodium/test/default/metamorphic.c +187 -0
  161. data/vendor/libsodium/test/default/metamorphic.exp +1 -0
  162. data/vendor/libsodium/test/default/misuse.c +145 -0
  163. data/vendor/libsodium/test/default/misuse.exp +0 -0
  164. data/vendor/libsodium/test/default/onetimeauth.c +2 -0
  165. data/vendor/libsodium/test/default/{pwhash.c → pwhash_argon2i.c} +133 -106
  166. data/vendor/libsodium/test/default/{pwhash.exp → pwhash_argon2i.exp} +0 -1
  167. data/vendor/libsodium/test/default/pwhash_argon2id.c +254 -144
  168. data/vendor/libsodium/test/default/pwhash_argon2id.exp +2 -3
  169. data/vendor/libsodium/test/default/pwhash_scrypt.c +61 -18
  170. data/vendor/libsodium/test/default/pwhash_scrypt.exp +6 -0
  171. data/vendor/libsodium/test/default/randombytes.c +8 -3
  172. data/vendor/libsodium/test/default/secretbox.c +8 -0
  173. data/vendor/libsodium/test/default/secretbox2.c +5 -0
  174. data/vendor/libsodium/test/default/secretbox_easy.c +19 -1
  175. data/vendor/libsodium/test/default/secretbox_easy.exp +2 -0
  176. data/vendor/libsodium/test/default/secretbox_easy2.c +4 -0
  177. data/vendor/libsodium/test/default/secretstream.c +280 -0
  178. data/vendor/libsodium/test/default/secretstream.exp +1 -0
  179. data/vendor/libsodium/test/default/sign.c +31 -0
  180. data/vendor/libsodium/test/default/sodium_core.c +23 -1
  181. data/vendor/libsodium/test/default/sodium_core.exp +1 -1
  182. data/vendor/libsodium/test/default/sodium_utils.c +45 -56
  183. data/vendor/libsodium/test/default/sodium_utils.exp +0 -8
  184. data/vendor/libsodium/test/default/stream.c +2 -0
  185. data/vendor/libsodium/test/default/stream2.c +1 -0
  186. data/vendor/libsodium/test/default/xchacha20.c +58 -7
  187. metadata +21 -18
  188. data/vendor/libsodium/dist-build/emscripten-wasm.sh +0 -132
  189. data/vendor/libsodium/m4/pkg.m4 +0 -214
  190. data/vendor/libsodium/packaging/dotnet-core/desktop.targets +0 -16
  191. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/afternm_aes128ctr.c +0 -174
  192. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/beforenm_aes128ctr.c +0 -66
  193. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/common.h +0 -766
  194. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/consts.h +0 -28
  195. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/consts_aes128ctr.c +0 -28
  196. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/int128.h +0 -50
  197. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/int128_aes128ctr.c +0 -149
  198. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/stream_aes128ctr_nacl.c +0 -31
  199. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/nacl/xor_afternm_aes128ctr.c +0 -195
  200. data/vendor/libsodium/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr.c +0 -19
  201. data/vendor/libsodium/src/libsodium/include/sodium/crypto_stream_aes128ctr.h +0 -65
@@ -1,28 +0,0 @@
1
- #ifndef aes128ctr_nacl_consts_H
2
- #define aes128ctr_nacl_consts_H
3
-
4
- #include "int128.h"
5
-
6
- #define ROTB crypto_stream_aes128ctr_nacl_ROTB
7
- #define M0 crypto_stream_aes128ctr_nacl_M0
8
- #define EXPB0 crypto_stream_aes128ctr_nacl_EXPB0
9
- #define SWAP32 crypto_stream_aes128ctr_nacl_SWAP32
10
- #define M0SWAP crypto_stream_aes128ctr_nacl_M0SWAP
11
- #define SR crypto_stream_aes128ctr_nacl_SR
12
- #define SRM0 crypto_stream_aes128ctr_nacl_SRM0
13
- #define BS0 crypto_stream_aes128ctr_nacl_BS0
14
- #define BS1 crypto_stream_aes128ctr_nacl_BS1
15
- #define BS2 crypto_stream_aes128ctr_nacl_BS2
16
-
17
- extern const unsigned char ROTB[16];
18
- extern const unsigned char M0[16];
19
- extern const unsigned char EXPB0[16];
20
- extern const unsigned char SWAP32[16];
21
- extern const unsigned char M0SWAP[16];
22
- extern const unsigned char SR[16];
23
- extern const unsigned char SRM0[16];
24
- extern const aes_uint128_t BS0;
25
- extern const aes_uint128_t BS1;
26
- extern const aes_uint128_t BS2;
27
-
28
- #endif
@@ -1,28 +0,0 @@
1
- #include "consts.h"
2
-
3
- const unsigned char ROTB[16] = {
4
- 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00,
5
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08
6
- };
7
- const unsigned char M0[16] = { 0x0f, 0x0b, 0x07, 0x03, 0x0e, 0x0a, 0x06, 0x02,
8
- 0x0d, 0x09, 0x05, 0x01, 0x0c, 0x08, 0x04, 0x00 };
9
- const unsigned char EXPB0[16] = { 0x03, 0x03, 0x03, 0x03, 0x07, 0x07,
10
- 0x07, 0x07, 0x0b, 0x0b, 0x0b, 0x0b,
11
- 0x0f, 0x0f, 0x0f, 0x0f };
12
-
13
- const unsigned char SWAP32[16] = { 0x03, 0x02, 0x01, 0x00, 0x07, 0x06,
14
- 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08,
15
- 0x0f, 0x0e, 0x0d, 0x0c };
16
- const unsigned char M0SWAP[16] = { 0x0c, 0x08, 0x04, 0x00, 0x0d, 0x09,
17
- 0x05, 0x01, 0x0e, 0x0a, 0x06, 0x02,
18
- 0x0f, 0x0b, 0x07, 0x03 };
19
- const unsigned char SR[16] = { 0x01, 0x02, 0x03, 0x00, 0x06, 0x07, 0x04, 0x05,
20
- 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f };
21
- const unsigned char SRM0[16] = {
22
- 0x0f, 0x0a, 0x05, 0x00, 0x0e, 0x09, 0x04, 0x03,
23
- 0x0d, 0x08, 0x07, 0x02, 0x0c, 0x0b, 0x06, 0x01
24
- };
25
-
26
- const aes_uint128_t BS0 = { { 0x5555555555555555ULL, 0x5555555555555555ULL } };
27
- const aes_uint128_t BS1 = { { 0x3333333333333333ULL, 0x3333333333333333ULL } };
28
- const aes_uint128_t BS2 = { { 0x0f0f0f0f0f0f0f0fULL, 0x0f0f0f0f0f0f0f0fULL } };
@@ -1,50 +0,0 @@
1
- #ifndef aes128ctr_nacl_int128_H
2
- #define aes128ctr_nacl_int128_H
3
-
4
- #include <stdint.h>
5
-
6
- #include "common.h"
7
-
8
- typedef union {
9
- uint64_t u64[2];
10
- uint32_t u32[4];
11
- uint8_t u8[16];
12
- } aes_uint128_t;
13
-
14
- #define xor2 crypto_stream_aes128ctr_nacl_xor2
15
- void xor2(aes_uint128_t *r, const aes_uint128_t *x);
16
-
17
- #define and2 crypto_stream_aes128ctr_nacl_and2
18
- void and2(aes_uint128_t *r, const aes_uint128_t *x);
19
-
20
- #define or2 crypto_stream_aes128ctr_nacl_or2
21
- void or2(aes_uint128_t *r, const aes_uint128_t *x);
22
-
23
- #define copy2 crypto_stream_aes128ctr_nacl_copy2
24
- void copy2(aes_uint128_t *r, const aes_uint128_t *x);
25
-
26
- #define shufb crypto_stream_aes128ctr_nacl_shufb
27
- void shufb(aes_uint128_t *r, const unsigned char *l);
28
-
29
- #define shufd crypto_stream_aes128ctr_nacl_shufd
30
- void shufd(aes_uint128_t *r, const aes_uint128_t *x, const unsigned int c);
31
-
32
- #define rshift32_littleendian crypto_stream_aes128ctr_nacl_rshift32_littleendian
33
- void rshift32_littleendian(aes_uint128_t *r, const unsigned int n);
34
-
35
- #define rshift64_littleendian crypto_stream_aes128ctr_nacl_rshift64_littleendian
36
- void rshift64_littleendian(aes_uint128_t *r, const unsigned int n);
37
-
38
- #define lshift64_littleendian crypto_stream_aes128ctr_nacl_lshift64_littleendian
39
- void lshift64_littleendian(aes_uint128_t *r, const unsigned int n);
40
-
41
- #define toggle crypto_stream_aes128ctr_nacl_toggle
42
- void toggle(aes_uint128_t *r);
43
-
44
- #define xor_rcon crypto_stream_aes128ctr_nacl_xor_rcon
45
- void xor_rcon(aes_uint128_t *r);
46
-
47
- #define add_uint32_big crypto_stream_aes128ctr_nacl_add_uint32_big
48
- void add_uint32_big(aes_uint128_t *r, uint32_t x);
49
-
50
- #endif
@@ -1,149 +0,0 @@
1
- #include <stdint.h>
2
-
3
- #include "common.h"
4
- #include "int128.h"
5
-
6
- void
7
- xor2(aes_uint128_t *r, const aes_uint128_t *x)
8
- {
9
- r->u64[0] ^= x->u64[0];
10
- r->u64[1] ^= x->u64[1];
11
- }
12
-
13
- void
14
- and2(aes_uint128_t *r, const aes_uint128_t *x)
15
- {
16
- r->u64[0] &= x->u64[0];
17
- r->u64[1] &= x->u64[1];
18
- }
19
-
20
- void
21
- or2(aes_uint128_t *r, const aes_uint128_t *x)
22
- {
23
- r->u64[0] |= x->u64[0];
24
- r->u64[1] |= x->u64[1];
25
- }
26
-
27
- void
28
- copy2(aes_uint128_t *r, const aes_uint128_t *x)
29
- {
30
- r->u64[0] = x->u64[0];
31
- r->u64[1] = x->u64[1];
32
- }
33
-
34
- void
35
- shufb(aes_uint128_t *r, const unsigned char *l)
36
- {
37
- aes_uint128_t t;
38
- uint8_t *ct;
39
- uint8_t *cr;
40
-
41
- copy2(&t, r);
42
- cr = r->u8;
43
- ct = t.u8;
44
- cr[0] = ct[l[0]];
45
- cr[1] = ct[l[1]];
46
- cr[2] = ct[l[2]];
47
- cr[3] = ct[l[3]];
48
- cr[4] = ct[l[4]];
49
- cr[5] = ct[l[5]];
50
- cr[6] = ct[l[6]];
51
- cr[7] = ct[l[7]];
52
- cr[8] = ct[l[8]];
53
- cr[9] = ct[l[9]];
54
- cr[10] = ct[l[10]];
55
- cr[11] = ct[l[11]];
56
- cr[12] = ct[l[12]];
57
- cr[13] = ct[l[13]];
58
- cr[14] = ct[l[14]];
59
- cr[15] = ct[l[15]];
60
- }
61
-
62
- void
63
- shufd(aes_uint128_t *r, const aes_uint128_t *x, const unsigned int c)
64
- {
65
- aes_uint128_t t;
66
-
67
- t.u32[0] = x->u32[c >> 0 & 3];
68
- t.u32[1] = x->u32[c >> 2 & 3];
69
- t.u32[2] = x->u32[c >> 4 & 3];
70
- t.u32[3] = x->u32[c >> 6 & 3];
71
- copy2(r, &t);
72
- }
73
-
74
- void
75
- rshift32_littleendian(aes_uint128_t *r, const unsigned int n)
76
- {
77
- unsigned char *rp = (unsigned char *) r;
78
- uint32_t t;
79
-
80
- t = LOAD32_LE(rp);
81
- t >>= n;
82
- STORE32_LE(rp, t);
83
- t = LOAD32_LE(rp + 4);
84
- t >>= n;
85
- STORE32_LE(rp + 4, t);
86
- t = LOAD32_LE(rp + 8);
87
- t >>= n;
88
- STORE32_LE(rp + 8, t);
89
- t = LOAD32_LE(rp + 12);
90
- t >>= n;
91
- STORE32_LE(rp + 12, t);
92
- }
93
-
94
- void
95
- rshift64_littleendian(aes_uint128_t *r, const unsigned int n)
96
- {
97
- unsigned char *rp = (unsigned char *) r;
98
- uint64_t t;
99
-
100
- t = LOAD64_LE(rp);
101
- t >>= n;
102
- STORE64_LE(rp, t);
103
- t = LOAD64_LE(rp + 8);
104
- t >>= n;
105
- STORE64_LE(rp + 8, t);
106
- }
107
-
108
- void
109
- lshift64_littleendian(aes_uint128_t *r, const unsigned int n)
110
- {
111
- unsigned char *rp = (unsigned char *) r;
112
- uint64_t t;
113
-
114
- t = LOAD64_LE(rp);
115
- t <<= n;
116
- STORE64_LE(rp, t);
117
- t = LOAD64_LE(rp + 8);
118
- t <<= n;
119
- STORE64_LE(rp + 8, t);
120
- }
121
-
122
- void
123
- toggle(aes_uint128_t *r)
124
- {
125
- r->u64[0] ^= 0xffffffffffffffffULL;
126
- r->u64[1] ^= 0xffffffffffffffffULL;
127
- }
128
-
129
- void
130
- xor_rcon(aes_uint128_t *r)
131
- {
132
- unsigned char *rp = (unsigned char *) r;
133
- uint32_t t;
134
-
135
- t = LOAD32_LE(rp + 12);
136
- t ^= 0xffffffff;
137
- STORE32_LE(rp + 12, t);
138
- }
139
-
140
- void
141
- add_uint32_big(aes_uint128_t *r, uint32_t x)
142
- {
143
- unsigned char *rp = (unsigned char *) r;
144
- uint32_t t;
145
-
146
- t = LOAD32_LE(rp + 12);
147
- t += x;
148
- STORE32_LE(rp + 12, t);
149
- }
@@ -1,31 +0,0 @@
1
-
2
- #include "crypto_stream_aes128ctr.h"
3
-
4
- #ifdef __GNUC__
5
- # pragma GCC diagnostic ignored "-Wdeprecated-declarations"
6
- #endif
7
-
8
- int
9
- crypto_stream_aes128ctr(unsigned char *out, unsigned long long outlen,
10
- const unsigned char *n, const unsigned char *k)
11
- {
12
- unsigned char d[crypto_stream_aes128ctr_BEFORENMBYTES];
13
-
14
- crypto_stream_aes128ctr_beforenm(d, k);
15
- crypto_stream_aes128ctr_afternm(out, outlen, n, d);
16
-
17
- return 0;
18
- }
19
-
20
- int
21
- crypto_stream_aes128ctr_xor(unsigned char *out, const unsigned char *in,
22
- unsigned long long inlen, const unsigned char *n,
23
- const unsigned char *k)
24
- {
25
- unsigned char d[crypto_stream_aes128ctr_BEFORENMBYTES];
26
-
27
- crypto_stream_aes128ctr_beforenm(d, k);
28
- crypto_stream_aes128ctr_xor_afternm(out, in, inlen, n, d);
29
-
30
- return 0;
31
- }
@@ -1,195 +0,0 @@
1
- /* Author: Peter Schwabe, ported from an assembly implementation by Emilia
2
- * Käsper
3
- * Date: 2009-03-19
4
- * Public domain */
5
-
6
- #include "common.h"
7
- #include "consts.h"
8
- #include "crypto_stream_aes128ctr.h"
9
- #include "int128.h"
10
-
11
- int
12
- crypto_stream_aes128ctr_xor_afternm(unsigned char *out, const unsigned char *in,
13
- unsigned long long len,
14
- const unsigned char *nonce,
15
- const unsigned char *c)
16
- {
17
- aes_uint128_t xmm0;
18
- aes_uint128_t xmm1;
19
- aes_uint128_t xmm2;
20
- aes_uint128_t xmm3;
21
- aes_uint128_t xmm4;
22
- aes_uint128_t xmm5;
23
- aes_uint128_t xmm6;
24
- aes_uint128_t xmm7;
25
- aes_uint128_t xmm8;
26
- aes_uint128_t xmm9;
27
- aes_uint128_t xmm10;
28
- aes_uint128_t xmm11;
29
- aes_uint128_t xmm12;
30
- aes_uint128_t xmm13;
31
- aes_uint128_t xmm14;
32
- aes_uint128_t xmm15;
33
- aes_uint128_t nonce_stack;
34
- unsigned long long lensav;
35
- unsigned char bl[128];
36
- unsigned char *blp;
37
- unsigned char *np;
38
- unsigned char b;
39
- uint32_t tmp;
40
-
41
- /* Copy nonce on the stack */
42
- copy2(&nonce_stack, (const aes_uint128_t *) (nonce + 0));
43
- np = (unsigned char *) &nonce_stack;
44
-
45
- enc_block:
46
-
47
- xmm0 = *(aes_uint128_t *) (np + 0);
48
- copy2(&xmm1, &xmm0);
49
- shufb(&xmm1, SWAP32);
50
- copy2(&xmm2, &xmm1);
51
- copy2(&xmm3, &xmm1);
52
- copy2(&xmm4, &xmm1);
53
- copy2(&xmm5, &xmm1);
54
- copy2(&xmm6, &xmm1);
55
- copy2(&xmm7, &xmm1);
56
-
57
- add_uint32_big(&xmm1, 1);
58
- add_uint32_big(&xmm2, 2);
59
- add_uint32_big(&xmm3, 3);
60
- add_uint32_big(&xmm4, 4);
61
- add_uint32_big(&xmm5, 5);
62
- add_uint32_big(&xmm6, 6);
63
- add_uint32_big(&xmm7, 7);
64
-
65
- shufb(&xmm0, M0);
66
- shufb(&xmm1, M0SWAP);
67
- shufb(&xmm2, M0SWAP);
68
- shufb(&xmm3, M0SWAP);
69
- shufb(&xmm4, M0SWAP);
70
- shufb(&xmm5, M0SWAP);
71
- shufb(&xmm6, M0SWAP);
72
- shufb(&xmm7, M0SWAP);
73
-
74
- bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, xmm8);
75
-
76
- aesround(1, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
77
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
78
- aesround(2, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
79
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
80
- aesround(3, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
81
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
82
- aesround(4, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
83
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
84
- aesround(5, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
85
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
86
- aesround(6, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
87
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
88
- aesround(7, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
89
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
90
- aesround(8, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
91
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
92
- aesround(9, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
93
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
94
- lastround(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1,
95
- xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
96
-
97
- bitslice(xmm13, xmm10, xmm15, xmm11, xmm14, xmm12, xmm9, xmm8, xmm0);
98
-
99
- if (len < 128) {
100
- goto partial;
101
- }
102
- if (len == 128) {
103
- goto full;
104
- }
105
- tmp = LOAD32_BE(np + 12);
106
- tmp += 8;
107
- STORE32_BE(np + 12, tmp);
108
-
109
- xor2(&xmm8, (const aes_uint128_t *) (in + 0));
110
- xor2(&xmm9, (const aes_uint128_t *) (in + 16));
111
- xor2(&xmm12, (const aes_uint128_t *) (in + 32));
112
- xor2(&xmm14, (const aes_uint128_t *) (in + 48));
113
- xor2(&xmm11, (const aes_uint128_t *) (in + 64));
114
- xor2(&xmm15, (const aes_uint128_t *) (in + 80));
115
- xor2(&xmm10, (const aes_uint128_t *) (in + 96));
116
- xor2(&xmm13, (const aes_uint128_t *) (in + 112));
117
-
118
- *(aes_uint128_t *) (out + 0) = xmm8;
119
- *(aes_uint128_t *) (out + 16) = xmm9;
120
- *(aes_uint128_t *) (out + 32) = xmm12;
121
- *(aes_uint128_t *) (out + 48) = xmm14;
122
- *(aes_uint128_t *) (out + 64) = xmm11;
123
- *(aes_uint128_t *) (out + 80) = xmm15;
124
- *(aes_uint128_t *) (out + 96) = xmm10;
125
- *(aes_uint128_t *) (out + 112) = xmm13;
126
-
127
- len -= 128;
128
- in += 128;
129
- out += 128;
130
-
131
- goto enc_block;
132
-
133
- partial:
134
-
135
- lensav = len;
136
- len >>= 4;
137
-
138
- tmp = LOAD32_BE(np + 12);
139
- tmp += len;
140
- STORE32_BE(np + 12, tmp);
141
-
142
- blp = bl;
143
-
144
- *(aes_uint128_t *) (blp + 0) = xmm8;
145
- *(aes_uint128_t *) (blp + 16) = xmm9;
146
- *(aes_uint128_t *) (blp + 32) = xmm12;
147
- *(aes_uint128_t *) (blp + 48) = xmm14;
148
- *(aes_uint128_t *) (blp + 64) = xmm11;
149
- *(aes_uint128_t *) (blp + 80) = xmm15;
150
- *(aes_uint128_t *) (blp + 96) = xmm10;
151
- *(aes_uint128_t *) (blp + 112) = xmm13;
152
-
153
- bytes:
154
-
155
- if (lensav == 0) {
156
- goto end;
157
- }
158
- b = blp[0]; /* clang false positive */
159
- b ^= *(const unsigned char *) (in + 0);
160
- *(unsigned char *) (out + 0) = b;
161
-
162
- blp += 1;
163
- in += 1;
164
- out += 1;
165
- lensav -= 1;
166
-
167
- goto bytes;
168
-
169
- full:
170
-
171
- tmp = LOAD32_BE(np + 12);
172
- tmp += 8;
173
- STORE32_BE(np + 12, tmp);
174
-
175
- xor2(&xmm8, (const aes_uint128_t *) (in + 0));
176
- xor2(&xmm9, (const aes_uint128_t *) (in + 16));
177
- xor2(&xmm12, (const aes_uint128_t *) (in + 32));
178
- xor2(&xmm14, (const aes_uint128_t *) (in + 48));
179
- xor2(&xmm11, (const aes_uint128_t *) (in + 64));
180
- xor2(&xmm15, (const aes_uint128_t *) (in + 80));
181
- xor2(&xmm10, (const aes_uint128_t *) (in + 96));
182
- xor2(&xmm13, (const aes_uint128_t *) (in + 112));
183
-
184
- *(aes_uint128_t *) (out + 0) = xmm8;
185
- *(aes_uint128_t *) (out + 16) = xmm9;
186
- *(aes_uint128_t *) (out + 32) = xmm12;
187
- *(aes_uint128_t *) (out + 48) = xmm14;
188
- *(aes_uint128_t *) (out + 64) = xmm11;
189
- *(aes_uint128_t *) (out + 80) = xmm15;
190
- *(aes_uint128_t *) (out + 96) = xmm10;
191
- *(aes_uint128_t *) (out + 112) = xmm13;
192
-
193
- end:
194
- return 0;
195
- }