ruby_nacl 0.1.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.
Files changed (499) hide show
  1. data/Changelog +0 -0
  2. data/README.md +49 -0
  3. data/ext/ruby_nacl/NaCl/MACROS +56 -0
  4. data/ext/ruby_nacl/NaCl/OPERATIONS +11 -0
  5. data/ext/ruby_nacl/NaCl/PROTOTYPES.c +26 -0
  6. data/ext/ruby_nacl/NaCl/PROTOTYPES.cpp +17 -0
  7. data/ext/ruby_nacl/NaCl/README +1 -0
  8. data/ext/ruby_nacl/NaCl/commandline/nacl-sha256.c +64 -0
  9. data/ext/ruby_nacl/NaCl/commandline/nacl-sha512.c +64 -0
  10. data/ext/ruby_nacl/NaCl/cpucycles/alpha.c +80 -0
  11. data/ext/ruby_nacl/NaCl/cpucycles/alpha.h +27 -0
  12. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuinfo.c +16 -0
  13. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuinfo.h +27 -0
  14. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuspeed.c +25 -0
  15. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuspeed.h +27 -0
  16. data/ext/ruby_nacl/NaCl/cpucycles/amd64tscfreq.c +18 -0
  17. data/ext/ruby_nacl/NaCl/cpucycles/amd64tscfreq.h +27 -0
  18. data/ext/ruby_nacl/NaCl/cpucycles/celllinux.c +83 -0
  19. data/ext/ruby_nacl/NaCl/cpucycles/celllinux.h +27 -0
  20. data/ext/ruby_nacl/NaCl/cpucycles/cortex.c +73 -0
  21. data/ext/ruby_nacl/NaCl/cpucycles/cortex.h +27 -0
  22. data/ext/ruby_nacl/NaCl/cpucycles/dev4ns.c +62 -0
  23. data/ext/ruby_nacl/NaCl/cpucycles/dev4ns.h +27 -0
  24. data/ext/ruby_nacl/NaCl/cpucycles/do +105 -0
  25. data/ext/ruby_nacl/NaCl/cpucycles/gettimeofday.c +32 -0
  26. data/ext/ruby_nacl/NaCl/cpucycles/gettimeofday.h +27 -0
  27. data/ext/ruby_nacl/NaCl/cpucycles/hppapstat.c +26 -0
  28. data/ext/ruby_nacl/NaCl/cpucycles/hppapstat.h +27 -0
  29. data/ext/ruby_nacl/NaCl/cpucycles/ia64cpuinfo.c +15 -0
  30. data/ext/ruby_nacl/NaCl/cpucycles/ia64cpuinfo.h +27 -0
  31. data/ext/ruby_nacl/NaCl/cpucycles/mips.c +65 -0
  32. data/ext/ruby_nacl/NaCl/cpucycles/mips.h +27 -0
  33. data/ext/ruby_nacl/NaCl/cpucycles/monotonic.c +34 -0
  34. data/ext/ruby_nacl/NaCl/cpucycles/monotonic.h +27 -0
  35. data/ext/ruby_nacl/NaCl/cpucycles/monotoniccpuinfo.c +33 -0
  36. data/ext/ruby_nacl/NaCl/cpucycles/monotoniccpuinfo.h +27 -0
  37. data/ext/ruby_nacl/NaCl/cpucycles/osfreq.c +65 -0
  38. data/ext/ruby_nacl/NaCl/cpucycles/powerpccpuinfo.c +95 -0
  39. data/ext/ruby_nacl/NaCl/cpucycles/powerpccpuinfo.h +27 -0
  40. data/ext/ruby_nacl/NaCl/cpucycles/powerpcmacos.c +42 -0
  41. data/ext/ruby_nacl/NaCl/cpucycles/powerpcmacos.h +27 -0
  42. data/ext/ruby_nacl/NaCl/cpucycles/sgi.c +38 -0
  43. data/ext/ruby_nacl/NaCl/cpucycles/sgi.h +27 -0
  44. data/ext/ruby_nacl/NaCl/cpucycles/sparc32cpuinfo.c +16 -0
  45. data/ext/ruby_nacl/NaCl/cpucycles/sparc32cpuinfo.h +27 -0
  46. data/ext/ruby_nacl/NaCl/cpucycles/sparccpuinfo.c +15 -0
  47. data/ext/ruby_nacl/NaCl/cpucycles/sparccpuinfo.h +27 -0
  48. data/ext/ruby_nacl/NaCl/cpucycles/test.c +77 -0
  49. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuinfo.c +15 -0
  50. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuinfo.h +27 -0
  51. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuspeed.c +24 -0
  52. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuspeed.h +27 -0
  53. data/ext/ruby_nacl/NaCl/cpucycles/x86estimate.c +59 -0
  54. data/ext/ruby_nacl/NaCl/cpucycles/x86estimate.h +27 -0
  55. data/ext/ruby_nacl/NaCl/cpucycles/x86tscfreq.c +17 -0
  56. data/ext/ruby_nacl/NaCl/cpucycles/x86tscfreq.h +27 -0
  57. data/ext/ruby_nacl/NaCl/cpuid/cbytes.c +16 -0
  58. data/ext/ruby_nacl/NaCl/cpuid/cpuid.c +41 -0
  59. data/ext/ruby_nacl/NaCl/cpuid/do +37 -0
  60. data/ext/ruby_nacl/NaCl/cpuid/unknown.c +7 -0
  61. data/ext/ruby_nacl/NaCl/cpuid/x86.c +41 -0
  62. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/checksum +1 -0
  63. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/api.h +2 -0
  64. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/hmac.c +83 -0
  65. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/verify.c +9 -0
  66. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/used +0 -0
  67. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/checksum +1 -0
  68. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/api.h +2 -0
  69. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/hmac.c +86 -0
  70. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/verify.c +9 -0
  71. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/selected +0 -0
  72. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/used +0 -0
  73. data/ext/ruby_nacl/NaCl/crypto_auth/measure.c +69 -0
  74. data/ext/ruby_nacl/NaCl/crypto_auth/try.c +119 -0
  75. data/ext/ruby_nacl/NaCl/crypto_auth/wrapper-auth.cpp +11 -0
  76. data/ext/ruby_nacl/NaCl/crypto_auth/wrapper-verify.cpp +14 -0
  77. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/checksum +1 -0
  78. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/after.c +22 -0
  79. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/api.h +6 -0
  80. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/before.c +17 -0
  81. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/box.c +27 -0
  82. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/keypair.c +12 -0
  83. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/selected +0 -0
  84. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/used +0 -0
  85. data/ext/ruby_nacl/NaCl/crypto_box/measure.c +137 -0
  86. data/ext/ruby_nacl/NaCl/crypto_box/try.c +195 -0
  87. data/ext/ruby_nacl/NaCl/crypto_box/wrapper-box.cpp +24 -0
  88. data/ext/ruby_nacl/NaCl/crypto_box/wrapper-keypair.cpp +12 -0
  89. data/ext/ruby_nacl/NaCl/crypto_box/wrapper-open.cpp +27 -0
  90. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/checksum +1 -0
  91. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/api.h +4 -0
  92. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/core.c +135 -0
  93. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/implementors +1 -0
  94. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/api.h +4 -0
  95. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/core.c +108 -0
  96. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/implementors +1 -0
  97. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/used +0 -0
  98. data/ext/ruby_nacl/NaCl/crypto_core/measure.c +18 -0
  99. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/checksum +1 -0
  100. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/api.h +4 -0
  101. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/core.c +134 -0
  102. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/implementors +1 -0
  103. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/used +0 -0
  104. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/checksum +1 -0
  105. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/api.h +4 -0
  106. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/core.c +134 -0
  107. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/implementors +1 -0
  108. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/used +0 -0
  109. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/checksum +1 -0
  110. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/api.h +4 -0
  111. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/core.c +134 -0
  112. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/implementors +1 -0
  113. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/used +0 -0
  114. data/ext/ruby_nacl/NaCl/crypto_core/try.c +116 -0
  115. data/ext/ruby_nacl/NaCl/crypto_core/wrapper-empty.cpp +0 -0
  116. data/ext/ruby_nacl/NaCl/crypto_hash/measure.c +66 -0
  117. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/checksum +1 -0
  118. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/api.h +1 -0
  119. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/hash.c +69 -0
  120. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/implementors +1 -0
  121. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/used +0 -0
  122. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/checksum +1 -0
  123. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/api.h +1 -0
  124. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/hash.c +71 -0
  125. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/implementors +1 -0
  126. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/selected +0 -0
  127. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/used +0 -0
  128. data/ext/ruby_nacl/NaCl/crypto_hash/try.c +77 -0
  129. data/ext/ruby_nacl/NaCl/crypto_hash/wrapper-hash.cpp +10 -0
  130. data/ext/ruby_nacl/NaCl/crypto_hashblocks/measure.c +18 -0
  131. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/checksum +1 -0
  132. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/api.h +2 -0
  133. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/blocks.c +228 -0
  134. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/implementors +1 -0
  135. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/api.h +2 -0
  136. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/blocks.c +212 -0
  137. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/implementors +1 -0
  138. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/used +0 -0
  139. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/checksum +1 -0
  140. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/api.h +2 -0
  141. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/blocks.c +256 -0
  142. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/implementors +1 -0
  143. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/api.h +2 -0
  144. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/blocks.c +239 -0
  145. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/implementors +1 -0
  146. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/selected +0 -0
  147. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/used +0 -0
  148. data/ext/ruby_nacl/NaCl/crypto_hashblocks/try.c +79 -0
  149. data/ext/ruby_nacl/NaCl/crypto_hashblocks/wrapper-empty.cpp +0 -0
  150. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/measure.c +69 -0
  151. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/api.h +2 -0
  152. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/auth.c +1616 -0
  153. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/verify.c +9 -0
  154. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/api.h +2 -0
  155. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/auth.s +2787 -0
  156. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/constants.s +85 -0
  157. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/verify.c +9 -0
  158. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/checksum +1 -0
  159. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/api.h +2 -0
  160. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/auth.c +104 -0
  161. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/verify.c +9 -0
  162. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/selected +0 -0
  163. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/used +0 -0
  164. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/api.h +2 -0
  165. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/auth.s +2779 -0
  166. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/constants.s +85 -0
  167. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/verify.c +9 -0
  168. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/try.c +119 -0
  169. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/wrapper-auth.cpp +11 -0
  170. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/wrapper-verify.cpp +14 -0
  171. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/api.h +2 -0
  172. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/base.c +8 -0
  173. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/const.s +114 -0
  174. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/fromdouble.s +195 -0
  175. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/implementors +1 -0
  176. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/init.s +13 -0
  177. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/mainloop.s +3990 -0
  178. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/mult.s +410 -0
  179. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/smult.c +91 -0
  180. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/square.s +298 -0
  181. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/todouble.s +144 -0
  182. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/checksum +1 -0
  183. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/api.h +2 -0
  184. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/base.c +8 -0
  185. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/implementors +1 -0
  186. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/smult.c +477 -0
  187. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/api.h +2 -0
  188. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/base.c +16 -0
  189. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/implementors +1 -0
  190. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/smult.c +265 -0
  191. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/used +0 -0
  192. data/ext/ruby_nacl/NaCl/crypto_scalarmult/measure.c +61 -0
  193. data/ext/ruby_nacl/NaCl/crypto_scalarmult/try.c +126 -0
  194. data/ext/ruby_nacl/NaCl/crypto_scalarmult/wrapper-base.cpp +11 -0
  195. data/ext/ruby_nacl/NaCl/crypto_scalarmult/wrapper-mult.cpp +12 -0
  196. data/ext/ruby_nacl/NaCl/crypto_secretbox/measure.c +75 -0
  197. data/ext/ruby_nacl/NaCl/crypto_secretbox/try.c +129 -0
  198. data/ext/ruby_nacl/NaCl/crypto_secretbox/wrapper-box.cpp +19 -0
  199. data/ext/ruby_nacl/NaCl/crypto_secretbox/wrapper-open.cpp +22 -0
  200. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/checksum +1 -0
  201. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/ref/api.h +4 -0
  202. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/ref/box.c +35 -0
  203. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/selected +0 -0
  204. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/used +0 -0
  205. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/api.h +3 -0
  206. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/fe25519.c +345 -0
  207. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/fe25519.h +54 -0
  208. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/ge25519.c +227 -0
  209. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/ge25519.h +34 -0
  210. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sc25519.c +146 -0
  211. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sc25519.h +51 -0
  212. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sign.c +103 -0
  213. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/selected +0 -0
  214. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/used +0 -0
  215. data/ext/ruby_nacl/NaCl/crypto_sign/measure.c +83 -0
  216. data/ext/ruby_nacl/NaCl/crypto_sign/try.c +86 -0
  217. data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-keypair.cpp +12 -0
  218. data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-sign-open.cpp +24 -0
  219. data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-sign.cpp +23 -0
  220. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/checksum +1 -0
  221. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/afternm.s +12308 -0
  222. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/api.h +3 -0
  223. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/beforenm.s +13694 -0
  224. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/stream.c +14 -0
  225. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/xor.c +15 -0
  226. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/xor_afternm.s +12407 -0
  227. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/afternm.c +158 -0
  228. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/api.h +3 -0
  229. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/beforenm.c +59 -0
  230. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/common.c +64 -0
  231. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/common.h +788 -0
  232. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/consts.c +14 -0
  233. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/consts.h +28 -0
  234. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/int128.c +128 -0
  235. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/int128.h +47 -0
  236. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/stream.c +28 -0
  237. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/types.h +10 -0
  238. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/xor_afternm.c +180 -0
  239. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/used +0 -0
  240. data/ext/ruby_nacl/NaCl/crypto_stream/measure.c +73 -0
  241. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/api.h +2 -0
  242. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/implementors +1 -0
  243. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/stream.s +4823 -0
  244. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/checksum +1 -0
  245. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/api.h +2 -0
  246. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/implementors +1 -0
  247. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/stream.c +49 -0
  248. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/xor.c +52 -0
  249. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/used +0 -0
  250. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/api.h +2 -0
  251. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/implementors +1 -0
  252. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/stream.s +5078 -0
  253. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/api.h +2 -0
  254. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/implementors +1 -0
  255. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/stream.s +4823 -0
  256. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/checksum +1 -0
  257. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/api.h +2 -0
  258. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/implementors +1 -0
  259. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/stream.c +49 -0
  260. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/xor.c +52 -0
  261. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/used +0 -0
  262. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/api.h +2 -0
  263. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/implementors +1 -0
  264. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/stream.s +5078 -0
  265. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/api.h +2 -0
  266. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/implementors +1 -0
  267. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/stream.s +4823 -0
  268. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/checksum +1 -0
  269. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/api.h +2 -0
  270. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/implementors +1 -0
  271. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/stream.c +49 -0
  272. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/xor.c +52 -0
  273. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/used +0 -0
  274. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/api.h +2 -0
  275. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/implementors +1 -0
  276. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/stream.s +5078 -0
  277. data/ext/ruby_nacl/NaCl/crypto_stream/try.c +124 -0
  278. data/ext/ruby_nacl/NaCl/crypto_stream/wrapper-stream.cpp +12 -0
  279. data/ext/ruby_nacl/NaCl/crypto_stream/wrapper-xor.cpp +17 -0
  280. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/checksum +1 -0
  281. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/api.h +2 -0
  282. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/implementors +1 -0
  283. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/stream.c +22 -0
  284. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/xor.c +23 -0
  285. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/selected +0 -0
  286. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/used +0 -0
  287. data/ext/ruby_nacl/NaCl/crypto_stream.h +18 -0
  288. data/ext/ruby_nacl/NaCl/crypto_stream_aes128ctr.h +33 -0
  289. data/ext/ruby_nacl/NaCl/crypto_verify/16/checksum +1 -0
  290. data/ext/ruby_nacl/NaCl/crypto_verify/16/ref/api.h +1 -0
  291. data/ext/ruby_nacl/NaCl/crypto_verify/16/ref/verify.c +24 -0
  292. data/ext/ruby_nacl/NaCl/crypto_verify/16/used +0 -0
  293. data/ext/ruby_nacl/NaCl/crypto_verify/32/checksum +1 -0
  294. data/ext/ruby_nacl/NaCl/crypto_verify/32/ref/api.h +1 -0
  295. data/ext/ruby_nacl/NaCl/crypto_verify/32/ref/verify.c +40 -0
  296. data/ext/ruby_nacl/NaCl/crypto_verify/32/used +0 -0
  297. data/ext/ruby_nacl/NaCl/crypto_verify/measure.c +18 -0
  298. data/ext/ruby_nacl/NaCl/crypto_verify/try.c +75 -0
  299. data/ext/ruby_nacl/NaCl/crypto_verify/wrapper-empty.cpp +0 -0
  300. data/ext/ruby_nacl/NaCl/curvecp/LIBS +31 -0
  301. data/ext/ruby_nacl/NaCl/curvecp/README +10 -0
  302. data/ext/ruby_nacl/NaCl/curvecp/SOURCES +36 -0
  303. data/ext/ruby_nacl/NaCl/curvecp/TARGETS +5 -0
  304. data/ext/ruby_nacl/NaCl/curvecp/blocking.c +12 -0
  305. data/ext/ruby_nacl/NaCl/curvecp/blocking.h +7 -0
  306. data/ext/ruby_nacl/NaCl/curvecp/byte.h +8 -0
  307. data/ext/ruby_nacl/NaCl/curvecp/byte_copy.c +8 -0
  308. data/ext/ruby_nacl/NaCl/curvecp/byte_isequal.c +10 -0
  309. data/ext/ruby_nacl/NaCl/curvecp/byte_zero.c +7 -0
  310. data/ext/ruby_nacl/NaCl/curvecp/crypto_block.c +35 -0
  311. data/ext/ruby_nacl/NaCl/curvecp/crypto_block.h +4 -0
  312. data/ext/ruby_nacl/NaCl/curvecp/curvecpclient.c +476 -0
  313. data/ext/ruby_nacl/NaCl/curvecp/curvecpmakekey.c +57 -0
  314. data/ext/ruby_nacl/NaCl/curvecp/curvecpmessage.c +654 -0
  315. data/ext/ruby_nacl/NaCl/curvecp/curvecpprintkey.c +46 -0
  316. data/ext/ruby_nacl/NaCl/curvecp/curvecpserver.c +497 -0
  317. data/ext/ruby_nacl/NaCl/curvecp/die.c +42 -0
  318. data/ext/ruby_nacl/NaCl/curvecp/die.h +16 -0
  319. data/ext/ruby_nacl/NaCl/curvecp/e.c +106 -0
  320. data/ext/ruby_nacl/NaCl/curvecp/e.h +438 -0
  321. data/ext/ruby_nacl/NaCl/curvecp/hexparse.c +25 -0
  322. data/ext/ruby_nacl/NaCl/curvecp/hexparse.h +6 -0
  323. data/ext/ruby_nacl/NaCl/curvecp/load.c +33 -0
  324. data/ext/ruby_nacl/NaCl/curvecp/load.h +6 -0
  325. data/ext/ruby_nacl/NaCl/curvecp/nameparse.c +19 -0
  326. data/ext/ruby_nacl/NaCl/curvecp/nameparse.h +6 -0
  327. data/ext/ruby_nacl/NaCl/curvecp/nanoseconds.c +27 -0
  328. data/ext/ruby_nacl/NaCl/curvecp/nanoseconds.h +6 -0
  329. data/ext/ruby_nacl/NaCl/curvecp/open.h +10 -0
  330. data/ext/ruby_nacl/NaCl/curvecp/open_cwd.c +6 -0
  331. data/ext/ruby_nacl/NaCl/curvecp/open_lock.c +19 -0
  332. data/ext/ruby_nacl/NaCl/curvecp/open_pipe.c +15 -0
  333. data/ext/ruby_nacl/NaCl/curvecp/open_read.c +17 -0
  334. data/ext/ruby_nacl/NaCl/curvecp/open_write.c +17 -0
  335. data/ext/ruby_nacl/NaCl/curvecp/portparse.c +14 -0
  336. data/ext/ruby_nacl/NaCl/curvecp/portparse.h +6 -0
  337. data/ext/ruby_nacl/NaCl/curvecp/randommod.c +14 -0
  338. data/ext/ruby_nacl/NaCl/curvecp/randommod.h +6 -0
  339. data/ext/ruby_nacl/NaCl/curvecp/safenonce.c +74 -0
  340. data/ext/ruby_nacl/NaCl/curvecp/safenonce.h +6 -0
  341. data/ext/ruby_nacl/NaCl/curvecp/savesync.c +24 -0
  342. data/ext/ruby_nacl/NaCl/curvecp/savesync.h +6 -0
  343. data/ext/ruby_nacl/NaCl/curvecp/socket.h +9 -0
  344. data/ext/ruby_nacl/NaCl/curvecp/socket_bind.c +15 -0
  345. data/ext/ruby_nacl/NaCl/curvecp/socket_recv.c +23 -0
  346. data/ext/ruby_nacl/NaCl/curvecp/socket_send.c +19 -0
  347. data/ext/ruby_nacl/NaCl/curvecp/socket_udp.c +36 -0
  348. data/ext/ruby_nacl/NaCl/curvecp/uint16_pack.c +7 -0
  349. data/ext/ruby_nacl/NaCl/curvecp/uint16_pack.h +8 -0
  350. data/ext/ruby_nacl/NaCl/curvecp/uint16_unpack.c +9 -0
  351. data/ext/ruby_nacl/NaCl/curvecp/uint16_unpack.h +8 -0
  352. data/ext/ruby_nacl/NaCl/curvecp/uint32_pack.c +9 -0
  353. data/ext/ruby_nacl/NaCl/curvecp/uint32_pack.h +8 -0
  354. data/ext/ruby_nacl/NaCl/curvecp/uint32_unpack.c +11 -0
  355. data/ext/ruby_nacl/NaCl/curvecp/uint32_unpack.h +8 -0
  356. data/ext/ruby_nacl/NaCl/curvecp/uint64_pack.c +13 -0
  357. data/ext/ruby_nacl/NaCl/curvecp/uint64_pack.h +8 -0
  358. data/ext/ruby_nacl/NaCl/curvecp/uint64_unpack.c +15 -0
  359. data/ext/ruby_nacl/NaCl/curvecp/uint64_unpack.h +8 -0
  360. data/ext/ruby_nacl/NaCl/curvecp/writeall.c +27 -0
  361. data/ext/ruby_nacl/NaCl/curvecp/writeall.h +6 -0
  362. data/ext/ruby_nacl/NaCl/do +468 -0
  363. data/ext/ruby_nacl/NaCl/inttypes/crypto_int16.c +3 -0
  364. data/ext/ruby_nacl/NaCl/inttypes/crypto_int32.c +3 -0
  365. data/ext/ruby_nacl/NaCl/inttypes/crypto_int64.c +3 -0
  366. data/ext/ruby_nacl/NaCl/inttypes/crypto_int8.c +3 -0
  367. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint16.c +3 -0
  368. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint32.c +3 -0
  369. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint64.c +3 -0
  370. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint8.c +3 -0
  371. data/ext/ruby_nacl/NaCl/inttypes/do +47 -0
  372. data/ext/ruby_nacl/NaCl/inttypes/signed.h +17 -0
  373. data/ext/ruby_nacl/NaCl/inttypes/unsigned.h +17 -0
  374. data/ext/ruby_nacl/NaCl/measure-anything.c +225 -0
  375. data/ext/ruby_nacl/NaCl/okcompilers/abiname.c +45 -0
  376. data/ext/ruby_nacl/NaCl/okcompilers/archivers +2 -0
  377. data/ext/ruby_nacl/NaCl/okcompilers/c +8 -0
  378. data/ext/ruby_nacl/NaCl/okcompilers/cpp +8 -0
  379. data/ext/ruby_nacl/NaCl/okcompilers/do +196 -0
  380. data/ext/ruby_nacl/NaCl/okcompilers/lib.c +29 -0
  381. data/ext/ruby_nacl/NaCl/okcompilers/lib.cpp +19 -0
  382. data/ext/ruby_nacl/NaCl/okcompilers/main.c +25 -0
  383. data/ext/ruby_nacl/NaCl/okcompilers/main.cpp +22 -0
  384. data/ext/ruby_nacl/NaCl/randombytes/devurandom.c +34 -0
  385. data/ext/ruby_nacl/NaCl/randombytes/devurandom.h +24 -0
  386. data/ext/ruby_nacl/NaCl/randombytes/do +43 -0
  387. data/ext/ruby_nacl/NaCl/randombytes/test.c +15 -0
  388. data/ext/ruby_nacl/NaCl/tests/auth.c +19 -0
  389. data/ext/ruby_nacl/NaCl/tests/auth.out +4 -0
  390. data/ext/ruby_nacl/NaCl/tests/auth2.c +34 -0
  391. data/ext/ruby_nacl/NaCl/tests/auth2.out +4 -0
  392. data/ext/ruby_nacl/NaCl/tests/auth3.c +34 -0
  393. data/ext/ruby_nacl/NaCl/tests/auth3.out +1 -0
  394. data/ext/ruby_nacl/NaCl/tests/auth4.cpp +44 -0
  395. data/ext/ruby_nacl/NaCl/tests/auth4.out +1 -0
  396. data/ext/ruby_nacl/NaCl/tests/auth5.c +36 -0
  397. data/ext/ruby_nacl/NaCl/tests/auth5.out +0 -0
  398. data/ext/ruby_nacl/NaCl/tests/auth6.cpp +46 -0
  399. data/ext/ruby_nacl/NaCl/tests/auth6.out +0 -0
  400. data/ext/ruby_nacl/NaCl/tests/box.c +63 -0
  401. data/ext/ruby_nacl/NaCl/tests/box.out +19 -0
  402. data/ext/ruby_nacl/NaCl/tests/box2.c +64 -0
  403. data/ext/ruby_nacl/NaCl/tests/box2.out +17 -0
  404. data/ext/ruby_nacl/NaCl/tests/box3.cpp +60 -0
  405. data/ext/ruby_nacl/NaCl/tests/box3.out +19 -0
  406. data/ext/ruby_nacl/NaCl/tests/box4.cpp +66 -0
  407. data/ext/ruby_nacl/NaCl/tests/box4.out +17 -0
  408. data/ext/ruby_nacl/NaCl/tests/box5.cpp +30 -0
  409. data/ext/ruby_nacl/NaCl/tests/box5.out +0 -0
  410. data/ext/ruby_nacl/NaCl/tests/box6.cpp +43 -0
  411. data/ext/ruby_nacl/NaCl/tests/box6.out +0 -0
  412. data/ext/ruby_nacl/NaCl/tests/box7.c +36 -0
  413. data/ext/ruby_nacl/NaCl/tests/box7.out +0 -0
  414. data/ext/ruby_nacl/NaCl/tests/box8.c +41 -0
  415. data/ext/ruby_nacl/NaCl/tests/box8.out +0 -0
  416. data/ext/ruby_nacl/NaCl/tests/core1.c +30 -0
  417. data/ext/ruby_nacl/NaCl/tests/core1.out +4 -0
  418. data/ext/ruby_nacl/NaCl/tests/core2.c +33 -0
  419. data/ext/ruby_nacl/NaCl/tests/core2.out +4 -0
  420. data/ext/ruby_nacl/NaCl/tests/core3.c +41 -0
  421. data/ext/ruby_nacl/NaCl/tests/core3.out +1 -0
  422. data/ext/ruby_nacl/NaCl/tests/core4.c +33 -0
  423. data/ext/ruby_nacl/NaCl/tests/core4.out +8 -0
  424. data/ext/ruby_nacl/NaCl/tests/core5.c +32 -0
  425. data/ext/ruby_nacl/NaCl/tests/core5.out +4 -0
  426. data/ext/ruby_nacl/NaCl/tests/core6.c +47 -0
  427. data/ext/ruby_nacl/NaCl/tests/core6.out +4 -0
  428. data/ext/ruby_nacl/NaCl/tests/hash.c +14 -0
  429. data/ext/ruby_nacl/NaCl/tests/hash.out +1 -0
  430. data/ext/ruby_nacl/NaCl/tests/hash2.cpp +18 -0
  431. data/ext/ruby_nacl/NaCl/tests/hash2.out +1 -0
  432. data/ext/ruby_nacl/NaCl/tests/hash3.c +14 -0
  433. data/ext/ruby_nacl/NaCl/tests/hash3.out +1 -0
  434. data/ext/ruby_nacl/NaCl/tests/hash4.cpp +18 -0
  435. data/ext/ruby_nacl/NaCl/tests/hash4.out +1 -0
  436. data/ext/ruby_nacl/NaCl/tests/onetimeauth.c +42 -0
  437. data/ext/ruby_nacl/NaCl/tests/onetimeauth.out +2 -0
  438. data/ext/ruby_nacl/NaCl/tests/onetimeauth2.c +40 -0
  439. data/ext/ruby_nacl/NaCl/tests/onetimeauth2.out +1 -0
  440. data/ext/ruby_nacl/NaCl/tests/onetimeauth5.cpp +46 -0
  441. data/ext/ruby_nacl/NaCl/tests/onetimeauth5.out +2 -0
  442. data/ext/ruby_nacl/NaCl/tests/onetimeauth6.cpp +50 -0
  443. data/ext/ruby_nacl/NaCl/tests/onetimeauth6.out +1 -0
  444. data/ext/ruby_nacl/NaCl/tests/onetimeauth7.c +36 -0
  445. data/ext/ruby_nacl/NaCl/tests/onetimeauth7.out +0 -0
  446. data/ext/ruby_nacl/NaCl/tests/onetimeauth8.cpp +46 -0
  447. data/ext/ruby_nacl/NaCl/tests/onetimeauth8.out +0 -0
  448. data/ext/ruby_nacl/NaCl/tests/scalarmult.c +23 -0
  449. data/ext/ruby_nacl/NaCl/tests/scalarmult.out +4 -0
  450. data/ext/ruby_nacl/NaCl/tests/scalarmult2.c +23 -0
  451. data/ext/ruby_nacl/NaCl/tests/scalarmult2.out +4 -0
  452. data/ext/ruby_nacl/NaCl/tests/scalarmult3.cpp +31 -0
  453. data/ext/ruby_nacl/NaCl/tests/scalarmult3.out +4 -0
  454. data/ext/ruby_nacl/NaCl/tests/scalarmult4.cpp +31 -0
  455. data/ext/ruby_nacl/NaCl/tests/scalarmult4.out +4 -0
  456. data/ext/ruby_nacl/NaCl/tests/scalarmult5.c +30 -0
  457. data/ext/ruby_nacl/NaCl/tests/scalarmult5.out +4 -0
  458. data/ext/ruby_nacl/NaCl/tests/scalarmult6.c +30 -0
  459. data/ext/ruby_nacl/NaCl/tests/scalarmult6.out +4 -0
  460. data/ext/ruby_nacl/NaCl/tests/scalarmult7.cpp +32 -0
  461. data/ext/ruby_nacl/NaCl/tests/scalarmult7.out +4 -0
  462. data/ext/ruby_nacl/NaCl/tests/secretbox.c +56 -0
  463. data/ext/ruby_nacl/NaCl/tests/secretbox.out +19 -0
  464. data/ext/ruby_nacl/NaCl/tests/secretbox2.c +57 -0
  465. data/ext/ruby_nacl/NaCl/tests/secretbox2.out +17 -0
  466. data/ext/ruby_nacl/NaCl/tests/secretbox3.cpp +52 -0
  467. data/ext/ruby_nacl/NaCl/tests/secretbox3.out +19 -0
  468. data/ext/ruby_nacl/NaCl/tests/secretbox4.cpp +54 -0
  469. data/ext/ruby_nacl/NaCl/tests/secretbox4.out +17 -0
  470. data/ext/ruby_nacl/NaCl/tests/secretbox5.cpp +29 -0
  471. data/ext/ruby_nacl/NaCl/tests/secretbox5.out +0 -0
  472. data/ext/ruby_nacl/NaCl/tests/secretbox6.cpp +42 -0
  473. data/ext/ruby_nacl/NaCl/tests/secretbox6.out +0 -0
  474. data/ext/ruby_nacl/NaCl/tests/secretbox7.c +32 -0
  475. data/ext/ruby_nacl/NaCl/tests/secretbox7.out +0 -0
  476. data/ext/ruby_nacl/NaCl/tests/secretbox8.c +37 -0
  477. data/ext/ruby_nacl/NaCl/tests/secretbox8.out +0 -0
  478. data/ext/ruby_nacl/NaCl/tests/stream.c +29 -0
  479. data/ext/ruby_nacl/NaCl/tests/stream.out +1 -0
  480. data/ext/ruby_nacl/NaCl/tests/stream2.c +27 -0
  481. data/ext/ruby_nacl/NaCl/tests/stream2.out +1 -0
  482. data/ext/ruby_nacl/NaCl/tests/stream3.c +28 -0
  483. data/ext/ruby_nacl/NaCl/tests/stream3.out +4 -0
  484. data/ext/ruby_nacl/NaCl/tests/stream4.c +53 -0
  485. data/ext/ruby_nacl/NaCl/tests/stream4.out +17 -0
  486. data/ext/ruby_nacl/NaCl/tests/stream5.cpp +29 -0
  487. data/ext/ruby_nacl/NaCl/tests/stream5.out +1 -0
  488. data/ext/ruby_nacl/NaCl/tests/stream6.cpp +27 -0
  489. data/ext/ruby_nacl/NaCl/tests/stream6.out +1 -0
  490. data/ext/ruby_nacl/NaCl/tests/stream7.cpp +30 -0
  491. data/ext/ruby_nacl/NaCl/tests/stream7.out +4 -0
  492. data/ext/ruby_nacl/NaCl/tests/stream8.cpp +56 -0
  493. data/ext/ruby_nacl/NaCl/tests/stream8.out +17 -0
  494. data/ext/ruby_nacl/NaCl/try-anything.c +173 -0
  495. data/ext/ruby_nacl/NaCl/version +1 -0
  496. data/ext/ruby_nacl/extconf.rb +18 -0
  497. data/ext/ruby_nacl/ruby_nacl.cpp +147 -0
  498. data/ext/ruby_nacl/ruby_nacl.h +49 -0
  499. metadata +554 -0
