ruby_nacl 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,1616 @@
1
+ /*
2
+ 20080910
3
+ D. J. Bernstein
4
+ Public domain.
5
+ */
6
+
7
+ #include "crypto_onetimeauth.h"
8
+
9
+ typedef unsigned char uchar;
10
+ typedef int int32;
11
+ typedef unsigned int uint32;
12
+ typedef long long int64;
13
+ typedef unsigned long long uint64;
14
+
15
+ static const double poly1305_53_constants[] = {
16
+ 0.00000000558793544769287109375 /* alpham80 = 3 2^(-29) */
17
+ , 24.0 /* alpham48 = 3 2^3 */
18
+ , 103079215104.0 /* alpham16 = 3 2^35 */
19
+ , 6755399441055744.0 /* alpha0 = 3 2^51 */
20
+ , 1770887431076116955136.0 /* alpha18 = 3 2^69 */
21
+ , 29014219670751100192948224.0 /* alpha32 = 3 2^83 */
22
+ , 7605903601369376408980219232256.0 /* alpha50 = 3 2^101 */
23
+ , 124615124604835863084731911901282304.0 /* alpha64 = 3 2^115 */
24
+ , 32667107224410092492483962313449748299776.0 /* alpha82 = 3 2^133 */
25
+ , 535217884764734955396857238543560676143529984.0 /* alpha96 = 3 2^147 */
26
+ , 35076039295941670036888435985190792471742381031424.0 /* alpha112 = 3 2^163 */
27
+ , 9194973245195333150150082162901855101712434733101613056.0 /* alpha130 = 3 2^181 */
28
+ , 0.0000000000000000000000000000000000000036734198463196484624023016788195177431833298649127735047148490821200539357960224151611328125 /* scale = 5 2^(-130) */
29
+ , 6755408030990331.0 /* offset0 = alpha0 + 2^33 - 5 */
30
+ , 29014256564239239022116864.0 /* offset1 = alpha32 + 2^65 - 2^33 */
31
+ , 124615283061160854719918951570079744.0 /* offset2 = alpha64 + 2^97 - 2^65 */
32
+ , 535219245894202480694386063513315216128475136.0 /* offset3 = alpha96 + 2^130 - 2^97 */
33
+ } ;
34
+
35
+ int crypto_onetimeauth(unsigned char *out,const unsigned char *m,unsigned long long l,const unsigned char *k)
36
+ {
37
+ register const unsigned char *r = k;
38
+ register const unsigned char *s = k + 16;
39
+ double r0high_stack;
40
+ double r1high_stack;
41
+ double r1low_stack;
42
+ double sr1high_stack;
43
+ double r2low_stack;
44
+ double sr2high_stack;
45
+ double r0low_stack;
46
+ double sr1low_stack;
47
+ double r2high_stack;
48
+ double sr2low_stack;
49
+ double r3high_stack;
50
+ double sr3high_stack;
51
+ double r3low_stack;
52
+ double sr3low_stack;
53
+ int64 d0;
54
+ int64 d1;
55
+ int64 d2;
56
+ int64 d3;
57
+ register double scale;
58
+ register double alpha0;
59
+ register double alpha32;
60
+ register double alpha64;
61
+ register double alpha96;
62
+ register double alpha130;
63
+ register double h0;
64
+ register double h1;
65
+ register double h2;
66
+ register double h3;
67
+ register double h4;
68
+ register double h5;
69
+ register double h6;
70
+ register double h7;
71
+ register double y7;
72
+ register double y6;
73
+ register double y1;
74
+ register double y0;
75
+ register double y5;
76
+ register double y4;
77
+ register double x7;
78
+ register double x6;
79
+ register double x1;
80
+ register double x0;
81
+ register double y3;
82
+ register double y2;
83
+ register double r3low;
84
+ register double r0low;
85
+ register double r3high;
86
+ register double r0high;
87
+ register double sr1low;
88
+ register double x5;
89
+ register double r3lowx0;
90
+ register double sr1high;
91
+ register double x4;
92
+ register double r0lowx6;
93
+ register double r1low;
94
+ register double x3;
95
+ register double r3highx0;
96
+ register double r1high;
97
+ register double x2;
98
+ register double r0highx6;
99
+ register double sr2low;
100
+ register double r0lowx0;
101
+ register double sr2high;
102
+ register double sr1lowx6;
103
+ register double r2low;
104
+ register double r0highx0;
105
+ register double r2high;
106
+ register double sr1highx6;
107
+ register double sr3low;
108
+ register double r1lowx0;
109
+ register double sr3high;
110
+ register double sr2lowx6;
111
+ register double r1highx0;
112
+ register double sr2highx6;
113
+ register double r2lowx0;
114
+ register double sr3lowx6;
115
+ register double r2highx0;
116
+ register double sr3highx6;
117
+ register double r1highx4;
118
+ register double r1lowx4;
119
+ register double r0highx4;
120
+ register double r0lowx4;
121
+ register double sr3highx4;
122
+ register double sr3lowx4;
123
+ register double sr2highx4;
124
+ register double sr2lowx4;
125
+ register double r0lowx2;
126
+ register double r0highx2;
127
+ register double r1lowx2;
128
+ register double r1highx2;
129
+ register double r2lowx2;
130
+ register double r2highx2;
131
+ register double sr3lowx2;
132
+ register double sr3highx2;
133
+ register double z0;
134
+ register double z1;
135
+ register double z2;
136
+ register double z3;
137
+ register int64 r0;
138
+ register int64 r1;
139
+ register int64 r2;
140
+ register int64 r3;
141
+ register uint32 r00;
142
+ register uint32 r01;
143
+ register uint32 r02;
144
+ register uint32 r03;
145
+ register uint32 r10;
146
+ register uint32 r11;
147
+ register uint32 r12;
148
+ register uint32 r13;
149
+ register uint32 r20;
150
+ register uint32 r21;
151
+ register uint32 r22;
152
+ register uint32 r23;
153
+ register uint32 r30;
154
+ register uint32 r31;
155
+ register uint32 r32;
156
+ register uint32 r33;
157
+ register int64 m0;
158
+ register int64 m1;
159
+ register int64 m2;
160
+ register int64 m3;
161
+ register uint32 m00;
162
+ register uint32 m01;
163
+ register uint32 m02;
164
+ register uint32 m03;
165
+ register uint32 m10;
166
+ register uint32 m11;
167
+ register uint32 m12;
168
+ register uint32 m13;
169
+ register uint32 m20;
170
+ register uint32 m21;
171
+ register uint32 m22;
172
+ register uint32 m23;
173
+ register uint32 m30;
174
+ register uint32 m31;
175
+ register uint32 m32;
176
+ register uint64 m33;
177
+ register char *constants;
178
+ register int32 lbelow2;
179
+ register int32 lbelow3;
180
+ register int32 lbelow4;
181
+ register int32 lbelow5;
182
+ register int32 lbelow6;
183
+ register int32 lbelow7;
184
+ register int32 lbelow8;
185
+ register int32 lbelow9;
186
+ register int32 lbelow10;
187
+ register int32 lbelow11;
188
+ register int32 lbelow12;
189
+ register int32 lbelow13;
190
+ register int32 lbelow14;
191
+ register int32 lbelow15;
192
+ register double alpham80;
193
+ register double alpham48;
194
+ register double alpham16;
195
+ register double alpha18;
196
+ register double alpha50;
197
+ register double alpha82;
198
+ register double alpha112;
199
+ register double offset0;
200
+ register double offset1;
201
+ register double offset2;
202
+ register double offset3;
203
+ register uint32 s00;
204
+ register uint32 s01;
205
+ register uint32 s02;
206
+ register uint32 s03;
207
+ register uint32 s10;
208
+ register uint32 s11;
209
+ register uint32 s12;
210
+ register uint32 s13;
211
+ register uint32 s20;
212
+ register uint32 s21;
213
+ register uint32 s22;
214
+ register uint32 s23;
215
+ register uint32 s30;
216
+ register uint32 s31;
217
+ register uint32 s32;
218
+ register uint32 s33;
219
+ register uint64 bits32;
220
+ register uint64 f;
221
+ register uint64 f0;
222
+ register uint64 f1;
223
+ register uint64 f2;
224
+ register uint64 f3;
225
+ register uint64 f4;
226
+ register uint64 g;
227
+ register uint64 g0;
228
+ register uint64 g1;
229
+ register uint64 g2;
230
+ register uint64 g3;
231
+ register uint64 g4;
232
+
233
+ r00 = *(uchar *) (r + 0);
234
+ constants = (char *) &poly1305_53_constants;
235
+
236
+ r01 = *(uchar *) (r + 1);
237
+
238
+ r02 = *(uchar *) (r + 2);
239
+ r0 = 2151;
240
+
241
+ r03 = *(uchar *) (r + 3); r03 &= 15;
242
+ r0 <<= 51;
243
+
244
+ r10 = *(uchar *) (r + 4); r10 &= 252;
245
+ r01 <<= 8;
246
+ r0 += r00;
247
+
248
+ r11 = *(uchar *) (r + 5);
249
+ r02 <<= 16;
250
+ r0 += r01;
251
+
252
+ r12 = *(uchar *) (r + 6);
253
+ r03 <<= 24;
254
+ r0 += r02;
255
+
256
+ r13 = *(uchar *) (r + 7); r13 &= 15;
257
+ r1 = 2215;
258
+ r0 += r03;
259
+
260
+ d0 = r0;
261
+ r1 <<= 51;
262
+ r2 = 2279;
263
+
264
+ r20 = *(uchar *) (r + 8); r20 &= 252;
265
+ r11 <<= 8;
266
+ r1 += r10;
267
+
268
+ r21 = *(uchar *) (r + 9);
269
+ r12 <<= 16;
270
+ r1 += r11;
271
+
272
+ r22 = *(uchar *) (r + 10);
273
+ r13 <<= 24;
274
+ r1 += r12;
275
+
276
+ r23 = *(uchar *) (r + 11); r23 &= 15;
277
+ r2 <<= 51;
278
+ r1 += r13;
279
+
280
+ d1 = r1;
281
+ r21 <<= 8;
282
+ r2 += r20;
283
+
284
+ r30 = *(uchar *) (r + 12); r30 &= 252;
285
+ r22 <<= 16;
286
+ r2 += r21;
287
+
288
+ r31 = *(uchar *) (r + 13);
289
+ r23 <<= 24;
290
+ r2 += r22;
291
+
292
+ r32 = *(uchar *) (r + 14);
293
+ r2 += r23;
294
+ r3 = 2343;
295
+
296
+ d2 = r2;
297
+ r3 <<= 51;
298
+ alpha32 = *(double *) (constants + 40);
299
+
300
+ r33 = *(uchar *) (r + 15); r33 &= 15;
301
+ r31 <<= 8;
302
+ r3 += r30;
303
+
304
+ r32 <<= 16;
305
+ r3 += r31;
306
+
307
+ r33 <<= 24;
308
+ r3 += r32;
309
+
310
+ r3 += r33;
311
+ h0 = alpha32 - alpha32;
312
+
313
+ d3 = r3;
314
+ h1 = alpha32 - alpha32;
315
+
316
+ alpha0 = *(double *) (constants + 24);
317
+ h2 = alpha32 - alpha32;
318
+
319
+ alpha64 = *(double *) (constants + 56);
320
+ h3 = alpha32 - alpha32;
321
+
322
+ alpha18 = *(double *) (constants + 32);
323
+ h4 = alpha32 - alpha32;
324
+
325
+ r0low = *(double *) &d0;
326
+ h5 = alpha32 - alpha32;
327
+
328
+ r1low = *(double *) &d1;
329
+ h6 = alpha32 - alpha32;
330
+
331
+ r2low = *(double *) &d2;
332
+ h7 = alpha32 - alpha32;
333
+
334
+ alpha50 = *(double *) (constants + 48);
335
+ r0low -= alpha0;
336
+
337
+ alpha82 = *(double *) (constants + 64);
338
+ r1low -= alpha32;
339
+
340
+ scale = *(double *) (constants + 96);
341
+ r2low -= alpha64;
342
+
343
+ alpha96 = *(double *) (constants + 72);
344
+ r0high = r0low + alpha18;
345
+
346
+ r3low = *(double *) &d3;
347
+
348
+ alpham80 = *(double *) (constants + 0);
349
+ r1high = r1low + alpha50;
350
+ sr1low = scale * r1low;
351
+
352
+ alpham48 = *(double *) (constants + 8);
353
+ r2high = r2low + alpha82;
354
+ sr2low = scale * r2low;
355
+
356
+ r0high -= alpha18;
357
+ r0high_stack = r0high;
358
+
359
+ r3low -= alpha96;
360
+
361
+ r1high -= alpha50;
362
+ r1high_stack = r1high;
363
+
364
+ sr1high = sr1low + alpham80;
365
+
366
+ alpha112 = *(double *) (constants + 80);
367
+ r0low -= r0high;
368
+
369
+ alpham16 = *(double *) (constants + 16);
370
+ r2high -= alpha82;
371
+ sr3low = scale * r3low;
372
+
373
+ alpha130 = *(double *) (constants + 88);
374
+ sr2high = sr2low + alpham48;
375
+
376
+ r1low -= r1high;
377
+ r1low_stack = r1low;
378
+
379
+ sr1high -= alpham80;
380
+ sr1high_stack = sr1high;
381
+
382
+ r2low -= r2high;
383
+ r2low_stack = r2low;
384
+
385
+ sr2high -= alpham48;
386
+ sr2high_stack = sr2high;
387
+
388
+ r3high = r3low + alpha112;
389
+ r0low_stack = r0low;
390
+
391
+ sr1low -= sr1high;
392
+ sr1low_stack = sr1low;
393
+
394
+ sr3high = sr3low + alpham16;
395
+ r2high_stack = r2high;
396
+
397
+ sr2low -= sr2high;
398
+ sr2low_stack = sr2low;
399
+
400
+ r3high -= alpha112;
401
+ r3high_stack = r3high;
402
+
403
+
404
+ sr3high -= alpham16;
405
+ sr3high_stack = sr3high;
406
+
407
+
408
+ r3low -= r3high;
409
+ r3low_stack = r3low;
410
+
411
+
412
+ sr3low -= sr3high;
413
+ sr3low_stack = sr3low;
414
+
415
+ if (l < 16) goto addatmost15bytes;
416
+
417
+ m00 = *(uchar *) (m + 0);
418
+ m0 = 2151;
419
+
420
+ m0 <<= 51;
421
+ m1 = 2215;
422
+ m01 = *(uchar *) (m + 1);
423
+
424
+ m1 <<= 51;
425
+ m2 = 2279;
426
+ m02 = *(uchar *) (m + 2);
427
+
428
+ m2 <<= 51;
429
+ m3 = 2343;
430
+ m03 = *(uchar *) (m + 3);
431
+
432
+ m10 = *(uchar *) (m + 4);
433
+ m01 <<= 8;
434
+ m0 += m00;
435
+
436
+ m11 = *(uchar *) (m + 5);
437
+ m02 <<= 16;
438
+ m0 += m01;
439
+
440
+ m12 = *(uchar *) (m + 6);
441
+ m03 <<= 24;
442
+ m0 += m02;
443
+
444
+ m13 = *(uchar *) (m + 7);
445
+ m3 <<= 51;
446
+ m0 += m03;
447
+
448
+ m20 = *(uchar *) (m + 8);
449
+ m11 <<= 8;
450
+ m1 += m10;
451
+
452
+ m21 = *(uchar *) (m + 9);
453
+ m12 <<= 16;
454
+ m1 += m11;
455
+
456
+ m22 = *(uchar *) (m + 10);
457
+ m13 <<= 24;
458
+ m1 += m12;
459
+
460
+ m23 = *(uchar *) (m + 11);
461
+ m1 += m13;
462
+
463
+ m30 = *(uchar *) (m + 12);
464
+ m21 <<= 8;
465
+ m2 += m20;
466
+
467
+ m31 = *(uchar *) (m + 13);
468
+ m22 <<= 16;
469
+ m2 += m21;
470
+
471
+ m32 = *(uchar *) (m + 14);
472
+ m23 <<= 24;
473
+ m2 += m22;
474
+
475
+ m33 = *(uchar *) (m + 15);
476
+ m2 += m23;
477
+
478
+ d0 = m0;
479
+ m31 <<= 8;
480
+ m3 += m30;
481
+
482
+ d1 = m1;
483
+ m32 <<= 16;
484
+ m3 += m31;
485
+
486
+ d2 = m2;
487
+ m33 += 256;
488
+
489
+ m33 <<= 24;
490
+ m3 += m32;
491
+
492
+ m3 += m33;
493
+ d3 = m3;
494
+
495
+ m += 16;
496
+ l -= 16;
497
+
498
+ z0 = *(double *) &d0;
499
+
500
+ z1 = *(double *) &d1;
501
+
502
+ z2 = *(double *) &d2;
503
+
504
+ z3 = *(double *) &d3;
505
+
506
+ z0 -= alpha0;
507
+
508
+ z1 -= alpha32;
509
+
510
+ z2 -= alpha64;
511
+
512
+ z3 -= alpha96;
513
+
514
+ h0 += z0;
515
+
516
+ h1 += z1;
517
+
518
+ h3 += z2;
519
+
520
+ h5 += z3;
521
+
522
+ if (l < 16) goto multiplyaddatmost15bytes;
523
+
524
+ multiplyaddatleast16bytes:;
525
+
526
+ m2 = 2279;
527
+ m20 = *(uchar *) (m + 8);
528
+ y7 = h7 + alpha130;
529
+
530
+ m2 <<= 51;
531
+ m3 = 2343;
532
+ m21 = *(uchar *) (m + 9);
533
+ y6 = h6 + alpha130;
534
+
535
+ m3 <<= 51;
536
+ m0 = 2151;
537
+ m22 = *(uchar *) (m + 10);
538
+ y1 = h1 + alpha32;
539
+
540
+ m0 <<= 51;
541
+ m1 = 2215;
542
+ m23 = *(uchar *) (m + 11);
543
+ y0 = h0 + alpha32;
544
+
545
+ m1 <<= 51;
546
+ m30 = *(uchar *) (m + 12);
547
+ y7 -= alpha130;
548
+
549
+ m21 <<= 8;
550
+ m2 += m20;
551
+ m31 = *(uchar *) (m + 13);
552
+ y6 -= alpha130;
553
+
554
+ m22 <<= 16;
555
+ m2 += m21;
556
+ m32 = *(uchar *) (m + 14);
557
+ y1 -= alpha32;
558
+
559
+ m23 <<= 24;
560
+ m2 += m22;
561
+ m33 = *(uchar *) (m + 15);
562
+ y0 -= alpha32;
563
+
564
+ m2 += m23;
565
+ m00 = *(uchar *) (m + 0);
566
+ y5 = h5 + alpha96;
567
+
568
+ m31 <<= 8;
569
+ m3 += m30;
570
+ m01 = *(uchar *) (m + 1);
571
+ y4 = h4 + alpha96;
572
+
573
+ m32 <<= 16;
574
+ m02 = *(uchar *) (m + 2);
575
+ x7 = h7 - y7;
576
+ y7 *= scale;
577
+
578
+ m33 += 256;
579
+ m03 = *(uchar *) (m + 3);
580
+ x6 = h6 - y6;
581
+ y6 *= scale;
582
+
583
+ m33 <<= 24;
584
+ m3 += m31;
585
+ m10 = *(uchar *) (m + 4);
586
+ x1 = h1 - y1;
587
+
588
+ m01 <<= 8;
589
+ m3 += m32;
590
+ m11 = *(uchar *) (m + 5);
591
+ x0 = h0 - y0;
592
+
593
+ m3 += m33;
594
+ m0 += m00;
595
+ m12 = *(uchar *) (m + 6);
596
+ y5 -= alpha96;
597
+
598
+ m02 <<= 16;
599
+ m0 += m01;
600
+ m13 = *(uchar *) (m + 7);
601
+ y4 -= alpha96;
602
+
603
+ m03 <<= 24;
604
+ m0 += m02;
605
+ d2 = m2;
606
+ x1 += y7;
607
+
608
+ m0 += m03;
609
+ d3 = m3;
610
+ x0 += y6;
611
+
612
+ m11 <<= 8;
613
+ m1 += m10;
614
+ d0 = m0;
615
+ x7 += y5;
616
+
617
+ m12 <<= 16;
618
+ m1 += m11;
619
+ x6 += y4;
620
+
621
+ m13 <<= 24;
622
+ m1 += m12;
623
+ y3 = h3 + alpha64;
624
+
625
+ m1 += m13;
626
+ d1 = m1;
627
+ y2 = h2 + alpha64;
628
+
629
+ x0 += x1;
630
+
631
+ x6 += x7;
632
+
633
+ y3 -= alpha64;
634
+ r3low = r3low_stack;
635
+
636
+ y2 -= alpha64;
637
+ r0low = r0low_stack;
638
+
639
+ x5 = h5 - y5;
640
+ r3lowx0 = r3low * x0;
641
+ r3high = r3high_stack;
642
+
643
+ x4 = h4 - y4;
644
+ r0lowx6 = r0low * x6;
645
+ r0high = r0high_stack;
646
+
647
+ x3 = h3 - y3;
648
+ r3highx0 = r3high * x0;
649
+ sr1low = sr1low_stack;
650
+
651
+ x2 = h2 - y2;
652
+ r0highx6 = r0high * x6;
653
+ sr1high = sr1high_stack;
654
+
655
+ x5 += y3;
656
+ r0lowx0 = r0low * x0;
657
+ r1low = r1low_stack;
658
+
659
+ h6 = r3lowx0 + r0lowx6;
660
+ sr1lowx6 = sr1low * x6;
661
+ r1high = r1high_stack;
662
+
663
+ x4 += y2;
664
+ r0highx0 = r0high * x0;
665
+ sr2low = sr2low_stack;
666
+
667
+ h7 = r3highx0 + r0highx6;
668
+ sr1highx6 = sr1high * x6;
669
+ sr2high = sr2high_stack;
670
+
671
+ x3 += y1;
672
+ r1lowx0 = r1low * x0;
673
+ r2low = r2low_stack;
674
+
675
+ h0 = r0lowx0 + sr1lowx6;
676
+ sr2lowx6 = sr2low * x6;
677
+ r2high = r2high_stack;
678
+
679
+ x2 += y0;
680
+ r1highx0 = r1high * x0;
681
+ sr3low = sr3low_stack;
682
+
683
+ h1 = r0highx0 + sr1highx6;
684
+ sr2highx6 = sr2high * x6;
685
+ sr3high = sr3high_stack;
686
+
687
+ x4 += x5;
688
+ r2lowx0 = r2low * x0;
689
+ z2 = *(double *) &d2;
690
+
691
+ h2 = r1lowx0 + sr2lowx6;
692
+ sr3lowx6 = sr3low * x6;
693
+
694
+ x2 += x3;
695
+ r2highx0 = r2high * x0;
696
+ z3 = *(double *) &d3;
697
+
698
+ h3 = r1highx0 + sr2highx6;
699
+ sr3highx6 = sr3high * x6;
700
+
701
+ r1highx4 = r1high * x4;
702
+ z2 -= alpha64;
703
+
704
+ h4 = r2lowx0 + sr3lowx6;
705
+ r1lowx4 = r1low * x4;
706
+
707
+ r0highx4 = r0high * x4;
708
+ z3 -= alpha96;
709
+
710
+ h5 = r2highx0 + sr3highx6;
711
+ r0lowx4 = r0low * x4;
712
+
713
+ h7 += r1highx4;
714
+ sr3highx4 = sr3high * x4;
715
+
716
+ h6 += r1lowx4;
717
+ sr3lowx4 = sr3low * x4;
718
+
719
+ h5 += r0highx4;
720
+ sr2highx4 = sr2high * x4;
721
+
722
+ h4 += r0lowx4;
723
+ sr2lowx4 = sr2low * x4;
724
+
725
+ h3 += sr3highx4;
726
+ r0lowx2 = r0low * x2;
727
+
728
+ h2 += sr3lowx4;
729
+ r0highx2 = r0high * x2;
730
+
731
+ h1 += sr2highx4;
732
+ r1lowx2 = r1low * x2;
733
+
734
+ h0 += sr2lowx4;
735
+ r1highx2 = r1high * x2;
736
+
737
+ h2 += r0lowx2;
738
+ r2lowx2 = r2low * x2;
739
+
740
+ h3 += r0highx2;
741
+ r2highx2 = r2high * x2;
742
+
743
+ h4 += r1lowx2;
744
+ sr3lowx2 = sr3low * x2;
745
+
746
+ h5 += r1highx2;
747
+ sr3highx2 = sr3high * x2;
748
+ alpha0 = *(double *) (constants + 24);
749
+
750
+ m += 16;
751
+ h6 += r2lowx2;
752
+
753
+ l -= 16;
754
+ h7 += r2highx2;
755
+
756
+ z1 = *(double *) &d1;
757
+ h0 += sr3lowx2;
758
+
759
+ z0 = *(double *) &d0;
760
+ h1 += sr3highx2;
761
+
762
+ z1 -= alpha32;
763
+
764
+ z0 -= alpha0;
765
+
766
+ h5 += z3;
767
+
768
+ h3 += z2;
769
+
770
+ h1 += z1;
771
+
772
+ h0 += z0;
773
+
774
+ if (l >= 16) goto multiplyaddatleast16bytes;
775
+
776
+ multiplyaddatmost15bytes:;
777
+
778
+ y7 = h7 + alpha130;
779
+
780
+ y6 = h6 + alpha130;
781
+
782
+ y1 = h1 + alpha32;
783
+
784
+ y0 = h0 + alpha32;
785
+
786
+ y7 -= alpha130;
787
+
788
+ y6 -= alpha130;
789
+
790
+ y1 -= alpha32;
791
+
792
+ y0 -= alpha32;
793
+
794
+ y5 = h5 + alpha96;
795
+
796
+ y4 = h4 + alpha96;
797
+
798
+ x7 = h7 - y7;
799
+ y7 *= scale;
800
+
801
+ x6 = h6 - y6;
802
+ y6 *= scale;
803
+
804
+ x1 = h1 - y1;
805
+
806
+ x0 = h0 - y0;
807
+
808
+ y5 -= alpha96;
809
+
810
+ y4 -= alpha96;
811
+
812
+ x1 += y7;
813
+
814
+ x0 += y6;
815
+
816
+ x7 += y5;
817
+
818
+ x6 += y4;
819
+
820
+ y3 = h3 + alpha64;
821
+
822
+ y2 = h2 + alpha64;
823
+
824
+ x0 += x1;
825
+
826
+ x6 += x7;
827
+
828
+ y3 -= alpha64;
829
+ r3low = r3low_stack;
830
+
831
+ y2 -= alpha64;
832
+ r0low = r0low_stack;
833
+
834
+ x5 = h5 - y5;
835
+ r3lowx0 = r3low * x0;
836
+ r3high = r3high_stack;
837
+
838
+ x4 = h4 - y4;
839
+ r0lowx6 = r0low * x6;
840
+ r0high = r0high_stack;
841
+
842
+ x3 = h3 - y3;
843
+ r3highx0 = r3high * x0;
844
+ sr1low = sr1low_stack;
845
+
846
+ x2 = h2 - y2;
847
+ r0highx6 = r0high * x6;
848
+ sr1high = sr1high_stack;
849
+
850
+ x5 += y3;
851
+ r0lowx0 = r0low * x0;
852
+ r1low = r1low_stack;
853
+
854
+ h6 = r3lowx0 + r0lowx6;
855
+ sr1lowx6 = sr1low * x6;
856
+ r1high = r1high_stack;
857
+
858
+ x4 += y2;
859
+ r0highx0 = r0high * x0;
860
+ sr2low = sr2low_stack;
861
+
862
+ h7 = r3highx0 + r0highx6;
863
+ sr1highx6 = sr1high * x6;
864
+ sr2high = sr2high_stack;
865
+
866
+ x3 += y1;
867
+ r1lowx0 = r1low * x0;
868
+ r2low = r2low_stack;
869
+
870
+ h0 = r0lowx0 + sr1lowx6;
871
+ sr2lowx6 = sr2low * x6;
872
+ r2high = r2high_stack;
873
+
874
+ x2 += y0;
875
+ r1highx0 = r1high * x0;
876
+ sr3low = sr3low_stack;
877
+
878
+ h1 = r0highx0 + sr1highx6;
879
+ sr2highx6 = sr2high * x6;
880
+ sr3high = sr3high_stack;
881
+
882
+ x4 += x5;
883
+ r2lowx0 = r2low * x0;
884
+
885
+ h2 = r1lowx0 + sr2lowx6;
886
+ sr3lowx6 = sr3low * x6;
887
+
888
+ x2 += x3;
889
+ r2highx0 = r2high * x0;
890
+
891
+ h3 = r1highx0 + sr2highx6;
892
+ sr3highx6 = sr3high * x6;
893
+
894
+ r1highx4 = r1high * x4;
895
+
896
+ h4 = r2lowx0 + sr3lowx6;
897
+ r1lowx4 = r1low * x4;
898
+
899
+ r0highx4 = r0high * x4;
900
+
901
+ h5 = r2highx0 + sr3highx6;
902
+ r0lowx4 = r0low * x4;
903
+
904
+ h7 += r1highx4;
905
+ sr3highx4 = sr3high * x4;
906
+
907
+ h6 += r1lowx4;
908
+ sr3lowx4 = sr3low * x4;
909
+
910
+ h5 += r0highx4;
911
+ sr2highx4 = sr2high * x4;
912
+
913
+ h4 += r0lowx4;
914
+ sr2lowx4 = sr2low * x4;
915
+
916
+ h3 += sr3highx4;
917
+ r0lowx2 = r0low * x2;
918
+
919
+ h2 += sr3lowx4;
920
+ r0highx2 = r0high * x2;
921
+
922
+ h1 += sr2highx4;
923
+ r1lowx2 = r1low * x2;
924
+
925
+ h0 += sr2lowx4;
926
+ r1highx2 = r1high * x2;
927
+
928
+ h2 += r0lowx2;
929
+ r2lowx2 = r2low * x2;
930
+
931
+ h3 += r0highx2;
932
+ r2highx2 = r2high * x2;
933
+
934
+ h4 += r1lowx2;
935
+ sr3lowx2 = sr3low * x2;
936
+
937
+ h5 += r1highx2;
938
+ sr3highx2 = sr3high * x2;
939
+
940
+ h6 += r2lowx2;
941
+
942
+ h7 += r2highx2;
943
+
944
+ h0 += sr3lowx2;
945
+
946
+ h1 += sr3highx2;
947
+
948
+ addatmost15bytes:;
949
+
950
+ if (l == 0) goto nomorebytes;
951
+
952
+ lbelow2 = l - 2;
953
+
954
+ lbelow3 = l - 3;
955
+
956
+ lbelow2 >>= 31;
957
+ lbelow4 = l - 4;
958
+
959
+ m00 = *(uchar *) (m + 0);
960
+ lbelow3 >>= 31;
961
+ m += lbelow2;
962
+
963
+ m01 = *(uchar *) (m + 1);
964
+ lbelow4 >>= 31;
965
+ m += lbelow3;
966
+
967
+ m02 = *(uchar *) (m + 2);
968
+ m += lbelow4;
969
+ m0 = 2151;
970
+
971
+ m03 = *(uchar *) (m + 3);
972
+ m0 <<= 51;
973
+ m1 = 2215;
974
+
975
+ m0 += m00;
976
+ m01 &= ~lbelow2;
977
+
978
+ m02 &= ~lbelow3;
979
+ m01 -= lbelow2;
980
+
981
+ m01 <<= 8;
982
+ m03 &= ~lbelow4;
983
+
984
+ m0 += m01;
985
+ lbelow2 -= lbelow3;
986
+
987
+ m02 += lbelow2;
988
+ lbelow3 -= lbelow4;
989
+
990
+ m02 <<= 16;
991
+ m03 += lbelow3;
992
+
993
+ m03 <<= 24;
994
+ m0 += m02;
995
+
996
+ m0 += m03;
997
+ lbelow5 = l - 5;
998
+
999
+ lbelow6 = l - 6;
1000
+ lbelow7 = l - 7;
1001
+
1002
+ lbelow5 >>= 31;
1003
+ lbelow8 = l - 8;
1004
+
1005
+ lbelow6 >>= 31;
1006
+ m += lbelow5;
1007
+
1008
+ m10 = *(uchar *) (m + 4);
1009
+ lbelow7 >>= 31;
1010
+ m += lbelow6;
1011
+
1012
+ m11 = *(uchar *) (m + 5);
1013
+ lbelow8 >>= 31;
1014
+ m += lbelow7;
1015
+
1016
+ m12 = *(uchar *) (m + 6);
1017
+ m1 <<= 51;
1018
+ m += lbelow8;
1019
+
1020
+ m13 = *(uchar *) (m + 7);
1021
+ m10 &= ~lbelow5;
1022
+ lbelow4 -= lbelow5;
1023
+
1024
+ m10 += lbelow4;
1025
+ lbelow5 -= lbelow6;
1026
+
1027
+ m11 &= ~lbelow6;
1028
+ m11 += lbelow5;
1029
+
1030
+ m11 <<= 8;
1031
+ m1 += m10;
1032
+
1033
+ m1 += m11;
1034
+ m12 &= ~lbelow7;
1035
+
1036
+ lbelow6 -= lbelow7;
1037
+ m13 &= ~lbelow8;
1038
+
1039
+ m12 += lbelow6;
1040
+ lbelow7 -= lbelow8;
1041
+
1042
+ m12 <<= 16;
1043
+ m13 += lbelow7;
1044
+
1045
+ m13 <<= 24;
1046
+ m1 += m12;
1047
+
1048
+ m1 += m13;
1049
+ m2 = 2279;
1050
+
1051
+ lbelow9 = l - 9;
1052
+ m3 = 2343;
1053
+
1054
+ lbelow10 = l - 10;
1055
+ lbelow11 = l - 11;
1056
+
1057
+ lbelow9 >>= 31;
1058
+ lbelow12 = l - 12;
1059
+
1060
+ lbelow10 >>= 31;
1061
+ m += lbelow9;
1062
+
1063
+ m20 = *(uchar *) (m + 8);
1064
+ lbelow11 >>= 31;
1065
+ m += lbelow10;
1066
+
1067
+ m21 = *(uchar *) (m + 9);
1068
+ lbelow12 >>= 31;
1069
+ m += lbelow11;
1070
+
1071
+ m22 = *(uchar *) (m + 10);
1072
+ m2 <<= 51;
1073
+ m += lbelow12;
1074
+
1075
+ m23 = *(uchar *) (m + 11);
1076
+ m20 &= ~lbelow9;
1077
+ lbelow8 -= lbelow9;
1078
+
1079
+ m20 += lbelow8;
1080
+ lbelow9 -= lbelow10;
1081
+
1082
+ m21 &= ~lbelow10;
1083
+ m21 += lbelow9;
1084
+
1085
+ m21 <<= 8;
1086
+ m2 += m20;
1087
+
1088
+ m2 += m21;
1089
+ m22 &= ~lbelow11;
1090
+
1091
+ lbelow10 -= lbelow11;
1092
+ m23 &= ~lbelow12;
1093
+
1094
+ m22 += lbelow10;
1095
+ lbelow11 -= lbelow12;
1096
+
1097
+ m22 <<= 16;
1098
+ m23 += lbelow11;
1099
+
1100
+ m23 <<= 24;
1101
+ m2 += m22;
1102
+
1103
+ m3 <<= 51;
1104
+ lbelow13 = l - 13;
1105
+
1106
+ lbelow13 >>= 31;
1107
+ lbelow14 = l - 14;
1108
+
1109
+ lbelow14 >>= 31;
1110
+ m += lbelow13;
1111
+ lbelow15 = l - 15;
1112
+
1113
+ m30 = *(uchar *) (m + 12);
1114
+ lbelow15 >>= 31;
1115
+ m += lbelow14;
1116
+
1117
+ m31 = *(uchar *) (m + 13);
1118
+ m += lbelow15;
1119
+ m2 += m23;
1120
+
1121
+ m32 = *(uchar *) (m + 14);
1122
+ m30 &= ~lbelow13;
1123
+ lbelow12 -= lbelow13;
1124
+
1125
+ m30 += lbelow12;
1126
+ lbelow13 -= lbelow14;
1127
+
1128
+ m3 += m30;
1129
+ m31 &= ~lbelow14;
1130
+
1131
+ m31 += lbelow13;
1132
+ m32 &= ~lbelow15;
1133
+
1134
+ m31 <<= 8;
1135
+ lbelow14 -= lbelow15;
1136
+
1137
+ m3 += m31;
1138
+ m32 += lbelow14;
1139
+ d0 = m0;
1140
+
1141
+ m32 <<= 16;
1142
+ m33 = lbelow15 + 1;
1143
+ d1 = m1;
1144
+
1145
+ m33 <<= 24;
1146
+ m3 += m32;
1147
+ d2 = m2;
1148
+
1149
+ m3 += m33;
1150
+ d3 = m3;
1151
+
1152
+ alpha0 = *(double *) (constants + 24);
1153
+
1154
+ z3 = *(double *) &d3;
1155
+
1156
+ z2 = *(double *) &d2;
1157
+
1158
+ z1 = *(double *) &d1;
1159
+
1160
+ z0 = *(double *) &d0;
1161
+
1162
+ z3 -= alpha96;
1163
+
1164
+ z2 -= alpha64;
1165
+
1166
+ z1 -= alpha32;
1167
+
1168
+ z0 -= alpha0;
1169
+
1170
+ h5 += z3;
1171
+
1172
+ h3 += z2;
1173
+
1174
+ h1 += z1;
1175
+
1176
+ h0 += z0;
1177
+
1178
+ y7 = h7 + alpha130;
1179
+
1180
+ y6 = h6 + alpha130;
1181
+
1182
+ y1 = h1 + alpha32;
1183
+
1184
+ y0 = h0 + alpha32;
1185
+
1186
+ y7 -= alpha130;
1187
+
1188
+ y6 -= alpha130;
1189
+
1190
+ y1 -= alpha32;
1191
+
1192
+ y0 -= alpha32;
1193
+
1194
+ y5 = h5 + alpha96;
1195
+
1196
+ y4 = h4 + alpha96;
1197
+
1198
+ x7 = h7 - y7;
1199
+ y7 *= scale;
1200
+
1201
+ x6 = h6 - y6;
1202
+ y6 *= scale;
1203
+
1204
+ x1 = h1 - y1;
1205
+
1206
+ x0 = h0 - y0;
1207
+
1208
+ y5 -= alpha96;
1209
+
1210
+ y4 -= alpha96;
1211
+
1212
+ x1 += y7;
1213
+
1214
+ x0 += y6;
1215
+
1216
+ x7 += y5;
1217
+
1218
+ x6 += y4;
1219
+
1220
+ y3 = h3 + alpha64;
1221
+
1222
+ y2 = h2 + alpha64;
1223
+
1224
+ x0 += x1;
1225
+
1226
+ x6 += x7;
1227
+
1228
+ y3 -= alpha64;
1229
+ r3low = r3low_stack;
1230
+
1231
+ y2 -= alpha64;
1232
+ r0low = r0low_stack;
1233
+
1234
+ x5 = h5 - y5;
1235
+ r3lowx0 = r3low * x0;
1236
+ r3high = r3high_stack;
1237
+
1238
+ x4 = h4 - y4;
1239
+ r0lowx6 = r0low * x6;
1240
+ r0high = r0high_stack;
1241
+
1242
+ x3 = h3 - y3;
1243
+ r3highx0 = r3high * x0;
1244
+ sr1low = sr1low_stack;
1245
+
1246
+ x2 = h2 - y2;
1247
+ r0highx6 = r0high * x6;
1248
+ sr1high = sr1high_stack;
1249
+
1250
+ x5 += y3;
1251
+ r0lowx0 = r0low * x0;
1252
+ r1low = r1low_stack;
1253
+
1254
+ h6 = r3lowx0 + r0lowx6;
1255
+ sr1lowx6 = sr1low * x6;
1256
+ r1high = r1high_stack;
1257
+
1258
+ x4 += y2;
1259
+ r0highx0 = r0high * x0;
1260
+ sr2low = sr2low_stack;
1261
+
1262
+ h7 = r3highx0 + r0highx6;
1263
+ sr1highx6 = sr1high * x6;
1264
+ sr2high = sr2high_stack;
1265
+
1266
+ x3 += y1;
1267
+ r1lowx0 = r1low * x0;
1268
+ r2low = r2low_stack;
1269
+
1270
+ h0 = r0lowx0 + sr1lowx6;
1271
+ sr2lowx6 = sr2low * x6;
1272
+ r2high = r2high_stack;
1273
+
1274
+ x2 += y0;
1275
+ r1highx0 = r1high * x0;
1276
+ sr3low = sr3low_stack;
1277
+
1278
+ h1 = r0highx0 + sr1highx6;
1279
+ sr2highx6 = sr2high * x6;
1280
+ sr3high = sr3high_stack;
1281
+
1282
+ x4 += x5;
1283
+ r2lowx0 = r2low * x0;
1284
+
1285
+ h2 = r1lowx0 + sr2lowx6;
1286
+ sr3lowx6 = sr3low * x6;
1287
+
1288
+ x2 += x3;
1289
+ r2highx0 = r2high * x0;
1290
+
1291
+ h3 = r1highx0 + sr2highx6;
1292
+ sr3highx6 = sr3high * x6;
1293
+
1294
+ r1highx4 = r1high * x4;
1295
+
1296
+ h4 = r2lowx0 + sr3lowx6;
1297
+ r1lowx4 = r1low * x4;
1298
+
1299
+ r0highx4 = r0high * x4;
1300
+
1301
+ h5 = r2highx0 + sr3highx6;
1302
+ r0lowx4 = r0low * x4;
1303
+
1304
+ h7 += r1highx4;
1305
+ sr3highx4 = sr3high * x4;
1306
+
1307
+ h6 += r1lowx4;
1308
+ sr3lowx4 = sr3low * x4;
1309
+
1310
+ h5 += r0highx4;
1311
+ sr2highx4 = sr2high * x4;
1312
+
1313
+ h4 += r0lowx4;
1314
+ sr2lowx4 = sr2low * x4;
1315
+
1316
+ h3 += sr3highx4;
1317
+ r0lowx2 = r0low * x2;
1318
+
1319
+ h2 += sr3lowx4;
1320
+ r0highx2 = r0high * x2;
1321
+
1322
+ h1 += sr2highx4;
1323
+ r1lowx2 = r1low * x2;
1324
+
1325
+ h0 += sr2lowx4;
1326
+ r1highx2 = r1high * x2;
1327
+
1328
+ h2 += r0lowx2;
1329
+ r2lowx2 = r2low * x2;
1330
+
1331
+ h3 += r0highx2;
1332
+ r2highx2 = r2high * x2;
1333
+
1334
+ h4 += r1lowx2;
1335
+ sr3lowx2 = sr3low * x2;
1336
+
1337
+ h5 += r1highx2;
1338
+ sr3highx2 = sr3high * x2;
1339
+
1340
+ h6 += r2lowx2;
1341
+
1342
+ h7 += r2highx2;
1343
+
1344
+ h0 += sr3lowx2;
1345
+
1346
+ h1 += sr3highx2;
1347
+
1348
+
1349
+ nomorebytes:;
1350
+
1351
+ offset0 = *(double *) (constants + 104);
1352
+ y7 = h7 + alpha130;
1353
+
1354
+ offset1 = *(double *) (constants + 112);
1355
+ y0 = h0 + alpha32;
1356
+
1357
+ offset2 = *(double *) (constants + 120);
1358
+ y1 = h1 + alpha32;
1359
+
1360
+ offset3 = *(double *) (constants + 128);
1361
+ y2 = h2 + alpha64;
1362
+
1363
+ y7 -= alpha130;
1364
+
1365
+ y3 = h3 + alpha64;
1366
+
1367
+ y4 = h4 + alpha96;
1368
+
1369
+ y5 = h5 + alpha96;
1370
+
1371
+ x7 = h7 - y7;
1372
+ y7 *= scale;
1373
+
1374
+ y0 -= alpha32;
1375
+
1376
+ y1 -= alpha32;
1377
+
1378
+ y2 -= alpha64;
1379
+
1380
+ h6 += x7;
1381
+
1382
+ y3 -= alpha64;
1383
+
1384
+ y4 -= alpha96;
1385
+
1386
+ y5 -= alpha96;
1387
+
1388
+ y6 = h6 + alpha130;
1389
+
1390
+ x0 = h0 - y0;
1391
+
1392
+ x1 = h1 - y1;
1393
+
1394
+ x2 = h2 - y2;
1395
+
1396
+ y6 -= alpha130;
1397
+
1398
+ x0 += y7;
1399
+
1400
+ x3 = h3 - y3;
1401
+
1402
+ x4 = h4 - y4;
1403
+
1404
+ x5 = h5 - y5;
1405
+
1406
+ x6 = h6 - y6;
1407
+
1408
+ y6 *= scale;
1409
+
1410
+ x2 += y0;
1411
+
1412
+ x3 += y1;
1413
+
1414
+ x4 += y2;
1415
+
1416
+ x0 += y6;
1417
+
1418
+ x5 += y3;
1419
+
1420
+ x6 += y4;
1421
+
1422
+ x2 += x3;
1423
+
1424
+ x0 += x1;
1425
+
1426
+ x4 += x5;
1427
+
1428
+ x6 += y5;
1429
+
1430
+ x2 += offset1;
1431
+ *(double *) &d1 = x2;
1432
+
1433
+ x0 += offset0;
1434
+ *(double *) &d0 = x0;
1435
+
1436
+ x4 += offset2;
1437
+ *(double *) &d2 = x4;
1438
+
1439
+ x6 += offset3;
1440
+ *(double *) &d3 = x6;
1441
+
1442
+
1443
+
1444
+
1445
+ f0 = d0;
1446
+
1447
+ f1 = d1;
1448
+ bits32 = -1;
1449
+
1450
+ f2 = d2;
1451
+ bits32 >>= 32;
1452
+
1453
+ f3 = d3;
1454
+ f = f0 >> 32;
1455
+
1456
+ f0 &= bits32;
1457
+ f &= 255;
1458
+
1459
+ f1 += f;
1460
+ g0 = f0 + 5;
1461
+
1462
+ g = g0 >> 32;
1463
+ g0 &= bits32;
1464
+
1465
+ f = f1 >> 32;
1466
+ f1 &= bits32;
1467
+
1468
+ f &= 255;
1469
+ g1 = f1 + g;
1470
+
1471
+ g = g1 >> 32;
1472
+ f2 += f;
1473
+
1474
+ f = f2 >> 32;
1475
+ g1 &= bits32;
1476
+
1477
+ f2 &= bits32;
1478
+ f &= 255;
1479
+
1480
+ f3 += f;
1481
+ g2 = f2 + g;
1482
+
1483
+ g = g2 >> 32;
1484
+ g2 &= bits32;
1485
+
1486
+ f4 = f3 >> 32;
1487
+ f3 &= bits32;
1488
+
1489
+ f4 &= 255;
1490
+ g3 = f3 + g;
1491
+
1492
+ g = g3 >> 32;
1493
+ g3 &= bits32;
1494
+
1495
+ g4 = f4 + g;
1496
+
1497
+ g4 = g4 - 4;
1498
+ s00 = *(uchar *) (s + 0);
1499
+
1500
+ f = (int64) g4 >> 63;
1501
+ s01 = *(uchar *) (s + 1);
1502
+
1503
+ f0 &= f;
1504
+ g0 &= ~f;
1505
+ s02 = *(uchar *) (s + 2);
1506
+
1507
+ f1 &= f;
1508
+ f0 |= g0;
1509
+ s03 = *(uchar *) (s + 3);
1510
+
1511
+ g1 &= ~f;
1512
+ f2 &= f;
1513
+ s10 = *(uchar *) (s + 4);
1514
+
1515
+ f3 &= f;
1516
+ g2 &= ~f;
1517
+ s11 = *(uchar *) (s + 5);
1518
+
1519
+ g3 &= ~f;
1520
+ f1 |= g1;
1521
+ s12 = *(uchar *) (s + 6);
1522
+
1523
+ f2 |= g2;
1524
+ f3 |= g3;
1525
+ s13 = *(uchar *) (s + 7);
1526
+
1527
+ s01 <<= 8;
1528
+ f0 += s00;
1529
+ s20 = *(uchar *) (s + 8);
1530
+
1531
+ s02 <<= 16;
1532
+ f0 += s01;
1533
+ s21 = *(uchar *) (s + 9);
1534
+
1535
+ s03 <<= 24;
1536
+ f0 += s02;
1537
+ s22 = *(uchar *) (s + 10);
1538
+
1539
+ s11 <<= 8;
1540
+ f1 += s10;
1541
+ s23 = *(uchar *) (s + 11);
1542
+
1543
+ s12 <<= 16;
1544
+ f1 += s11;
1545
+ s30 = *(uchar *) (s + 12);
1546
+
1547
+ s13 <<= 24;
1548
+ f1 += s12;
1549
+ s31 = *(uchar *) (s + 13);
1550
+
1551
+ f0 += s03;
1552
+ f1 += s13;
1553
+ s32 = *(uchar *) (s + 14);
1554
+
1555
+ s21 <<= 8;
1556
+ f2 += s20;
1557
+ s33 = *(uchar *) (s + 15);
1558
+
1559
+ s22 <<= 16;
1560
+ f2 += s21;
1561
+
1562
+ s23 <<= 24;
1563
+ f2 += s22;
1564
+
1565
+ s31 <<= 8;
1566
+ f3 += s30;
1567
+
1568
+ s32 <<= 16;
1569
+ f3 += s31;
1570
+
1571
+ s33 <<= 24;
1572
+ f3 += s32;
1573
+
1574
+ f2 += s23;
1575
+ f3 += s33;
1576
+
1577
+ *(uchar *) (out + 0) = f0;
1578
+ f0 >>= 8;
1579
+ *(uchar *) (out + 1) = f0;
1580
+ f0 >>= 8;
1581
+ *(uchar *) (out + 2) = f0;
1582
+ f0 >>= 8;
1583
+ *(uchar *) (out + 3) = f0;
1584
+ f0 >>= 8;
1585
+ f1 += f0;
1586
+
1587
+ *(uchar *) (out + 4) = f1;
1588
+ f1 >>= 8;
1589
+ *(uchar *) (out + 5) = f1;
1590
+ f1 >>= 8;
1591
+ *(uchar *) (out + 6) = f1;
1592
+ f1 >>= 8;
1593
+ *(uchar *) (out + 7) = f1;
1594
+ f1 >>= 8;
1595
+ f2 += f1;
1596
+
1597
+ *(uchar *) (out + 8) = f2;
1598
+ f2 >>= 8;
1599
+ *(uchar *) (out + 9) = f2;
1600
+ f2 >>= 8;
1601
+ *(uchar *) (out + 10) = f2;
1602
+ f2 >>= 8;
1603
+ *(uchar *) (out + 11) = f2;
1604
+ f2 >>= 8;
1605
+ f3 += f2;
1606
+
1607
+ *(uchar *) (out + 12) = f3;
1608
+ f3 >>= 8;
1609
+ *(uchar *) (out + 13) = f3;
1610
+ f3 >>= 8;
1611
+ *(uchar *) (out + 14) = f3;
1612
+ f3 >>= 8;
1613
+ *(uchar *) (out + 15) = f3;
1614
+
1615
+ return 0;
1616
+ }