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,438 @@
1
+ #ifndef E_H
2
+ #define E_H
3
+
4
+ #include <errno.h>
5
+
6
+ extern const char *e_str(int);
7
+
8
+ #ifndef EPERM
9
+ #define EPERM (-5001)
10
+ #endif
11
+ #ifndef ENOENT
12
+ #define ENOENT (-5002)
13
+ #endif
14
+ #ifndef ESRCH
15
+ #define ESRCH (-5003)
16
+ #endif
17
+ #ifndef EINTR
18
+ #define EINTR (-5004)
19
+ #endif
20
+ #ifndef EIO
21
+ #define EIO (-5005)
22
+ #endif
23
+ #ifndef ENXIO
24
+ #define ENXIO (-5006)
25
+ #endif
26
+ #ifndef E2BIG
27
+ #define E2BIG (-5007)
28
+ #endif
29
+ #ifndef ENOEXEC
30
+ #define ENOEXEC (-5008)
31
+ #endif
32
+ #ifndef EBADF
33
+ #define EBADF (-5009)
34
+ #endif
35
+ #ifndef ECHILD
36
+ #define ECHILD (-5010)
37
+ #endif
38
+ #ifndef EAGAIN
39
+ #define EAGAIN (-5011)
40
+ #endif
41
+ #ifndef EWOULDBLOCK
42
+ #define EWOULDBLOCK (-7011)
43
+ #endif
44
+ #ifndef ENOMEM
45
+ #define ENOMEM (-5012)
46
+ #endif
47
+ #ifndef EACCES
48
+ #define EACCES (-5013)
49
+ #endif
50
+ #ifndef EFAULT
51
+ #define EFAULT (-5014)
52
+ #endif
53
+ #ifndef ENOTBLK
54
+ #define ENOTBLK (-5015)
55
+ #endif
56
+ #ifndef EBUSY
57
+ #define EBUSY (-5016)
58
+ #endif
59
+ #ifndef EEXIST
60
+ #define EEXIST (-5017)
61
+ #endif
62
+ #ifndef EXDEV
63
+ #define EXDEV (-5018)
64
+ #endif
65
+ #ifndef ENODEV
66
+ #define ENODEV (-5019)
67
+ #endif
68
+ #ifndef ENOTDIR
69
+ #define ENOTDIR (-5020)
70
+ #endif
71
+ #ifndef EISDIR
72
+ #define EISDIR (-5021)
73
+ #endif
74
+ #ifndef EINVAL
75
+ #define EINVAL (-5022)
76
+ #endif
77
+ #ifndef ENFILE
78
+ #define ENFILE (-5023)
79
+ #endif
80
+ #ifndef EMFILE
81
+ #define EMFILE (-5024)
82
+ #endif
83
+ #ifndef ENOTTY
84
+ #define ENOTTY (-5025)
85
+ #endif
86
+ #ifndef ETXTBSY
87
+ #define ETXTBSY (-5026)
88
+ #endif
89
+ #ifndef EFBIG
90
+ #define EFBIG (-5027)
91
+ #endif
92
+ #ifndef ENOSPC
93
+ #define ENOSPC (-5028)
94
+ #endif
95
+ #ifndef ESPIPE
96
+ #define ESPIPE (-5029)
97
+ #endif
98
+ #ifndef EROFS
99
+ #define EROFS (-5030)
100
+ #endif
101
+ #ifndef EMLINK
102
+ #define EMLINK (-5031)
103
+ #endif
104
+ #ifndef EPIPE
105
+ #define EPIPE (-5032)
106
+ #endif
107
+ #ifndef EDOM
108
+ #define EDOM (-5033)
109
+ #endif
110
+ #ifndef ERANGE
111
+ #define ERANGE (-5034)
112
+ #endif
113
+ #ifndef EDEADLK
114
+ #define EDEADLK (-5035)
115
+ #endif
116
+ #ifndef EDEADLOCK
117
+ #define EDEADLOCK (-7035)
118
+ #endif
119
+ #ifndef ENAMETOOLONG
120
+ #define ENAMETOOLONG (-5036)
121
+ #endif
122
+ #ifndef ENOLCK
123
+ #define ENOLCK (-5037)
124
+ #endif
125
+ #ifndef ENOSYS
126
+ #define ENOSYS (-5038)
127
+ #endif
128
+ #ifndef ENOTEMPTY
129
+ #define ENOTEMPTY (-5039)
130
+ #endif
131
+ #ifndef ELOOP
132
+ #define ELOOP (-5040)
133
+ #endif
134
+ #ifndef ENOMSG
135
+ #define ENOMSG (-5042)
136
+ #endif
137
+ #ifndef EIDRM
138
+ #define EIDRM (-5043)
139
+ #endif
140
+ #ifndef ECHRNG
141
+ #define ECHRNG (-5044)
142
+ #endif
143
+ #ifndef EL2NSYNC
144
+ #define EL2NSYNC (-5045)
145
+ #endif
146
+ #ifndef EL3HLT
147
+ #define EL3HLT (-5046)
148
+ #endif
149
+ #ifndef EL3RST
150
+ #define EL3RST (-5047)
151
+ #endif
152
+ #ifndef ELNRNG
153
+ #define ELNRNG (-5048)
154
+ #endif
155
+ #ifndef EUNATCH
156
+ #define EUNATCH (-5049)
157
+ #endif
158
+ #ifndef ENOCSI
159
+ #define ENOCSI (-5050)
160
+ #endif
161
+ #ifndef EL2HLT
162
+ #define EL2HLT (-5051)
163
+ #endif
164
+ #ifndef EBADE
165
+ #define EBADE (-5052)
166
+ #endif
167
+ #ifndef EBADR
168
+ #define EBADR (-5053)
169
+ #endif
170
+ #ifndef EXFULL
171
+ #define EXFULL (-5054)
172
+ #endif
173
+ #ifndef ENOANO
174
+ #define ENOANO (-5055)
175
+ #endif
176
+ #ifndef EBADRQC
177
+ #define EBADRQC (-5056)
178
+ #endif
179
+ #ifndef EBADSLT
180
+ #define EBADSLT (-5057)
181
+ #endif
182
+ #ifndef EBFONT
183
+ #define EBFONT (-5059)
184
+ #endif
185
+ #ifndef ENOSTR
186
+ #define ENOSTR (-5060)
187
+ #endif
188
+ #ifndef ENODATA
189
+ #define ENODATA (-5061)
190
+ #endif
191
+ #ifndef ETIME
192
+ #define ETIME (-5062)
193
+ #endif
194
+ #ifndef ENOSR
195
+ #define ENOSR (-5063)
196
+ #endif
197
+ #ifndef ENONET
198
+ #define ENONET (-5064)
199
+ #endif
200
+ #ifndef ENOPKG
201
+ #define ENOPKG (-5065)
202
+ #endif
203
+ #ifndef EREMOTE
204
+ #define EREMOTE (-5066)
205
+ #endif
206
+ #ifndef ENOLINK
207
+ #define ENOLINK (-5067)
208
+ #endif
209
+ #ifndef EADV
210
+ #define EADV (-5068)
211
+ #endif
212
+ #ifndef ESRMNT
213
+ #define ESRMNT (-5069)
214
+ #endif
215
+ #ifndef ECOMM
216
+ #define ECOMM (-5070)
217
+ #endif
218
+ #ifndef EPROTO
219
+ #define EPROTO (-5071)
220
+ #endif
221
+ #ifndef EMULTIHOP
222
+ #define EMULTIHOP (-5072)
223
+ #endif
224
+ #ifndef EDOTDOT
225
+ #define EDOTDOT (-5073)
226
+ #endif
227
+ #ifndef EBADMSG
228
+ #define EBADMSG (-5074)
229
+ #endif
230
+ #ifndef EOVERFLOW
231
+ #define EOVERFLOW (-5075)
232
+ #endif
233
+ #ifndef ENOTUNIQ
234
+ #define ENOTUNIQ (-5076)
235
+ #endif
236
+ #ifndef EBADFD
237
+ #define EBADFD (-5077)
238
+ #endif
239
+ #ifndef EREMCHG
240
+ #define EREMCHG (-5078)
241
+ #endif
242
+ #ifndef ELIBACC
243
+ #define ELIBACC (-5079)
244
+ #endif
245
+ #ifndef ELIBBAD
246
+ #define ELIBBAD (-5080)
247
+ #endif
248
+ #ifndef ELIBSCN
249
+ #define ELIBSCN (-5081)
250
+ #endif
251
+ #ifndef ELIBMAX
252
+ #define ELIBMAX (-5082)
253
+ #endif
254
+ #ifndef ELIBEXEC
255
+ #define ELIBEXEC (-5083)
256
+ #endif
257
+ #ifndef EILSEQ
258
+ #define EILSEQ (-5084)
259
+ #endif
260
+ #ifndef ERESTART
261
+ #define ERESTART (-5085)
262
+ #endif
263
+ #ifndef ESTRPIPE
264
+ #define ESTRPIPE (-5086)
265
+ #endif
266
+ #ifndef EUSERS
267
+ #define EUSERS (-5087)
268
+ #endif
269
+ #ifndef ENOTSOCK
270
+ #define ENOTSOCK (-5088)
271
+ #endif
272
+ #ifndef EDESTADDRREQ
273
+ #define EDESTADDRREQ (-5089)
274
+ #endif
275
+ #ifndef EMSGSIZE
276
+ #define EMSGSIZE (-5090)
277
+ #endif
278
+ #ifndef EPROTOTYPE
279
+ #define EPROTOTYPE (-5091)
280
+ #endif
281
+ #ifndef ENOPROTOOPT
282
+ #define ENOPROTOOPT (-5092)
283
+ #endif
284
+ #ifndef EPROTONOSUPPORT
285
+ #define EPROTONOSUPPORT (-5093)
286
+ #endif
287
+ #ifndef ESOCKTNOSUPPORT
288
+ #define ESOCKTNOSUPPORT (-5094)
289
+ #endif
290
+ #ifndef EOPNOTSUPP
291
+ #define EOPNOTSUPP (-5095)
292
+ #endif
293
+ #ifndef EPFNOSUPPORT
294
+ #define EPFNOSUPPORT (-5096)
295
+ #endif
296
+ #ifndef EAFNOSUPPORT
297
+ #define EAFNOSUPPORT (-5097)
298
+ #endif
299
+ #ifndef EADDRINUSE
300
+ #define EADDRINUSE (-5098)
301
+ #endif
302
+ #ifndef EADDRNOTAVAIL
303
+ #define EADDRNOTAVAIL (-5099)
304
+ #endif
305
+ #ifndef ENETDOWN
306
+ #define ENETDOWN (-5100)
307
+ #endif
308
+ #ifndef ENETUNREACH
309
+ #define ENETUNREACH (-5101)
310
+ #endif
311
+ #ifndef ENETRESET
312
+ #define ENETRESET (-5102)
313
+ #endif
314
+ #ifndef ECONNABORTED
315
+ #define ECONNABORTED (-5103)
316
+ #endif
317
+ #ifndef ECONNRESET
318
+ #define ECONNRESET (-5104)
319
+ #endif
320
+ #ifndef ENOBUFS
321
+ #define ENOBUFS (-5105)
322
+ #endif
323
+ #ifndef EISCONN
324
+ #define EISCONN (-5106)
325
+ #endif
326
+ #ifndef ENOTCONN
327
+ #define ENOTCONN (-5107)
328
+ #endif
329
+ #ifndef ESHUTDOWN
330
+ #define ESHUTDOWN (-5108)
331
+ #endif
332
+ #ifndef ETOOMANYREFS
333
+ #define ETOOMANYREFS (-5109)
334
+ #endif
335
+ #ifndef ETIMEDOUT
336
+ #define ETIMEDOUT (-5110)
337
+ #endif
338
+ #ifndef ECONNREFUSED
339
+ #define ECONNREFUSED (-5111)
340
+ #endif
341
+ #ifndef EHOSTDOWN
342
+ #define EHOSTDOWN (-5112)
343
+ #endif
344
+ #ifndef EHOSTUNREACH
345
+ #define EHOSTUNREACH (-5113)
346
+ #endif
347
+ #ifndef EALREADY
348
+ #define EALREADY (-5114)
349
+ #endif
350
+ #ifndef EINPROGRESS
351
+ #define EINPROGRESS (-5115)
352
+ #endif
353
+ #ifndef ESTALE
354
+ #define ESTALE (-5116)
355
+ #endif
356
+ #ifndef EUCLEAN
357
+ #define EUCLEAN (-5117)
358
+ #endif
359
+ #ifndef ENOTNAM
360
+ #define ENOTNAM (-5118)
361
+ #endif
362
+ #ifndef ENAVAIL
363
+ #define ENAVAIL (-5119)
364
+ #endif
365
+ #ifndef EISNAM
366
+ #define EISNAM (-5120)
367
+ #endif
368
+ #ifndef EREMOTEIO
369
+ #define EREMOTEIO (-5121)
370
+ #endif
371
+ #ifndef EDQUOT
372
+ #define EDQUOT (-5122)
373
+ #endif
374
+ #ifndef ENOMEDIUM
375
+ #define ENOMEDIUM (-5123)
376
+ #endif
377
+ #ifndef EMEDIUMTYPE
378
+ #define EMEDIUMTYPE (-5124)
379
+ #endif
380
+ #ifndef ECANCELED
381
+ #define ECANCELED (-5125)
382
+ #endif
383
+ #ifndef ENOKEY
384
+ #define ENOKEY (-5126)
385
+ #endif
386
+ #ifndef EKEYEXPIRED
387
+ #define EKEYEXPIRED (-5127)
388
+ #endif
389
+ #ifndef EKEYREVOKED
390
+ #define EKEYREVOKED (-5128)
391
+ #endif
392
+ #ifndef EKEYREJECTED
393
+ #define EKEYREJECTED (-5129)
394
+ #endif
395
+ #ifndef EOWNERDEAD
396
+ #define EOWNERDEAD (-5130)
397
+ #endif
398
+ #ifndef ENOTRECOVERABLE
399
+ #define ENOTRECOVERABLE (-5131)
400
+ #endif
401
+ #ifndef ERFKILL
402
+ #define ERFKILL (-5132)
403
+ #endif
404
+ #ifndef EPROCLIM
405
+ #define EPROCLIM (-6067)
406
+ #endif
407
+ #ifndef EBADRPC
408
+ #define EBADRPC (-6072)
409
+ #endif
410
+ #ifndef ERPCMISMATCH
411
+ #define ERPCMISMATCH (-6073)
412
+ #endif
413
+ #ifndef EPROGUNAVAIL
414
+ #define EPROGUNAVAIL (-6074)
415
+ #endif
416
+ #ifndef EPROGMISMATCH
417
+ #define EPROGMISMATCH (-6075)
418
+ #endif
419
+ #ifndef EPROCUNAVAIL
420
+ #define EPROCUNAVAIL (-6076)
421
+ #endif
422
+ #ifndef EFTYPE
423
+ #define EFTYPE (-6079)
424
+ #endif
425
+ #ifndef EAUTH
426
+ #define EAUTH (-6080)
427
+ #endif
428
+ #ifndef ENEEDAUTH
429
+ #define ENEEDAUTH (-6081)
430
+ #endif
431
+ #ifndef ENOATTR
432
+ #define ENOATTR (-6087)
433
+ #endif
434
+ #ifndef ENOTCAPABLE
435
+ #define ENOTCAPABLE (-6093)
436
+ #endif
437
+
438
+ #endif
@@ -0,0 +1,25 @@
1
+ #include "hexparse.h"
2
+
3
+ static int hexdigit(char x)
4
+ {
5
+ if (x >= '0' && x <= '9') return x - '0';
6
+ if (x >= 'a' && x <= 'f') return 10 + (x - 'a');
7
+ if (x >= 'A' && x <= 'F') return 10 + (x - 'A');
8
+ return -1;
9
+ }
10
+
11
+ int hexparse(unsigned char *y,long long len,const char *x)
12
+ {
13
+ if (!x) return 0;
14
+ while (len > 0) {
15
+ int digit0;
16
+ int digit1;
17
+ digit0 = hexdigit(x[0]); if (digit0 == -1) return 0;
18
+ digit1 = hexdigit(x[1]); if (digit1 == -1) return 0;
19
+ *y++ = digit1 + 16 * digit0;
20
+ --len;
21
+ x += 2;
22
+ }
23
+ if (x[0]) return 0;
24
+ return 1;
25
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef HEXPARSE_H
2
+ #define HEXPARSE_H
3
+
4
+ extern int hexparse(unsigned char *,long long,const char *);
5
+
6
+ #endif
@@ -0,0 +1,33 @@
1
+ #include <unistd.h>
2
+ #include "open.h"
3
+ #include "e.h"
4
+ #include "load.h"
5
+
6
+ static int readall(int fd,void *x,long long xlen)
7
+ {
8
+ long long r;
9
+ while (xlen > 0) {
10
+ r = xlen;
11
+ if (r > 1048576) r = 1048576;
12
+ r = read(fd,x,r);
13
+ if (r == 0) errno = EPROTO;
14
+ if (r <= 0) {
15
+ if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) continue;
16
+ return -1;
17
+ }
18
+ x += r;
19
+ xlen -= r;
20
+ }
21
+ return 0;
22
+ }
23
+
24
+ int load(const char *fn,void *x,long long xlen)
25
+ {
26
+ int fd;
27
+ int r;
28
+ fd = open_read(fn);
29
+ if (fd == -1) return -1;
30
+ r = readall(fd,x,xlen);
31
+ close(fd);
32
+ return r;
33
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef LOAD_H
2
+ #define LOAD_H
3
+
4
+ extern int load(const char *,void *,long long);
5
+
6
+ #endif
@@ -0,0 +1,19 @@
1
+ #include "nameparse.h"
2
+
3
+ int nameparse(unsigned char *s,const char *x)
4
+ {
5
+ long long pos;
6
+ long long j;
7
+ if (!x) return 0;
8
+ for (pos = 0;pos < 256;++pos) s[pos] = 0;
9
+ pos = 0;
10
+ while (*x) {
11
+ if (*x == '.') { ++x; continue; }
12
+ for (j = 0;x[j];++j) if (x[j] == '.') break;
13
+ if (j > 63) return 0;
14
+ if (pos < 0 || pos >= 256) return 0; s[pos++] = j;
15
+ while (j > 0) { if (pos < 0 || pos >= 256) return 0; s[pos++] = *x++; --j; }
16
+ }
17
+ if (pos < 0 || pos >= 256) return 0; s[pos++] = 0;
18
+ return 1;
19
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef NAMEPARSE_H
2
+ #define NAMEPARSE_H
3
+
4
+ extern int nameparse(unsigned char *,const char *);
5
+
6
+ #endif
@@ -0,0 +1,27 @@
1
+ #include <time.h>
2
+ #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
3
+ #include <mach/clock.h>
4
+ #include <mach/mach.h>
5
+ #endif
6
+ #include "nanoseconds.h"
7
+
8
+ /* XXX: Y2036 problems; should upgrade to a 128-bit type for this */
9
+ /* XXX: nanosecond granularity limits users to 1 terabyte per second */
10
+
11
+ long long nanoseconds(void)
12
+ {
13
+ struct timespec t;
14
+
15
+ #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
16
+ clock_serv_t cclock;
17
+ mach_timespec_t mts;
18
+ host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
19
+ clock_get_time(cclock, &mts);
20
+ mach_port_deallocate(mach_task_self(), cclock);
21
+ t.tv_sec = mts.tv_sec;
22
+ t.tv_nsec = mts.tv_nsec;
23
+ #else
24
+ if (clock_gettime(CLOCK_REALTIME,&t) != 0) return -1;
25
+ #endif
26
+ return t.tv_sec * 1000000000LL + t.tv_nsec;
27
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef NANOSECONDS_H
2
+ #define NANOSECONDS_H
3
+
4
+ extern long long nanoseconds(void);
5
+
6
+ #endif
@@ -0,0 +1,10 @@
1
+ #ifndef OPEN_H
2
+ #define OPEN_H
3
+
4
+ extern int open_read(const char *);
5
+ extern int open_write(const char *);
6
+ extern int open_lock(const char *);
7
+ extern int open_cwd(void);
8
+ extern int open_pipe(int *);
9
+
10
+ #endif
@@ -0,0 +1,6 @@
1
+ #include "open.h"
2
+
3
+ int open_cwd(void)
4
+ {
5
+ return open_read(".");
6
+ }
@@ -0,0 +1,19 @@
1
+ #include <sys/types.h>
2
+ #include <sys/stat.h>
3
+ #include <unistd.h>
4
+ #include <fcntl.h>
5
+ #include "open.h"
6
+
7
+ int open_lock(const char *fn)
8
+ {
9
+ #ifdef O_CLOEXEC
10
+ int fd = open(fn,O_RDWR | O_CLOEXEC);
11
+ if (fd == -1) return -1;
12
+ #else
13
+ int fd = open(fn,O_RDWR);
14
+ if (fd == -1) return -1;
15
+ fcntl(fd,F_SETFD,1);
16
+ #endif
17
+ if (lockf(fd,F_LOCK,0) == -1) { close(fd); return -1; }
18
+ return fd;
19
+ }
@@ -0,0 +1,15 @@
1
+ #include <unistd.h>
2
+ #include <fcntl.h>
3
+ #include "open.h"
4
+ #include "blocking.h"
5
+
6
+ int open_pipe(int *fd)
7
+ {
8
+ int i;
9
+ if (pipe(fd) == -1) return -1;
10
+ for (i = 0;i < 2;++i) {
11
+ fcntl(fd[i],F_SETFD,1);
12
+ blocking_disable(fd[i]);
13
+ }
14
+ return 0;
15
+ }
@@ -0,0 +1,17 @@
1
+ #include <sys/types.h>
2
+ #include <sys/stat.h>
3
+ #include <unistd.h>
4
+ #include <fcntl.h>
5
+ #include "open.h"
6
+
7
+ int open_read(const char *fn)
8
+ {
9
+ #ifdef O_CLOEXEC
10
+ return open(fn,O_RDONLY | O_NONBLOCK | O_CLOEXEC);
11
+ #else
12
+ int fd = open(fn,O_RDONLY | O_NONBLOCK);
13
+ if (fd == -1) return -1;
14
+ fcntl(fd,F_SETFD,1);
15
+ return fd;
16
+ #endif
17
+ }
@@ -0,0 +1,17 @@
1
+ #include <sys/types.h>
2
+ #include <sys/stat.h>
3
+ #include <unistd.h>
4
+ #include <fcntl.h>
5
+ #include "open.h"
6
+
7
+ int open_write(const char *fn)
8
+ {
9
+ #ifdef O_CLOEXEC
10
+ return open(fn,O_CREAT | O_WRONLY | O_NONBLOCK | O_CLOEXEC,0644);
11
+ #else
12
+ int fd = open(fn,O_CREAT | O_WRONLY | O_NONBLOCK,0644);
13
+ if (fd == -1) return -1;
14
+ fcntl(fd,F_SETFD,1);
15
+ return fd;
16
+ #endif
17
+ }
@@ -0,0 +1,14 @@
1
+ #include "portparse.h"
2
+
3
+ int portparse(unsigned char *y,const char *x)
4
+ {
5
+ long long d = 0;
6
+ long long j;
7
+ for (j = 0;j < 5 && x[j] >= '0' && x[j] <= '9';++j)
8
+ d = d * 10 + (x[j] - '0');
9
+ if (j == 0) return 0;
10
+ if (x[j]) return 0;
11
+ y[0] = d >> 8;
12
+ y[1] = d;
13
+ return 1;
14
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef PORTPARSE_H
2
+ #define PORTPARSE_H
3
+
4
+ extern int portparse(unsigned char *,const char *);
5
+
6
+ #endif
@@ -0,0 +1,14 @@
1
+ #include "randombytes.h"
2
+
3
+ /* XXX: current implementation is limited to n<2^55 */
4
+
5
+ long long randommod(long long n)
6
+ {
7
+ long long result = 0;
8
+ long long j;
9
+ unsigned char r[32];
10
+ if (n <= 1) return 0;
11
+ randombytes(r,32);
12
+ for (j = 0;j < 32;++j) result = (result * 256 + (unsigned long long) r[j]) % n;
13
+ return result;
14
+ }
@@ -0,0 +1,6 @@
1
+ #ifndef RANDOMMOD_H
2
+ #define RANDOMMOD_H
3
+
4
+ extern long long randommod(long long);
5
+
6
+ #endif