@@ -0,0 +1,124 @@
1
+ /*
2
+ * crypto_stream/try.c version 20090118
3
+ * D. J. Bernstein
4
+ * Public domain.
5
+ */
6
+
7
+ #include <stdlib.h>
8
+ #include "crypto_stream.h"
9
+
10
+ extern unsigned char *alignedcalloc(unsigned long long);
11
+
12
+ const char *primitiveimplementation = crypto_stream_IMPLEMENTATION;
13
+
14
+ #define MAXTEST_BYTES 10000
15
+ #define CHECKSUM_BYTES 4096
16
+ #define TUNE_BYTES 1536
17
+
18
+ static unsigned char *k;
19
+ static unsigned char *n;
20
+ static unsigned char *m;
21
+ static unsigned char *c;
22
+ static unsigned char *s;
23
+ static unsigned char *k2;
24
+ static unsigned char *n2;
25
+ static unsigned char *m2;
26
+ static unsigned char *c2;
27
+ static unsigned char *s2;
28
+
29
+ void preallocate(void)
30
+ {
31
+ }
32
+
33
+ void allocate(void)
34
+ {
35
+ k = alignedcalloc(crypto_stream_KEYBYTES);
36
+ n = alignedcalloc(crypto_stream_NONCEBYTES);
37
+ m = alignedcalloc(MAXTEST_BYTES);
38
+ c = alignedcalloc(MAXTEST_BYTES);
39
+ s = alignedcalloc(MAXTEST_BYTES);
40
+ k2 = alignedcalloc(crypto_stream_KEYBYTES);
41
+ n2 = alignedcalloc(crypto_stream_NONCEBYTES);
42
+ m2 = alignedcalloc(MAXTEST_BYTES);
43
+ c2 = alignedcalloc(MAXTEST_BYTES);
44
+ s2 = alignedcalloc(MAXTEST_BYTES);
45
+ }
46
+
47
+ void predoit(void)
48
+ {
49
+ }
50
+
51
+ void doit(void)
52
+ {
53
+ crypto_stream_xor(c,m,TUNE_BYTES,n,k);
54
+ }
55
+
56
+ char checksum[crypto_stream_KEYBYTES * 2 + 1];
57
+
58
+ const char *checksum_compute(void)
59
+ {
60
+ long long i;
61
+ long long j;
62
+
63
+ for (i = 0;i < CHECKSUM_BYTES;++i) {
64
+ long long mlen = i;
65
+ long long clen = i;
66
+ long long slen = i;
67
+ long long klen = crypto_stream_KEYBYTES;
68
+ long long nlen = crypto_stream_NONCEBYTES;
69
+ for (j = -16;j < 0;++j) m[j] = random();
70
+ for (j = -16;j < 0;++j) c[j] = random();
71
+ for (j = -16;j < 0;++j) s[j] = random();
72
+ for (j = -16;j < 0;++j) n[j] = random();
73
+ for (j = -16;j < 0;++j) k[j] = random();
74
+ for (j = mlen;j < mlen + 16;++j) m[j] = random();
75
+ for (j = clen;j < clen + 16;++j) c[j] = random();
76
+ for (j = slen;j < slen + 16;++j) s[j] = random();
77
+ for (j = nlen;j < nlen + 16;++j) n[j] = random();
78
+ for (j = klen;j < klen + 16;++j) k[j] = random();
79
+ for (j = -16;j < mlen + 16;++j) m2[j] = m[j];
80
+ for (j = -16;j < clen + 16;++j) c2[j] = c[j];
81
+ for (j = -16;j < slen + 16;++j) s2[j] = s[j];
82
+ for (j = -16;j < nlen + 16;++j) n2[j] = n[j];
83
+ for (j = -16;j < klen + 16;++j) k2[j] = k[j];
84
+
85
+ crypto_stream_xor(c,m,mlen,n,k);
86
+
87
+ for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_stream_xor overwrites m";
88
+ for (j = -16;j < slen + 16;++j) if (s[j] != s2[j]) return "crypto_stream_xor overwrites s";
89
+ for (j = -16;j < nlen + 16;++j) if (n[j] != n2[j]) return "crypto_stream_xor overwrites n";
90
+ for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_stream_xor overwrites k";
91
+ for (j = -16;j < 0;++j) if (c[j] != c2[j]) return "crypto_stream_xor writes before output";
92
+ for (j = clen;j < clen + 16;++j) if (c[j] != c2[j]) return "crypto_stream_xor writes after output";
93
+
94
+ for (j = -16;j < clen + 16;++j) c2[j] = c[j];
95
+
96
+ crypto_stream(s,slen,n,k);
97
+
98
+ for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_stream overwrites m";
99
+ for (j = -16;j < clen + 16;++j) if (c[j] != c2[j]) return "crypto_stream overwrites c";
100
+ for (j = -16;j < nlen + 16;++j) if (n[j] != n2[j]) return "crypto_stream overwrites n";
101
+ for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_stream overwrites k";
102
+ for (j = -16;j < 0;++j) if (s[j] != s2[j]) return "crypto_stream writes before output";
103
+ for (j = slen;j < slen + 16;++j) if (s[j] != s2[j]) return "crypto_stream writes after output";
104
+
105
+ for (j = 0;j < mlen;++j)
106
+ if ((s[j] ^ m[j]) != c[j]) return "crypto_stream_xor does not match crypto_stream";
107
+
108
+ for (j = 0;j < clen;++j) k[j % klen] ^= c[j];
109
+ crypto_stream_xor(m,c,clen,n,k);
110
+ crypto_stream(s,slen,n,k);
111
+ for (j = 0;j < mlen;++j)
112
+ if ((s[j] ^ m[j]) != c[j]) return "crypto_stream_xor does not match crypto_stream";
113
+ for (j = 0;j < mlen;++j) n[j % nlen] ^= m[j];
114
+ m[mlen] = 0;
115
+ }
116
+
117
+ for (i = 0;i < crypto_stream_KEYBYTES;++i) {
118
+ checksum[2 * i] = "0123456789abcdef"[15 & (k[i] >> 4)];
119
+ checksum[2 * i + 1] = "0123456789abcdef"[15 & k[i]];
120
+ }
121
+ checksum[2 * i] = 0;
122
+
123
+ return 0;
124
+ }
@@ -0,0 +1,12 @@
1
+ #include <string>
2
+ using std::string;
3
+ #include "crypto_stream.h"
4
+
5
+ string crypto_stream(size_t clen,const string &n,const string &k)
6
+ {
7
+ if (n.size() != crypto_stream_NONCEBYTES) throw "incorrect nonce length";
8
+ if (k.size() != crypto_stream_KEYBYTES) throw "incorrect key length";
9
+ unsigned char c[clen];
10
+ crypto_stream(c,clen,(const unsigned char *) n.c_str(),(const unsigned char *) k.c_str());
11
+ return string((char *) c,clen);
12
+ }
@@ -0,0 +1,17 @@
1
+ #include <string>
2
+ using std::string;
3
+ #include "crypto_stream.h"
4
+
5
+ string crypto_stream_xor(const string &m,const string &n,const string &k)
6
+ {
7
+ if (n.size() != crypto_stream_NONCEBYTES) throw "incorrect nonce length";
8
+ if (k.size() != crypto_stream_KEYBYTES) throw "incorrect key length";
9
+ size_t mlen = m.size();
10
+ unsigned char c[mlen];
11
+ crypto_stream_xor(c,
12
+ (const unsigned char *) m.c_str(),mlen,
13
+ (const unsigned char *) n.c_str(),
14
+ (const unsigned char *) k.c_str()
15
+ );
16
+ return string((char *) c,mlen);
17
+ }
@@ -0,0 +1 @@
1
+ 201bc58a96adcb6ed339ca33c188af8ca04a4ce68be1e0953309ee09a0cf8e7a
@@ -0,0 +1,2 @@
1
+ #define CRYPTO_KEYBYTES 32
2
+ #define CRYPTO_NONCEBYTES 24
@@ -0,0 +1 @@
1
+ Daniel J. Bernstein
@@ -0,0 +1,22 @@
1
+ /*
2
+ version 20080914
3
+ D. J. Bernstein
4
+ Public domain.
5
+ */
6
+
7
+ #include "crypto_core_hsalsa20.h"
8
+ #include "crypto_stream_salsa20.h"
9
+ #include "crypto_stream.h"
10
+
11
+ static const unsigned char sigma[16] = "expand 32-byte k";
12
+
13
+ int crypto_stream(
14
+ unsigned char *c,unsigned long long clen,
15
+ const unsigned char *n,
16
+ const unsigned char *k
17
+ )
18
+ {
19
+ unsigned char subkey[32];
20
+ crypto_core_hsalsa20(subkey,n,k,sigma);
21
+ return crypto_stream_salsa20(c,clen,n + 16,subkey);
22
+ }
@@ -0,0 +1,23 @@
1
+ /*
2
+ version 20080913
3
+ D. J. Bernstein
4
+ Public domain.
5
+ */
6
+
7
+ #include "crypto_core_hsalsa20.h"
8
+ #include "crypto_stream_salsa20.h"
9
+ #include "crypto_stream.h"
10
+
11
+ static const unsigned char sigma[16] = "expand 32-byte k";
12
+
13
+ int crypto_stream_xor(
14
+ unsigned char *c,
15
+ const unsigned char *m,unsigned long long mlen,
16
+ const unsigned char *n,
17
+ const unsigned char *k
18
+ )
19
+ {
20
+ unsigned char subkey[32];
21
+ crypto_core_hsalsa20(subkey,n,k,sigma);
22
+ return crypto_stream_salsa20_xor(c,m,mlen,n + 16,subkey);
23
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ #ifndef crypto_stream_H
2
+ #define crypto_stream_H
3
+
4
+ #include "crypto_stream_aes128ctr.h"
5
+
6
+ #define crypto_stream crypto_stream_aes128ctr
7
+ #define crypto_stream_xor crypto_stream_aes128ctr_xor
8
+ #define crypto_stream_beforenm crypto_stream_aes128ctr_beforenm
9
+ #define crypto_stream_afternm crypto_stream_aes128ctr_afternm
10
+ #define crypto_stream_xor_afternm crypto_stream_aes128ctr_xor_afternm
11
+ #define crypto_stream_KEYBYTES crypto_stream_aes128ctr_KEYBYTES
12
+ #define crypto_stream_NONCEBYTES crypto_stream_aes128ctr_NONCEBYTES
13
+ #define crypto_stream_BEFORENMBYTES crypto_stream_aes128ctr_BEFORENMBYTES
14
+ #define crypto_stream_PRIMITIVE "aes128ctr"
15
+ #define crypto_stream_IMPLEMENTATION crypto_stream_aes128ctr_IMPLEMENTATION
16
+ #define crypto_stream_VERSION crypto_stream_aes128ctr_VERSION
17
+
18
+ #endif
@@ -0,0 +1,33 @@
1
+ #ifndef crypto_stream_aes128ctr_H
2
+ #define crypto_stream_aes128ctr_H
3
+
4
+ #ifdef __cplusplus
5
+ #include <string>
6
+ extern std::string crypto_stream_aes128ctr_portable(size_t,const std::string &,const std::string &);
7
+ extern std::string crypto_stream_aes128ctr_portable_xor(const std::string &,const std::string &,const std::string &);
8
+ extern "C" {
9
+ #endif
10
+ extern int crypto_stream_aes128ctr_portable(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
11
+ extern int crypto_stream_aes128ctr_portable_xor(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
12
+ extern int crypto_stream_aes128ctr_portable_beforenm(unsigned char *,const unsigned char *);
13
+ extern int crypto_stream_aes128ctr_portable_afternm(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
14
+ extern int crypto_stream_aes128ctr_portable_xor_afternm(unsigned char *,const unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
15
+ #ifdef __cplusplus
16
+ }
17
+ #endif
18
+
19
+ #define crypto_stream_aes128ctr crypto_stream_aes128ctr_portable
20
+ #define crypto_stream_aes128ctr_xor crypto_stream_aes128ctr_portable_xor
21
+ #define crypto_stream_aes128ctr_beforenm crypto_stream_aes128ctr_portable_beforenm
22
+ #define crypto_stream_aes128ctr_afternm crypto_stream_aes128ctr_portable_afternm
23
+ #define crypto_stream_aes128ctr_xor_afternm crypto_stream_aes128ctr_portable_xor_afternm
24
+ #define crypto_stream_aes128ctr_KEYBYTES crypto_stream_aes128ctr_portable_KEYBYTES
25
+ #define crypto_stream_aes128ctr_NONCEBYTES crypto_stream_aes128ctr_portable_NONCEBYTES
26
+ #define crypto_stream_aes128ctr_BEFORENMBYTES crypto_stream_aes128ctr_portable_BEFORENMBYTES
27
+ #define crypto_stream_aes128ctr_IMPLEMENTATION "crypto_stream/aes128ctr/portable"
28
+ #ifndef crypto_stream_aes128ctr_portable_VERSION
29
+ #define crypto_stream_aes128ctr_portable_VERSION "-"
30
+ #endif
31
+ #define crypto_stream_aes128ctr_VERSION crypto_stream_aes128ctr_portable_VERSION
32
+
33
+ #endif
@@ -0,0 +1 @@
1
+ #define CRYPTO_BYTES 16
@@ -0,0 +1,24 @@
1
+ #include "crypto_verify.h"
2
+
3
+ int crypto_verify(const unsigned char *x,const unsigned char *y)
4
+ {
5
+ unsigned int differentbits = 0;
6
+ #define F(i) differentbits |= x[i] ^ y[i];
7
+ F(0)
8
+ F(1)
9
+ F(2)
10
+ F(3)
11
+ F(4)
12
+ F(5)
13
+ F(6)
14
+ F(7)
15
+ F(8)
16
+ F(9)
17
+ F(10)
18
+ F(11)
19
+ F(12)
20
+ F(13)
21
+ F(14)
22
+ F(15)
23
+ return (1 & ((differentbits - 1) >> 8)) - 1;
24
+ }
File without changes
@@ -0,0 +1 @@
1
+ #define CRYPTO_BYTES 32
@@ -0,0 +1,40 @@
1
+ #include "crypto_verify.h"
2
+
3
+ int crypto_verify(const unsigned char *x,const unsigned char *y)
4
+ {
5
+ unsigned int differentbits = 0;
6
+ #define F(i) differentbits |= x[i] ^ y[i];
7
+ F(0)
8
+ F(1)
9
+ F(2)
10
+ F(3)
11
+ F(4)
12
+ F(5)
13
+ F(6)
14
+ F(7)
15
+ F(8)
16
+ F(9)
17
+ F(10)
18
+ F(11)
19
+ F(12)
20
+ F(13)
21
+ F(14)
22
+ F(15)
23
+ F(16)
24
+ F(17)
25
+ F(18)
26
+ F(19)
27
+ F(20)
28
+ F(21)
29
+ F(22)
30
+ F(23)
31
+ F(24)
32
+ F(25)
33
+ F(26)
34
+ F(27)
35
+ F(28)
36
+ F(29)
37
+ F(30)
38
+ F(31)
39
+ return (1 & ((differentbits - 1) >> 8)) - 1;
40
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ #include "crypto_verify.h"
2
+
3
+ const char *primitiveimplementation = crypto_verify_IMPLEMENTATION;
4
+ const char *implementationversion = crypto_verify_VERSION;
5
+ const char *sizenames[] = { "inputbytes", 0 };
6
+ const long long sizes[] = { crypto_verify_BYTES };
7
+
8
+ void preallocate(void)
9
+ {
10
+ }
11
+
12
+ void allocate(void)
13
+ {
14
+ }
15
+
16
+ void measure(void)
17
+ {
18
+ }
@@ -0,0 +1,75 @@
1
+ /*
2
+ * crypto_verify/try.c version 20090118
3
+ * D. J. Bernstein
4
+ * Public domain.
5
+ */
6
+
7
+ #include <stdlib.h>
8
+ #include "crypto_verify.h"
9
+
10
+ extern unsigned char *alignedcalloc(unsigned long long);
11
+
12
+ const char *primitiveimplementation = crypto_verify_IMPLEMENTATION;
13
+
14
+ static unsigned char *x;
15
+ static unsigned char *y;
16
+
17
+ void preallocate(void)
18
+ {
19
+ }
20
+
21
+ void allocate(void)
22
+ {
23
+ x = alignedcalloc(crypto_verify_BYTES);
24
+ y = alignedcalloc(crypto_verify_BYTES);
25
+ }
26
+
27
+ void predoit(void)
28
+ {
29
+ }
30
+
31
+ void doit(void)
32
+ {
33
+ crypto_verify(x,y);
34
+ }
35
+
36
+ static const char *check(void)
37
+ {
38
+ int r = crypto_verify(x,y);
39
+ if (r == 0) {
40
+ if (memcmp(x,y,crypto_verify_BYTES)) return "different strings pass verify";
41
+ } else if (r == -1) {
42
+ if (!memcmp(x,y,crypto_verify_BYTES)) return "equal strings fail verify";
43
+ } else {
44
+ return "weird return value from verify";
45
+ }
46
+ return 0;
47
+ }
48
+
49
+ char checksum[2];
50
+
51
+ const char *checksum_compute(void)
52
+ {
53
+ long long tests;
54
+ long long i;
55
+ long long j;
56
+ const char *c;
57
+
58
+ for (tests = 0;tests < 100000;++tests) {
59
+ for (i = 0;i < crypto_verify_BYTES;++i) x[i] = random();
60
+ for (i = 0;i < crypto_verify_BYTES;++i) y[i] = random();
61
+ c = check(); if (c) return c;
62
+ for (i = 0;i < crypto_verify_BYTES;++i) y[i] = x[i];
63
+ c = check(); if (c) return c;
64
+ y[random() % crypto_verify_BYTES] = random();
65
+ c = check(); if (c) return c;
66
+ y[random() % crypto_verify_BYTES] = random();
67
+ c = check(); if (c) return c;
68
+ y[random() % crypto_verify_BYTES] = random();
69
+ c = check(); if (c) return c;
70
+ }
71
+
72
+ checksum[0] = '0';
73
+ checksum[1] = 0;
74
+ return 0;
75
+ }
@@ -0,0 +1,31 @@
1
+ blocking.o
2
+ byte_copy.o
3
+ byte_isequal.o
4
+ byte_zero.o
5
+ crypto_block.o
6
+ die.o
7
+ e.o
8
+ hexparse.o
9
+ load.o
10
+ nameparse.o
11
+ nanoseconds.o
12
+ open_cwd.o
13
+ open_lock.o
14
+ open_pipe.o
15
+ open_read.o
16
+ open_write.o
17
+ portparse.o
18
+ randommod.o
19
+ safenonce.o
20
+ savesync.o
21
+ socket_bind.o
22
+ socket_recv.o
23
+ socket_send.o
24
+ socket_udp.o
25
+ uint16_pack.o
26
+ uint16_unpack.o
27
+ uint32_pack.o
28
+ uint32_unpack.o
29
+ uint64_pack.o
30
+ uint64_unpack.o
31
+ writeall.o
@@ -0,0 +1,10 @@
1
+ Example of use (with nacl-20110221/build/*/bin in $PATH):
2
+ curvecpmakekey serverkey
3
+ curvecpprintkey serverkey > serverkey.hex
4
+ curvecpserver this.machine.name serverkey \
5
+ 127.0.0.1 10000 31415926535897932384626433832795 \
6
+ curvecpmessage cat /usr/share/dict/words &
7
+ curvecpclient this.machine.name `cat serverkey.hex` \
8
+ 127.0.0.1 10000 31415926535897932384626433832795 \
9
+ curvecpmessage -c sh -c 'nacl-sha512 <&6'
10
+ nacl-sha512 < /usr/share/dict/words
@@ -0,0 +1,36 @@
1
+ blocking
2
+ byte_copy
3
+ byte_isequal
4
+ byte_zero
5
+ crypto_block
6
+ die
7
+ e
8
+ hexparse
9
+ load
10
+ nameparse
11
+ nanoseconds
12
+ open_cwd
13
+ open_lock
14
+ open_pipe
15
+ open_read
16
+ open_write
17
+ portparse
18
+ randommod
19
+ safenonce
20
+ savesync
21
+ socket_bind
22
+ socket_recv
23
+ socket_send
24
+ socket_udp
25
+ uint16_pack
26
+ uint16_unpack
27
+ uint32_pack
28
+ uint32_unpack
29
+ uint64_pack
30
+ uint64_unpack
31
+ writeall
32
+ curvecpprintkey
33
+ curvecpmakekey
34
+ curvecpclient
35
+ curvecpserver
36
+ curvecpmessage
@@ -0,0 +1,5 @@
1
+ curvecpprintkey
2
+ curvecpmakekey
3
+ curvecpclient
4
+ curvecpserver
5
+ curvecpmessage
@@ -0,0 +1,12 @@
1
+ #include <fcntl.h>
2
+ #include "blocking.h"
3
+
4
+ void blocking_enable(int fd)
5
+ {
6
+ fcntl(fd,F_SETFL,fcntl(fd,F_GETFL,0) & ~O_NONBLOCK);
7
+ }
8
+
9
+ void blocking_disable(int fd)
10
+ {
11
+ fcntl(fd,F_SETFL,fcntl(fd,F_GETFL,0) | O_NONBLOCK);
12
+ }
@@ -0,0 +1,7 @@
1
+ #ifndef BLOCKING_H
2
+ #define BLOCKING_H
3
+
4
+ extern void blocking_enable(int);
5
+ extern void blocking_disable(int);
6
+
7
+ #endif
@@ -0,0 +1,8 @@
1
+ #ifndef BYTE_H
2
+ #define BYTE_H
3
+
4
+ extern void byte_zero(void *,long long);
5
+ extern void byte_copy(void *,long long,const void *);
6
+ extern int byte_isequal(const void *,long long,const void *);
7
+
8
+ #endif
@@ -0,0 +1,8 @@
1
+ #include "byte.h"
2
+
3
+ void byte_copy(void *yv,long long ylen,const void *xv)
4
+ {
5
+ char *y = yv;
6
+ const char *x = xv;
7
+ while (ylen > 0) { *y++ = *x++; --ylen; }
8
+ }
@@ -0,0 +1,10 @@
1
+ #include "byte.h"
2
+
3
+ int byte_isequal(const void *yv,long long ylen,const void *xv)
4
+ {
5
+ const unsigned char *y = yv;
6
+ const unsigned char *x = xv;
7
+ unsigned char diff = 0;
8
+ while (ylen > 0) { diff |= (*y++ ^ *x++); --ylen; }
9
+ return (256 - (unsigned int) diff) >> 8;
10
+ }
@@ -0,0 +1,7 @@
1
+ #include "byte.h"
2
+
3
+ void byte_zero(void *yv,long long ylen)
4
+ {
5
+ char *y = yv;
6
+ while (ylen > 0) { *y++ = 0; --ylen; }
7
+ }
@@ -0,0 +1,35 @@
1
+ #include "crypto_block.h"
2
+ #include "crypto_uint64.h"
3
+ #include "uint64_unpack.h"
4
+ #include "uint64_pack.h"
5
+
6
+ /*
7
+ TEA with double-size words.
8
+ XXX: Switch to crypto_block_aes256.
9
+ XXX: Build crypto_stream_aes256 on top of crypto_block_aes256.
10
+ */
11
+
12
+ int crypto_block(
13
+ unsigned char *out,
14
+ const unsigned char *in,
15
+ const unsigned char *k
16
+ )
17
+ {
18
+ crypto_uint64 v0 = uint64_unpack(in + 0);
19
+ crypto_uint64 v1 = uint64_unpack(in + 8);
20
+ crypto_uint64 k0 = uint64_unpack(k + 0);
21
+ crypto_uint64 k1 = uint64_unpack(k + 8);
22
+ crypto_uint64 k2 = uint64_unpack(k + 16);
23
+ crypto_uint64 k3 = uint64_unpack(k + 24);
24
+ crypto_uint64 sum = 0;
25
+ crypto_uint64 delta = 0x9e3779b97f4a7c15;
26
+ int i;
27
+ for (i = 0;i < 32;++i) {
28
+ sum += delta;
29
+ v0 += ((v1<<7) + k0) ^ (v1 + sum) ^ ((v1>>12) + k1);
30
+ v1 += ((v0<<16) + k2) ^ (v0 + sum) ^ ((v0>>8) + k3);
31
+ }
32
+ uint64_pack(out + 0,v0);
33
+ uint64_pack(out + 8,v1);
34
+ return 0;
35
+ }
@@ -0,0 +1,4 @@
1
+ #define crypto_block_BYTES 16
2
+ #define crypto_block_KEYBYTES 32
3
+
4
+ extern int crypto_block(unsigned char *,const unsigned char *,const unsigned char *);