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,85 @@
1
+ # version 20080912
2
+ # D. J. Bernstein
3
+ # Public domain.
4
+
5
+ .data
6
+ .section .rodata
7
+ .p2align 5
8
+
9
+ .globl _crypto_onetimeauth_poly1305_x86_constants
10
+ .globl crypto_onetimeauth_poly1305_x86_constants
11
+ .globl crypto_onetimeauth_poly1305_x86_scale
12
+ .globl crypto_onetimeauth_poly1305_x86_two32
13
+ .globl crypto_onetimeauth_poly1305_x86_two64
14
+ .globl crypto_onetimeauth_poly1305_x86_two96
15
+ .globl crypto_onetimeauth_poly1305_x86_alpha32
16
+ .globl crypto_onetimeauth_poly1305_x86_alpha64
17
+ .globl crypto_onetimeauth_poly1305_x86_alpha96
18
+ .globl crypto_onetimeauth_poly1305_x86_alpha130
19
+ .globl crypto_onetimeauth_poly1305_x86_doffset0
20
+ .globl crypto_onetimeauth_poly1305_x86_doffset1
21
+ .globl crypto_onetimeauth_poly1305_x86_doffset2
22
+ .globl crypto_onetimeauth_poly1305_x86_doffset3
23
+ .globl crypto_onetimeauth_poly1305_x86_doffset3minustwo128
24
+ .globl crypto_onetimeauth_poly1305_x86_hoffset0
25
+ .globl crypto_onetimeauth_poly1305_x86_hoffset1
26
+ .globl crypto_onetimeauth_poly1305_x86_hoffset2
27
+ .globl crypto_onetimeauth_poly1305_x86_hoffset3
28
+ .globl crypto_onetimeauth_poly1305_x86_rounding
29
+
30
+ _crypto_onetimeauth_poly1305_x86_constants:
31
+ crypto_onetimeauth_poly1305_x86_constants:
32
+ crypto_onetimeauth_poly1305_x86_scale:
33
+ .long 0x0,0x37f40000
34
+
35
+ crypto_onetimeauth_poly1305_x86_two32:
36
+ .long 0x0,0x41f00000
37
+
38
+ crypto_onetimeauth_poly1305_x86_two64:
39
+ .long 0x0,0x43f00000
40
+
41
+ crypto_onetimeauth_poly1305_x86_two96:
42
+ .long 0x0,0x45f00000
43
+
44
+ crypto_onetimeauth_poly1305_x86_alpha32:
45
+ .long 0x0,0x45e80000
46
+
47
+ crypto_onetimeauth_poly1305_x86_alpha64:
48
+ .long 0x0,0x47e80000
49
+
50
+ crypto_onetimeauth_poly1305_x86_alpha96:
51
+ .long 0x0,0x49e80000
52
+
53
+ crypto_onetimeauth_poly1305_x86_alpha130:
54
+ .long 0x0,0x4c080000
55
+
56
+ crypto_onetimeauth_poly1305_x86_doffset0:
57
+ .long 0x0,0x43300000
58
+
59
+ crypto_onetimeauth_poly1305_x86_doffset1:
60
+ .long 0x0,0x45300000
61
+
62
+ crypto_onetimeauth_poly1305_x86_doffset2:
63
+ .long 0x0,0x47300000
64
+
65
+ crypto_onetimeauth_poly1305_x86_doffset3:
66
+ .long 0x0,0x49300000
67
+
68
+ crypto_onetimeauth_poly1305_x86_doffset3minustwo128:
69
+ .long 0x0,0x492ffffe
70
+
71
+ crypto_onetimeauth_poly1305_x86_hoffset0:
72
+ .long 0xfffffffb,0x43300001
73
+
74
+ crypto_onetimeauth_poly1305_x86_hoffset1:
75
+ .long 0xfffffffe,0x45300001
76
+
77
+ crypto_onetimeauth_poly1305_x86_hoffset2:
78
+ .long 0xfffffffe,0x47300001
79
+
80
+ crypto_onetimeauth_poly1305_x86_hoffset3:
81
+ .long 0xfffffffe,0x49300003
82
+
83
+ crypto_onetimeauth_poly1305_x86_rounding:
84
+ .byte 0x7f
85
+ .byte 0x13
@@ -0,0 +1,9 @@
1
+ #include "crypto_verify_16.h"
2
+ #include "crypto_onetimeauth.h"
3
+
4
+ int crypto_onetimeauth_verify(const unsigned char *h,const unsigned char *in,unsigned long long inlen,const unsigned char *k)
5
+ {
6
+ unsigned char correct[16];
7
+ crypto_onetimeauth(correct,in,inlen,k);
8
+ return crypto_verify_16(h,correct);
9
+ }
@@ -0,0 +1,119 @@
1
+ /*
2
+ * crypto_onetimeauth/try.c version 20090118
3
+ * D. J. Bernstein
4
+ * Public domain.
5
+ */
6
+
7
+ #include "crypto_hash_sha256.h"
8
+ #include "crypto_onetimeauth.h"
9
+
10
+ extern unsigned char *alignedcalloc(unsigned long long);
11
+
12
+ const char *primitiveimplementation = crypto_onetimeauth_IMPLEMENTATION;
13
+
14
+ #define MAXTEST_BYTES 10000
15
+ #define CHECKSUM_BYTES 4096
16
+ #define TUNE_BYTES 1536
17
+
18
+ static unsigned char *h;
19
+ static unsigned char *m;
20
+ static unsigned char *k;
21
+ static unsigned char *h2;
22
+ static unsigned char *m2;
23
+ static unsigned char *k2;
24
+
25
+ void preallocate(void)
26
+ {
27
+ }
28
+
29
+ void allocate(void)
30
+ {
31
+ h = alignedcalloc(crypto_onetimeauth_BYTES);
32
+ m = alignedcalloc(MAXTEST_BYTES);
33
+ k = alignedcalloc(crypto_onetimeauth_KEYBYTES);
34
+ h2 = alignedcalloc(crypto_onetimeauth_BYTES);
35
+ m2 = alignedcalloc(MAXTEST_BYTES + crypto_onetimeauth_BYTES);
36
+ k2 = alignedcalloc(crypto_onetimeauth_KEYBYTES + crypto_onetimeauth_BYTES);
37
+ }
38
+
39
+ void predoit(void)
40
+ {
41
+ }
42
+
43
+ void doit(void)
44
+ {
45
+ crypto_onetimeauth(h,m,TUNE_BYTES,k);
46
+ crypto_onetimeauth_verify(h,m,TUNE_BYTES,k);
47
+ }
48
+
49
+ char checksum[crypto_onetimeauth_BYTES * 2 + 1];
50
+
51
+ const char *checksum_compute(void)
52
+ {
53
+ long long i;
54
+ long long j;
55
+
56
+ for (i = 0;i < CHECKSUM_BYTES;++i) {
57
+ long long mlen = i;
58
+ long long klen = crypto_onetimeauth_KEYBYTES;
59
+ long long hlen = crypto_onetimeauth_BYTES;
60
+
61
+ for (j = -16;j < 0;++j) h[j] = random();
62
+ for (j = -16;j < 0;++j) k[j] = random();
63
+ for (j = -16;j < 0;++j) m[j] = random();
64
+ for (j = hlen;j < hlen + 16;++j) h[j] = random();
65
+ for (j = klen;j < klen + 16;++j) k[j] = random();
66
+ for (j = mlen;j < mlen + 16;++j) m[j] = random();
67
+ for (j = -16;j < hlen + 16;++j) h2[j] = h[j];
68
+ for (j = -16;j < klen + 16;++j) k2[j] = k[j];
69
+ for (j = -16;j < mlen + 16;++j) m2[j] = m[j];
70
+
71
+ if (crypto_onetimeauth(h,m,mlen,k) != 0) return "crypto_onetimeauth returns nonzero";
72
+
73
+ for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_onetimeauth overwrites k";
74
+ for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_onetimeauth overwrites m";
75
+ for (j = -16;j < 0;++j) if (h[j] != h2[j]) return "crypto_onetimeauth writes before output";
76
+ for (j = hlen;j < hlen + 16;++j) if (h[j] != h2[j]) return "crypto_onetimeauth writes after output";
77
+
78
+ for (j = -16;j < 0;++j) h[j] = random();
79
+ for (j = -16;j < 0;++j) k[j] = random();
80
+ for (j = -16;j < 0;++j) m[j] = random();
81
+ for (j = hlen;j < hlen + 16;++j) h[j] = random();
82
+ for (j = klen;j < klen + 16;++j) k[j] = random();
83
+ for (j = mlen;j < mlen + 16;++j) m[j] = random();
84
+ for (j = -16;j < hlen + 16;++j) h2[j] = h[j];
85
+ for (j = -16;j < klen + 16;++j) k2[j] = k[j];
86
+ for (j = -16;j < mlen + 16;++j) m2[j] = m[j];
87
+
88
+ if (crypto_onetimeauth(m2,m2,mlen,k) != 0) return "crypto_onetimeauth returns nonzero";
89
+ for (j = 0;j < hlen;++j) if (m2[j] != h[j]) return "crypto_onetimeauth does not handle m overlap";
90
+ for (j = 0;j < hlen;++j) m2[j] = m[j];
91
+ if (crypto_onetimeauth(k2,m2,mlen,k2) != 0) return "crypto_onetimeauth returns nonzero";
92
+ for (j = 0;j < hlen;++j) if (k2[j] != h[j]) return "crypto_onetimeauth does not handle k overlap";
93
+ for (j = 0;j < hlen;++j) k2[j] = k[j];
94
+
95
+ if (crypto_onetimeauth_verify(h,m,mlen,k) != 0) return "crypto_onetimeauth_verify returns nonzero";
96
+
97
+ for (j = -16;j < hlen + 16;++j) if (h[j] != h2[j]) return "crypto_onetimeauth overwrites h";
98
+ for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_onetimeauth overwrites k";
99
+ for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_onetimeauth overwrites m";
100
+
101
+ crypto_hash_sha256(h2,h,hlen);
102
+ for (j = 0;j < klen;++j) k[j] ^= h2[j % 32];
103
+ if (crypto_onetimeauth(h,m,mlen,k) != 0) return "crypto_onetimeauth returns nonzero";
104
+ if (crypto_onetimeauth_verify(h,m,mlen,k) != 0) return "crypto_onetimeauth_verify returns nonzero";
105
+
106
+ crypto_hash_sha256(h2,h,hlen);
107
+ for (j = 0;j < mlen;++j) m[j] ^= h2[j % 32];
108
+ m[mlen] = h2[0];
109
+ }
110
+ if (crypto_onetimeauth(h,m,CHECKSUM_BYTES,k) != 0) return "crypto_onetimeauth returns nonzero";
111
+ if (crypto_onetimeauth_verify(h,m,CHECKSUM_BYTES,k) != 0) return "crypto_onetimeauth_verify returns nonzero";
112
+
113
+ for (i = 0;i < crypto_onetimeauth_BYTES;++i) {
114
+ checksum[2 * i] = "0123456789abcdef"[15 & (h[i] >> 4)];
115
+ checksum[2 * i + 1] = "0123456789abcdef"[15 & h[i]];
116
+ }
117
+ checksum[2 * i] = 0;
118
+ return 0;
119
+ }
@@ -0,0 +1,11 @@
1
+ #include <string>
2
+ using std::string;
3
+ #include "crypto_onetimeauth.h"
4
+
5
+ string crypto_onetimeauth(const string &m,const string &k)
6
+ {
7
+ if (k.size() != crypto_onetimeauth_KEYBYTES) throw "incorrect key length";
8
+ unsigned char a[crypto_onetimeauth_BYTES];
9
+ crypto_onetimeauth(a,(const unsigned char *) m.c_str(),m.size(),(const unsigned char *) k.c_str());
10
+ return string((char *) a,crypto_onetimeauth_BYTES);
11
+ }
@@ -0,0 +1,14 @@
1
+ #include <string>
2
+ using std::string;
3
+ #include "crypto_onetimeauth.h"
4
+
5
+ void crypto_onetimeauth_verify(const string &a,const string &m,const string &k)
6
+ {
7
+ if (k.size() != crypto_onetimeauth_KEYBYTES) throw "incorrect key length";
8
+ if (a.size() != crypto_onetimeauth_BYTES) throw "incorrect authenticator length";
9
+ if (crypto_onetimeauth_verify(
10
+ (const unsigned char *) a.c_str(),
11
+ (const unsigned char *) m.c_str(),m.size(),
12
+ (const unsigned char *) k.c_str()) == 0) return;
13
+ throw "invalid authenticator";
14
+ }
@@ -0,0 +1,2 @@
1
+ #define CRYPTO_BYTES 32
2
+ #define CRYPTO_SCALARBYTES 32
@@ -0,0 +1,8 @@
1
+ #include "crypto_scalarmult.h"
2
+
3
+ static char basepoint[32] = {9};
4
+
5
+ int crypto_scalarmult_base(unsigned char *q,const unsigned char *n)
6
+ {
7
+ return crypto_scalarmult(q,n,basepoint);
8
+ }
@@ -0,0 +1,114 @@
1
+ .data
2
+ .section .rodata
3
+ .p2align 5
4
+
5
+ .globl crypto_scalarmult_curve25519_athlon_scale
6
+ .globl crypto_scalarmult_curve25519_athlon_121665
7
+ .globl crypto_scalarmult_curve25519_athlon_alpha26
8
+ .globl crypto_scalarmult_curve25519_athlon_alpha51
9
+ .globl crypto_scalarmult_curve25519_athlon_alpha77
10
+ .globl crypto_scalarmult_curve25519_athlon_alpha102
11
+ .globl crypto_scalarmult_curve25519_athlon_alpha128
12
+ .globl crypto_scalarmult_curve25519_athlon_alpha153
13
+ .globl crypto_scalarmult_curve25519_athlon_alpha179
14
+ .globl crypto_scalarmult_curve25519_athlon_alpha204
15
+ .globl crypto_scalarmult_curve25519_athlon_alpha230
16
+ .globl crypto_scalarmult_curve25519_athlon_alpha255
17
+ .globl crypto_scalarmult_curve25519_athlon_in0offset
18
+ .globl crypto_scalarmult_curve25519_athlon_in1offset
19
+ .globl crypto_scalarmult_curve25519_athlon_in2offset
20
+ .globl crypto_scalarmult_curve25519_athlon_in3offset
21
+ .globl crypto_scalarmult_curve25519_athlon_in4offset
22
+ .globl crypto_scalarmult_curve25519_athlon_in5offset
23
+ .globl crypto_scalarmult_curve25519_athlon_in6offset
24
+ .globl crypto_scalarmult_curve25519_athlon_in7offset
25
+ .globl crypto_scalarmult_curve25519_athlon_in8offset
26
+ .globl crypto_scalarmult_curve25519_athlon_in9offset
27
+ .globl crypto_scalarmult_curve25519_athlon_out0offset
28
+ .globl crypto_scalarmult_curve25519_athlon_out1offset
29
+ .globl crypto_scalarmult_curve25519_athlon_out2offset
30
+ .globl crypto_scalarmult_curve25519_athlon_out3offset
31
+ .globl crypto_scalarmult_curve25519_athlon_out4offset
32
+ .globl crypto_scalarmult_curve25519_athlon_out5offset
33
+ .globl crypto_scalarmult_curve25519_athlon_out6offset
34
+ .globl crypto_scalarmult_curve25519_athlon_out7offset
35
+ .globl crypto_scalarmult_curve25519_athlon_out8offset
36
+ .globl crypto_scalarmult_curve25519_athlon_out9offset
37
+ .globl crypto_scalarmult_curve25519_athlon_two0
38
+ .globl crypto_scalarmult_curve25519_athlon_two1
39
+ .globl crypto_scalarmult_curve25519_athlon_zero
40
+ .globl crypto_scalarmult_curve25519_athlon_rounding
41
+
42
+ crypto_scalarmult_curve25519_athlon_scale:
43
+ .long 0x0,0x30430000
44
+ crypto_scalarmult_curve25519_athlon_121665:
45
+ .long 0x0,0x40fdb410
46
+ crypto_scalarmult_curve25519_athlon_in0offset:
47
+ .long 0x0,0x43300000
48
+ crypto_scalarmult_curve25519_athlon_in1offset:
49
+ .long 0x0,0x45300000
50
+ crypto_scalarmult_curve25519_athlon_in2offset:
51
+ .long 0x0,0x46b00000
52
+ crypto_scalarmult_curve25519_athlon_in3offset:
53
+ .long 0x0,0x48300000
54
+ crypto_scalarmult_curve25519_athlon_in4offset:
55
+ .long 0x0,0x49b00000
56
+ crypto_scalarmult_curve25519_athlon_in5offset:
57
+ .long 0x0,0x4b300000
58
+ crypto_scalarmult_curve25519_athlon_in6offset:
59
+ .long 0x0,0x4d300000
60
+ crypto_scalarmult_curve25519_athlon_in7offset:
61
+ .long 0x0,0x4eb00000
62
+ crypto_scalarmult_curve25519_athlon_in8offset:
63
+ .long 0x0,0x50300000
64
+ crypto_scalarmult_curve25519_athlon_in9offset:
65
+ .long 0x0,0x51b00000
66
+ crypto_scalarmult_curve25519_athlon_alpha26:
67
+ .long 0x0,0x45880000
68
+ crypto_scalarmult_curve25519_athlon_alpha51:
69
+ .long 0x0,0x47180000
70
+ crypto_scalarmult_curve25519_athlon_alpha77:
71
+ .long 0x0,0x48b80000
72
+ crypto_scalarmult_curve25519_athlon_alpha102:
73
+ .long 0x0,0x4a480000
74
+ crypto_scalarmult_curve25519_athlon_alpha128:
75
+ .long 0x0,0x4be80000
76
+ crypto_scalarmult_curve25519_athlon_alpha153:
77
+ .long 0x0,0x4d780000
78
+ crypto_scalarmult_curve25519_athlon_alpha179:
79
+ .long 0x0,0x4f180000
80
+ crypto_scalarmult_curve25519_athlon_alpha204:
81
+ .long 0x0,0x50a80000
82
+ crypto_scalarmult_curve25519_athlon_alpha230:
83
+ .long 0x0,0x52480000
84
+ crypto_scalarmult_curve25519_athlon_alpha255:
85
+ .long 0x0,0x53d80000
86
+ crypto_scalarmult_curve25519_athlon_two0:
87
+ .long 0x0,0x3ff00000
88
+ crypto_scalarmult_curve25519_athlon_two1:
89
+ .long 0x0,0x40000000
90
+ crypto_scalarmult_curve25519_athlon_zero:
91
+ .long 0x0,0x0
92
+ crypto_scalarmult_curve25519_athlon_out0offset:
93
+ .long 0x1fffffed,0x43380000
94
+ crypto_scalarmult_curve25519_athlon_out1offset:
95
+ .long 0xffffff8,0x44d80000
96
+ crypto_scalarmult_curve25519_athlon_out2offset:
97
+ .long 0x1ffffff8,0x46680000
98
+ crypto_scalarmult_curve25519_athlon_out3offset:
99
+ .long 0xffffff8,0x48080000
100
+ crypto_scalarmult_curve25519_athlon_out4offset:
101
+ .long 0x1ffffff8,0x49980000
102
+ crypto_scalarmult_curve25519_athlon_out5offset:
103
+ .long 0xffffff8,0x4b380000
104
+ crypto_scalarmult_curve25519_athlon_out6offset:
105
+ .long 0x1ffffff8,0x4cc80000
106
+ crypto_scalarmult_curve25519_athlon_out7offset:
107
+ .long 0xffffff8,0x4e680000
108
+ crypto_scalarmult_curve25519_athlon_out8offset:
109
+ .long 0x1ffffff8,0x4ff80000
110
+ crypto_scalarmult_curve25519_athlon_out9offset:
111
+ .long 0x1fffff8,0x51980000
112
+ crypto_scalarmult_curve25519_athlon_rounding:
113
+ .byte 0x7f
114
+ .byte 0x13
@@ -0,0 +1,195 @@
1
+ .text
2
+ .p2align 5
3
+ .globl _crypto_scalarmult_curve25519_athlon_fromdouble
4
+ .globl crypto_scalarmult_curve25519_athlon_fromdouble
5
+ _crypto_scalarmult_curve25519_athlon_fromdouble:
6
+ crypto_scalarmult_curve25519_athlon_fromdouble:
7
+ mov %esp,%eax
8
+ and $31,%eax
9
+ add $192,%eax
10
+ sub %eax,%esp
11
+ movl %ebp,0(%esp)
12
+ movl 8(%esp,%eax),%ecx
13
+ fldl 0(%ecx)
14
+ faddl crypto_scalarmult_curve25519_athlon_out0offset
15
+ fstpl 96(%esp)
16
+ fldl 8(%ecx)
17
+ faddl crypto_scalarmult_curve25519_athlon_out1offset
18
+ fstpl 104(%esp)
19
+ fldl 16(%ecx)
20
+ faddl crypto_scalarmult_curve25519_athlon_out2offset
21
+ fstpl 112(%esp)
22
+ fldl 24(%ecx)
23
+ faddl crypto_scalarmult_curve25519_athlon_out3offset
24
+ fstpl 120(%esp)
25
+ fldl 32(%ecx)
26
+ faddl crypto_scalarmult_curve25519_athlon_out4offset
27
+ fstpl 128(%esp)
28
+ fldl 40(%ecx)
29
+ faddl crypto_scalarmult_curve25519_athlon_out5offset
30
+ fstpl 136(%esp)
31
+ fldl 48(%ecx)
32
+ faddl crypto_scalarmult_curve25519_athlon_out6offset
33
+ fstpl 144(%esp)
34
+ fldl 56(%ecx)
35
+ faddl crypto_scalarmult_curve25519_athlon_out7offset
36
+ fstpl 152(%esp)
37
+ fldl 64(%ecx)
38
+ faddl crypto_scalarmult_curve25519_athlon_out8offset
39
+ fstpl 160(%esp)
40
+ fldl 72(%ecx)
41
+ faddl crypto_scalarmult_curve25519_athlon_out9offset
42
+ fstpl 168(%esp)
43
+ movl 96(%esp),%ecx
44
+ movl %ecx,4(%esp)
45
+ movl 104(%esp),%ecx
46
+ shl $26,%ecx
47
+ movl %ecx,40(%esp)
48
+ movl 104(%esp),%ecx
49
+ shr $6,%ecx
50
+ movl %ecx,8(%esp)
51
+ movl 112(%esp),%ecx
52
+ shl $19,%ecx
53
+ movl %ecx,44(%esp)
54
+ movl 112(%esp),%ecx
55
+ shr $13,%ecx
56
+ movl %ecx,12(%esp)
57
+ movl 120(%esp),%ecx
58
+ shl $13,%ecx
59
+ movl %ecx,48(%esp)
60
+ movl 120(%esp),%ecx
61
+ shr $19,%ecx
62
+ movl %ecx,16(%esp)
63
+ movl 128(%esp),%ecx
64
+ shl $6,%ecx
65
+ movl %ecx,52(%esp)
66
+ movl 128(%esp),%ecx
67
+ shr $26,%ecx
68
+ movl 136(%esp),%edx
69
+ add %edx,%ecx
70
+ movl %ecx,20(%esp)
71
+ movl 144(%esp),%ecx
72
+ shl $25,%ecx
73
+ movl %ecx,56(%esp)
74
+ movl 144(%esp),%ecx
75
+ shr $7,%ecx
76
+ movl %ecx,24(%esp)
77
+ movl 152(%esp),%ecx
78
+ shl $19,%ecx
79
+ movl %ecx,60(%esp)
80
+ movl 152(%esp),%ecx
81
+ shr $13,%ecx
82
+ movl %ecx,28(%esp)
83
+ movl 160(%esp),%ecx
84
+ shl $12,%ecx
85
+ movl %ecx,64(%esp)
86
+ movl 160(%esp),%ecx
87
+ shr $20,%ecx
88
+ movl %ecx,32(%esp)
89
+ movl 168(%esp),%ecx
90
+ shl $6,%ecx
91
+ movl %ecx,68(%esp)
92
+ movl 168(%esp),%ecx
93
+ shr $26,%ecx
94
+ movl %ecx,36(%esp)
95
+ mov $0,%ecx
96
+ movl %ecx,72(%esp)
97
+ movl 4(%esp),%ecx
98
+ addl 40(%esp),%ecx
99
+ movl %ecx,4(%esp)
100
+ movl 8(%esp),%ecx
101
+ adcl 44(%esp),%ecx
102
+ movl %ecx,8(%esp)
103
+ movl 12(%esp),%ecx
104
+ adcl 48(%esp),%ecx
105
+ movl %ecx,12(%esp)
106
+ movl 16(%esp),%ecx
107
+ adcl 52(%esp),%ecx
108
+ movl %ecx,16(%esp)
109
+ movl 20(%esp),%ecx
110
+ adcl 56(%esp),%ecx
111
+ movl %ecx,20(%esp)
112
+ movl 24(%esp),%ecx
113
+ adcl 60(%esp),%ecx
114
+ movl %ecx,24(%esp)
115
+ movl 28(%esp),%ecx
116
+ adcl 64(%esp),%ecx
117
+ movl %ecx,28(%esp)
118
+ movl 32(%esp),%ecx
119
+ adcl 68(%esp),%ecx
120
+ movl %ecx,32(%esp)
121
+ movl 36(%esp),%ecx
122
+ adcl 72(%esp),%ecx
123
+ movl %ecx,36(%esp)
124
+ movl 4(%esp),%ecx
125
+ adc $0x13,%ecx
126
+ movl %ecx,40(%esp)
127
+ movl 8(%esp),%ecx
128
+ adc $0,%ecx
129
+ movl %ecx,44(%esp)
130
+ movl 12(%esp),%ecx
131
+ adc $0,%ecx
132
+ movl %ecx,48(%esp)
133
+ movl 16(%esp),%ecx
134
+ adc $0,%ecx
135
+ movl %ecx,52(%esp)
136
+ movl 20(%esp),%ecx
137
+ adc $0,%ecx
138
+ movl %ecx,56(%esp)
139
+ movl 24(%esp),%ecx
140
+ adc $0,%ecx
141
+ movl %ecx,60(%esp)
142
+ movl 28(%esp),%ecx
143
+ adc $0,%ecx
144
+ movl %ecx,64(%esp)
145
+ movl 32(%esp),%ecx
146
+ adc $0x80000000,%ecx
147
+ movl %ecx,68(%esp)
148
+ movl 36(%esp),%ebp
149
+ adc $0xffffffff,%ebp
150
+ and $0x80000000,%ebp
151
+ sar $31,%ebp
152
+ movl 4(%esp,%eax),%ecx
153
+ movl 4(%esp),%edx
154
+ xorl 40(%esp),%edx
155
+ and %ebp,%edx
156
+ xorl 40(%esp),%edx
157
+ movl %edx,0(%ecx)
158
+ movl 8(%esp),%edx
159
+ xorl 44(%esp),%edx
160
+ and %ebp,%edx
161
+ xorl 44(%esp),%edx
162
+ movl %edx,4(%ecx)
163
+ movl 12(%esp),%edx
164
+ xorl 48(%esp),%edx
165
+ and %ebp,%edx
166
+ xorl 48(%esp),%edx
167
+ movl %edx,8(%ecx)
168
+ movl 16(%esp),%edx
169
+ xorl 52(%esp),%edx
170
+ and %ebp,%edx
171
+ xorl 52(%esp),%edx
172
+ movl %edx,12(%ecx)
173
+ movl 20(%esp),%edx
174
+ xorl 56(%esp),%edx
175
+ and %ebp,%edx
176
+ xorl 56(%esp),%edx
177
+ movl %edx,16(%ecx)
178
+ movl 24(%esp),%edx
179
+ xorl 60(%esp),%edx
180
+ and %ebp,%edx
181
+ xorl 60(%esp),%edx
182
+ movl %edx,20(%ecx)
183
+ movl 28(%esp),%edx
184
+ xorl 64(%esp),%edx
185
+ and %ebp,%edx
186
+ xorl 64(%esp),%edx
187
+ movl %edx,24(%ecx)
188
+ movl 32(%esp),%edx
189
+ xorl 68(%esp),%edx
190
+ and %ebp,%edx
191
+ xorl 68(%esp),%edx
192
+ movl %edx,28(%ecx)
193
+ movl 0(%esp),%ebp
194
+ add %eax,%esp
195
+ ret
@@ -0,0 +1 @@
1
+ Daniel J. Bernstein
@@ -0,0 +1,13 @@
1
+ .text
2
+ .p2align 5
3
+ .globl _crypto_scalarmult_curve25519_athlon_init
4
+ .globl crypto_scalarmult_curve25519_athlon_init
5
+ _crypto_scalarmult_curve25519_athlon_init:
6
+ crypto_scalarmult_curve25519_athlon_init:
7
+ mov %esp,%eax
8
+ and $31,%eax
9
+ add $0,%eax
10
+ sub %eax,%esp
11
+ fldcw crypto_scalarmult_curve25519_athlon_rounding
12
+ add %eax,%esp
13
+ ret