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,27 @@
1
+ /*
2
+ cpucycles x86tscfreq.h version 20060318
3
+ D. J. Bernstein
4
+ Public domain.
5
+ */
6
+
7
+ #ifndef CPUCYCLES_x86tscfreq_h
8
+ #define CPUCYCLES_x86tscfreq_h
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ extern long long cpucycles_x86tscfreq(void);
15
+ extern long long cpucycles_x86tscfreq_persecond(void);
16
+
17
+ #ifdef __cplusplus
18
+ }
19
+ #endif
20
+
21
+ #ifndef cpucycles_implementation
22
+ #define cpucycles_implementation "x86tscfreq"
23
+ #define cpucycles cpucycles_x86tscfreq
24
+ #define cpucycles_persecond cpucycles_x86tscfreq_persecond
25
+ #endif
26
+
27
+ #endif
@@ -0,0 +1,16 @@
1
+ #include <stdio.h>
2
+
3
+ int main()
4
+ {
5
+ char ch;
6
+ int loop = 0;
7
+ while (scanf("%c",&ch) == 1) {
8
+ printf("0x%02x,",255 & (int) ch);
9
+ if (++loop == 16) {
10
+ loop = 0;
11
+ printf("\n");
12
+ }
13
+ }
14
+ printf("0x00\n");
15
+ return 0;
16
+ }
@@ -0,0 +1,41 @@
1
+ #include <stdio.h>
2
+ #include <stdlib.h>
3
+ #include <signal.h>
4
+ #include <unistd.h>
5
+
6
+ void nope()
7
+ {
8
+ exit(1);
9
+ }
10
+
11
+ int main()
12
+ {
13
+ unsigned long x[4];
14
+ unsigned long y[4];
15
+ int i;
16
+ int j;
17
+ char c;
18
+
19
+ signal(SIGILL,nope);
20
+
21
+ x[0] = 0;
22
+ x[1] = 0;
23
+ x[2] = 0;
24
+ x[3] = 0;
25
+
26
+ asm volatile(".byte 15;.byte 162" : "=a"(x[0]),"=b"(x[1]),"=c"(x[3]),"=d"(x[2]) : "0"(0) );
27
+ if (!x[0]) return 0;
28
+ asm volatile(".byte 15;.byte 162" : "=a"(y[0]),"=b"(y[1]),"=c"(y[2]),"=d"(y[3]) : "0"(1) );
29
+
30
+ for (i = 1;i < 4;++i)
31
+ for (j = 0;j < 4;++j) {
32
+ c = x[i] >> (8 * j);
33
+ if (c < 32) c = 32;
34
+ if (c > 126) c = 126;
35
+ putchar(c);
36
+ }
37
+
38
+ printf("-%08x-%08x\n",y[0],y[3]);
39
+
40
+ return 0;
41
+ }
@@ -0,0 +1,37 @@
1
+ #!/bin/sh -e
2
+
3
+ mkdir include
4
+
5
+ (
6
+ echo x86
7
+ echo unknown
8
+ ) | (
9
+ while read n
10
+ do
11
+ okabi | (
12
+ while read abi
13
+ do
14
+ okc-$abi | (
15
+ while read c
16
+ do
17
+ echo "=== `date` === Trying $n.c with $c..." >&2
18
+ rm -f cpuid.c
19
+ cp $n.c cpuid.c || continue
20
+ $c -o cpuid cpuid.c || continue
21
+ $c -o cbytes cbytes.c || continue
22
+ ./cpuid > cpuid.out || continue
23
+ echo 'static const char cpuid[] = {' > cpuid.h || continue
24
+ ./cbytes < cpuid.out >> cpuid.h || continue
25
+ echo '} ;' >> cpuid.h || continue
26
+ cp cpuid.h include/cpuid.h || continue
27
+ cat cpuid.out
28
+ exit 0
29
+ done
30
+ exit 111
31
+ ) && exit 0
32
+ done
33
+ exit 111
34
+ ) && exit 0
35
+ done
36
+ exit 111
37
+ )
@@ -0,0 +1,7 @@
1
+ #include <stdio.h>
2
+
3
+ main()
4
+ {
5
+ printf("unknown CPU ID\n");
6
+ return 0;
7
+ }
@@ -0,0 +1,41 @@
1
+ #include <stdio.h>
2
+ #include <stdlib.h>
3
+ #include <signal.h>
4
+ #include <unistd.h>
5
+
6
+ void nope()
7
+ {
8
+ exit(1);
9
+ }
10
+
11
+ int main()
12
+ {
13
+ unsigned long x[4];
14
+ unsigned long y[4];
15
+ int i;
16
+ int j;
17
+ char c;
18
+
19
+ signal(SIGILL,nope);
20
+
21
+ x[0] = 0;
22
+ x[1] = 0;
23
+ x[2] = 0;
24
+ x[3] = 0;
25
+
26
+ asm volatile(".byte 15;.byte 162" : "=a"(x[0]),"=b"(x[1]),"=c"(x[3]),"=d"(x[2]) : "0"(0) );
27
+ if (!x[0]) return 0;
28
+ asm volatile(".byte 15;.byte 162" : "=a"(y[0]),"=b"(y[1]),"=c"(y[2]),"=d"(y[3]) : "0"(1) );
29
+
30
+ for (i = 1;i < 4;++i)
31
+ for (j = 0;j < 4;++j) {
32
+ c = x[i] >> (8 * j);
33
+ if (c < 32) c = 32;
34
+ if (c > 126) c = 126;
35
+ putchar(c);
36
+ }
37
+
38
+ printf("-%08x-%08x\n",(unsigned int) y[0],(unsigned int) y[3]);
39
+
40
+ return 0;
41
+ }
@@ -0,0 +1 @@
1
+ 3bd7abd4f4dce04396f2ac7cb1cff70607f692411c49a1563b037d31e1662632
@@ -0,0 +1,2 @@
1
+ #define CRYPTO_BYTES 32
2
+ #define CRYPTO_KEYBYTES 32
@@ -0,0 +1,83 @@
1
+ /*
2
+ * 20080913
3
+ * D. J. Bernstein
4
+ * Public domain.
5
+ * */
6
+
7
+ #include "crypto_hashblocks_sha256.h"
8
+ #include "crypto_auth.h"
9
+
10
+ #define blocks crypto_hashblocks_sha256
11
+
12
+ typedef unsigned int uint32;
13
+
14
+ static const char iv[32] = {
15
+ 0x6a,0x09,0xe6,0x67,
16
+ 0xbb,0x67,0xae,0x85,
17
+ 0x3c,0x6e,0xf3,0x72,
18
+ 0xa5,0x4f,0xf5,0x3a,
19
+ 0x51,0x0e,0x52,0x7f,
20
+ 0x9b,0x05,0x68,0x8c,
21
+ 0x1f,0x83,0xd9,0xab,
22
+ 0x5b,0xe0,0xcd,0x19,
23
+ } ;
24
+
25
+ int crypto_auth(unsigned char *out,const unsigned char *in,unsigned long long inlen,const unsigned char *k)
26
+ {
27
+ unsigned char h[32];
28
+ unsigned char padded[128];
29
+ int i;
30
+ unsigned long long bits = 512 + (inlen << 3);
31
+
32
+ for (i = 0;i < 32;++i) h[i] = iv[i];
33
+
34
+ for (i = 0;i < 32;++i) padded[i] = k[i] ^ 0x36;
35
+ for (i = 32;i < 64;++i) padded[i] = 0x36;
36
+
37
+ blocks(h,padded,64);
38
+ blocks(h,in,inlen);
39
+ in += inlen;
40
+ inlen &= 63;
41
+ in -= inlen;
42
+
43
+ for (i = 0;i < inlen;++i) padded[i] = in[i];
44
+ padded[inlen] = 0x80;
45
+
46
+ if (inlen < 56) {
47
+ for (i = inlen + 1;i < 56;++i) padded[i] = 0;
48
+ padded[56] = bits >> 56;
49
+ padded[57] = bits >> 48;
50
+ padded[58] = bits >> 40;
51
+ padded[59] = bits >> 32;
52
+ padded[60] = bits >> 24;
53
+ padded[61] = bits >> 16;
54
+ padded[62] = bits >> 8;
55
+ padded[63] = bits;
56
+ blocks(h,padded,64);
57
+ } else {
58
+ for (i = inlen + 1;i < 120;++i) padded[i] = 0;
59
+ padded[120] = bits >> 56;
60
+ padded[121] = bits >> 48;
61
+ padded[122] = bits >> 40;
62
+ padded[123] = bits >> 32;
63
+ padded[124] = bits >> 24;
64
+ padded[125] = bits >> 16;
65
+ padded[126] = bits >> 8;
66
+ padded[127] = bits;
67
+ blocks(h,padded,128);
68
+ }
69
+
70
+ for (i = 0;i < 32;++i) padded[i] = k[i] ^ 0x5c;
71
+ for (i = 32;i < 64;++i) padded[i] = 0x5c;
72
+ for (i = 0;i < 32;++i) padded[64 + i] = h[i];
73
+
74
+ for (i = 0;i < 32;++i) out[i] = iv[i];
75
+
76
+ for (i = 32;i < 64;++i) padded[64 + i] = 0;
77
+ padded[64 + 32] = 0x80;
78
+ padded[64 + 62] = 3;
79
+
80
+ blocks(out,padded,128);
81
+
82
+ return 0;
83
+ }
@@ -0,0 +1,9 @@
1
+ #include "crypto_verify_32.h"
2
+ #include "crypto_auth.h"
3
+
4
+ int crypto_auth_verify(const unsigned char *h,const unsigned char *in,unsigned long long inlen,const unsigned char *k)
5
+ {
6
+ unsigned char correct[32];
7
+ crypto_auth(correct,in,inlen,k);
8
+ return crypto_verify_32(h,correct);
9
+ }
File without changes
@@ -0,0 +1 @@
1
+ 2f5e8a6a0cac012d8d001351d7d583e69f91390df46305c3608e0c2893491886
@@ -0,0 +1,2 @@
1
+ #define CRYPTO_BYTES 32
2
+ #define CRYPTO_KEYBYTES 32
@@ -0,0 +1,86 @@
1
+ /*
2
+ * 20080913
3
+ * D. J. Bernstein
4
+ * Public domain.
5
+ * */
6
+
7
+ #include "crypto_hashblocks_sha512.h"
8
+ #include "crypto_auth.h"
9
+
10
+ #define blocks crypto_hashblocks_sha512
11
+
12
+ typedef unsigned long long uint64;
13
+
14
+ static const unsigned char iv[64] = {
15
+ 0x6a,0x09,0xe6,0x67,0xf3,0xbc,0xc9,0x08,
16
+ 0xbb,0x67,0xae,0x85,0x84,0xca,0xa7,0x3b,
17
+ 0x3c,0x6e,0xf3,0x72,0xfe,0x94,0xf8,0x2b,
18
+ 0xa5,0x4f,0xf5,0x3a,0x5f,0x1d,0x36,0xf1,
19
+ 0x51,0x0e,0x52,0x7f,0xad,0xe6,0x82,0xd1,
20
+ 0x9b,0x05,0x68,0x8c,0x2b,0x3e,0x6c,0x1f,
21
+ 0x1f,0x83,0xd9,0xab,0xfb,0x41,0xbd,0x6b,
22
+ 0x5b,0xe0,0xcd,0x19,0x13,0x7e,0x21,0x79
23
+ } ;
24
+
25
+ int crypto_auth(unsigned char *out,const unsigned char *in,unsigned long long inlen,const unsigned char *k)
26
+ {
27
+ unsigned char h[64];
28
+ unsigned char padded[256];
29
+ int i;
30
+ unsigned long long bytes = 128 + inlen;
31
+
32
+ for (i = 0;i < 64;++i) h[i] = iv[i];
33
+
34
+ for (i = 0;i < 32;++i) padded[i] = k[i] ^ 0x36;
35
+ for (i = 32;i < 128;++i) padded[i] = 0x36;
36
+
37
+ blocks(h,padded,128);
38
+ blocks(h,in,inlen);
39
+ in += inlen;
40
+ inlen &= 127;
41
+ in -= inlen;
42
+
43
+ for (i = 0;i < inlen;++i) padded[i] = in[i];
44
+ padded[inlen] = 0x80;
45
+
46
+ if (inlen < 112) {
47
+ for (i = inlen + 1;i < 119;++i) padded[i] = 0;
48
+ padded[119] = bytes >> 61;
49
+ padded[120] = bytes >> 53;
50
+ padded[121] = bytes >> 45;
51
+ padded[122] = bytes >> 37;
52
+ padded[123] = bytes >> 29;
53
+ padded[124] = bytes >> 21;
54
+ padded[125] = bytes >> 13;
55
+ padded[126] = bytes >> 5;
56
+ padded[127] = bytes << 3;
57
+ blocks(h,padded,128);
58
+ } else {
59
+ for (i = inlen + 1;i < 247;++i) padded[i] = 0;
60
+ padded[247] = bytes >> 61;
61
+ padded[248] = bytes >> 53;
62
+ padded[249] = bytes >> 45;
63
+ padded[250] = bytes >> 37;
64
+ padded[251] = bytes >> 29;
65
+ padded[252] = bytes >> 21;
66
+ padded[253] = bytes >> 13;
67
+ padded[254] = bytes >> 5;
68
+ padded[255] = bytes << 3;
69
+ blocks(h,padded,256);
70
+ }
71
+
72
+ for (i = 0;i < 32;++i) padded[i] = k[i] ^ 0x5c;
73
+ for (i = 32;i < 128;++i) padded[i] = 0x5c;
74
+
75
+ for (i = 0;i < 64;++i) padded[128 + i] = h[i];
76
+ for (i = 0;i < 64;++i) h[i] = iv[i];
77
+
78
+ for (i = 64;i < 128;++i) padded[128 + i] = 0;
79
+ padded[128 + 64] = 0x80;
80
+ padded[128 + 126] = 6;
81
+
82
+ blocks(h,padded,256);
83
+ for (i = 0;i < 32;++i) out[i] = h[i];
84
+
85
+ return 0;
86
+ }
@@ -0,0 +1,9 @@
1
+ #include "crypto_verify_32.h"
2
+ #include "crypto_auth.h"
3
+
4
+ int crypto_auth_verify(const unsigned char *h,const unsigned char *in,unsigned long long inlen,const unsigned char *k)
5
+ {
6
+ unsigned char correct[32];
7
+ crypto_auth(correct,in,inlen,k);
8
+ return crypto_verify_32(h,correct);
9
+ }
File without changes
@@ -0,0 +1,69 @@
1
+ #include "crypto_auth.h"
2
+ #include "randombytes.h"
3
+ #include "cpucycles.h"
4
+
5
+ extern void printentry(long long,const char *,long long *,long long);
6
+ extern unsigned char *alignedcalloc(unsigned long long);
7
+ extern const char *primitiveimplementation;
8
+ extern const char *implementationversion;
9
+ extern const char *sizenames[];
10
+ extern const long long sizes[];
11
+ extern void allocate(void);
12
+ extern void measure(void);
13
+
14
+ const char *primitiveimplementation = crypto_auth_IMPLEMENTATION;
15
+ const char *implementationversion = crypto_auth_VERSION;
16
+ const char *sizenames[] = { "outputbytes", "keybytes", 0 };
17
+ const long long sizes[] = { crypto_auth_BYTES, crypto_auth_KEYBYTES };
18
+
19
+ #define MAXTEST_BYTES 4096
20
+ #ifdef SUPERCOP
21
+ #define MGAP 8192
22
+ #else
23
+ #define MGAP 8
24
+ #endif
25
+
26
+ static unsigned char *k;
27
+ static unsigned char *m;
28
+ static unsigned char *h;
29
+
30
+ void preallocate(void)
31
+ {
32
+ }
33
+
34
+ void allocate(void)
35
+ {
36
+ k = alignedcalloc(crypto_auth_KEYBYTES);
37
+ m = alignedcalloc(MAXTEST_BYTES);
38
+ h = alignedcalloc(crypto_auth_BYTES);
39
+ }
40
+
41
+ #define TIMINGS 15
42
+ static long long cycles[TIMINGS + 1];
43
+
44
+ void measure(void)
45
+ {
46
+ int i;
47
+ int loop;
48
+ int mlen;
49
+
50
+ for (loop = 0;loop < LOOPS;++loop) {
51
+ for (mlen = 0;mlen <= MAXTEST_BYTES;mlen += 1 + mlen / MGAP) {
52
+ randombytes(k,crypto_auth_KEYBYTES);
53
+ randombytes(m,mlen);
54
+ randombytes(h,crypto_auth_BYTES);
55
+ for (i = 0;i <= TIMINGS;++i) {
56
+ cycles[i] = cpucycles();
57
+ crypto_auth(h,m,mlen,k);
58
+ }
59
+ for (i = 0;i < TIMINGS;++i) cycles[i] = cycles[i + 1] - cycles[i];
60
+ printentry(mlen,"cycles",cycles,TIMINGS);
61
+ for (i = 0;i <= TIMINGS;++i) {
62
+ cycles[i] = cpucycles();
63
+ crypto_auth_verify(h,m,mlen,k);
64
+ }
65
+ for (i = 0;i < TIMINGS;++i) cycles[i] = cycles[i + 1] - cycles[i];
66
+ printentry(mlen,"verify_cycles",cycles,TIMINGS);
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,119 @@
1
+ /*
2
+ * crypto_auth/try.c version 20090118
3
+ * D. J. Bernstein
4
+ * Public domain.
5
+ */
6
+
7
+ #include "crypto_hash_sha256.h"
8
+ #include "crypto_auth.h"
9
+
10
+ extern unsigned char *alignedcalloc(unsigned long long);
11
+
12
+ const char *primitiveimplementation = crypto_auth_IMPLEMENTATION;
13
+
14
+ #define MAXTEST_BYTES 10000
15
+ #define CHECKSUM_BYTES 4096
16
+ #define TUNE_BYTES 1536
17
+
18
+ static unsigned char *h;
19
+ static unsigned char *m;
20
+ static unsigned char *k;
21
+ static unsigned char *h2;
22
+ static unsigned char *m2;
23
+ static unsigned char *k2;
24
+
25
+ void preallocate(void)
26
+ {
27
+ }
28
+
29
+ void allocate(void)
30
+ {
31
+ h = alignedcalloc(crypto_auth_BYTES);
32
+ m = alignedcalloc(MAXTEST_BYTES);
33
+ k = alignedcalloc(crypto_auth_KEYBYTES);
34
+ h2 = alignedcalloc(crypto_auth_BYTES);
35
+ m2 = alignedcalloc(MAXTEST_BYTES + crypto_auth_BYTES);
36
+ k2 = alignedcalloc(crypto_auth_KEYBYTES + crypto_auth_BYTES);
37
+ }
38
+
39
+ void predoit(void)
40
+ {
41
+ }
42
+
43
+ void doit(void)
44
+ {
45
+ crypto_auth(h,m,TUNE_BYTES,k);
46
+ crypto_auth_verify(h,m,TUNE_BYTES,k);
47
+ }
48
+
49
+ char checksum[crypto_auth_BYTES * 2 + 1];
50
+
51
+ const char *checksum_compute(void)
52
+ {
53
+ long long i;
54
+ long long j;
55
+
56
+ for (i = 0;i < CHECKSUM_BYTES;++i) {
57
+ long long mlen = i;
58
+ long long klen = crypto_auth_KEYBYTES;
59
+ long long hlen = crypto_auth_BYTES;
60
+
61
+ for (j = -16;j < 0;++j) h[j] = random();
62
+ for (j = -16;j < 0;++j) k[j] = random();
63
+ for (j = -16;j < 0;++j) m[j] = random();
64
+ for (j = hlen;j < hlen + 16;++j) h[j] = random();
65
+ for (j = klen;j < klen + 16;++j) k[j] = random();
66
+ for (j = mlen;j < mlen + 16;++j) m[j] = random();
67
+ for (j = -16;j < hlen + 16;++j) h2[j] = h[j];
68
+ for (j = -16;j < klen + 16;++j) k2[j] = k[j];
69
+ for (j = -16;j < mlen + 16;++j) m2[j] = m[j];
70
+
71
+ if (crypto_auth(h,m,mlen,k) != 0) return "crypto_auth returns nonzero";
72
+
73
+ for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_auth overwrites k";
74
+ for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_auth overwrites m";
75
+ for (j = -16;j < 0;++j) if (h[j] != h2[j]) return "crypto_auth writes before output";
76
+ for (j = hlen;j < hlen + 16;++j) if (h[j] != h2[j]) return "crypto_auth writes after output";
77
+
78
+ for (j = -16;j < 0;++j) h[j] = random();
79
+ for (j = -16;j < 0;++j) k[j] = random();
80
+ for (j = -16;j < 0;++j) m[j] = random();
81
+ for (j = hlen;j < hlen + 16;++j) h[j] = random();
82
+ for (j = klen;j < klen + 16;++j) k[j] = random();
83
+ for (j = mlen;j < mlen + 16;++j) m[j] = random();
84
+ for (j = -16;j < hlen + 16;++j) h2[j] = h[j];
85
+ for (j = -16;j < klen + 16;++j) k2[j] = k[j];
86
+ for (j = -16;j < mlen + 16;++j) m2[j] = m[j];
87
+
88
+ if (crypto_auth(m2,m2,mlen,k) != 0) return "crypto_auth returns nonzero";
89
+ for (j = 0;j < hlen;++j) if (m2[j] != h[j]) return "crypto_auth does not handle m overlap";
90
+ for (j = 0;j < hlen;++j) m2[j] = m[j];
91
+ if (crypto_auth(k2,m2,mlen,k2) != 0) return "crypto_auth returns nonzero";
92
+ for (j = 0;j < hlen;++j) if (k2[j] != h[j]) return "crypto_auth does not handle k overlap";
93
+ for (j = 0;j < hlen;++j) k2[j] = k[j];
94
+
95
+ if (crypto_auth_verify(h,m,mlen,k) != 0) return "crypto_auth_verify returns nonzero";
96
+
97
+ for (j = -16;j < hlen + 16;++j) if (h[j] != h2[j]) return "crypto_auth overwrites h";
98
+ for (j = -16;j < klen + 16;++j) if (k[j] != k2[j]) return "crypto_auth overwrites k";
99
+ for (j = -16;j < mlen + 16;++j) if (m[j] != m2[j]) return "crypto_auth overwrites m";
100
+
101
+ crypto_hash_sha256(h2,h,hlen);
102
+ for (j = 0;j < klen;++j) k[j] ^= h2[j % 32];
103
+ if (crypto_auth(h,m,mlen,k) != 0) return "crypto_auth returns nonzero";
104
+ if (crypto_auth_verify(h,m,mlen,k) != 0) return "crypto_auth_verify returns nonzero";
105
+
106
+ crypto_hash_sha256(h2,h,hlen);
107
+ for (j = 0;j < mlen;++j) m[j] ^= h2[j % 32];
108
+ m[mlen] = h2[0];
109
+ }
110
+ if (crypto_auth(h,m,CHECKSUM_BYTES,k) != 0) return "crypto_auth returns nonzero";
111
+ if (crypto_auth_verify(h,m,CHECKSUM_BYTES,k) != 0) return "crypto_auth_verify returns nonzero";
112
+
113
+ for (i = 0;i < crypto_auth_BYTES;++i) {
114
+ checksum[2 * i] = "0123456789abcdef"[15 & (h[i] >> 4)];
115
+ checksum[2 * i + 1] = "0123456789abcdef"[15 & h[i]];
116
+ }
117
+ checksum[2 * i] = 0;
118
+ return 0;
119
+ }
@@ -0,0 +1,11 @@
1
+ #include <string>
2
+ using std::string;
3
+ #include "crypto_auth.h"
4
+
5
+ string crypto_auth(const string &m,const string &k)
6
+ {
7
+ if (k.size() != crypto_auth_KEYBYTES) throw "incorrect key length";
8
+ unsigned char a[crypto_auth_BYTES];
9
+ crypto_auth(a,(const unsigned char *) m.c_str(),m.size(),(const unsigned char *) k.c_str());
10
+ return string((char *) a,crypto_auth_BYTES);
11
+ }
@@ -0,0 +1,14 @@
1
+ #include <string>
2
+ using std::string;
3
+ #include "crypto_auth.h"
4
+
5
+ void crypto_auth_verify(const string &a,const string &m,const string &k)
6
+ {
7
+ if (k.size() != crypto_auth_KEYBYTES) throw "incorrect key length";
8
+ if (a.size() != crypto_auth_BYTES) throw "incorrect authenticator length";
9
+ if (crypto_auth_verify(
10
+ (const unsigned char *) a.c_str(),
11
+ (const unsigned char *) m.c_str(),m.size(),
12
+ (const unsigned char *) k.c_str()) == 0) return;
13
+ throw "invalid authenticator";
14
+ }
@@ -0,0 +1 @@
1
+ 5fac7400caabc14a99c5c0bc13fb1df5e468e870382a3a1c
@@ -0,0 +1,22 @@
1
+ #include "crypto_secretbox_xsalsa20poly1305.h"
2
+ #include "crypto_box.h"
3
+
4
+ int crypto_box_afternm(
5
+ unsigned char *c,
6
+ const unsigned char *m,unsigned long long mlen,
7
+ const unsigned char *n,
8
+ const unsigned char *k
9
+ )
10
+ {
11
+ return crypto_secretbox_xsalsa20poly1305(c,m,mlen,n,k);
12
+ }
13
+
14
+ int crypto_box_open_afternm(
15
+ unsigned char *m,
16
+ const unsigned char *c,unsigned long long clen,
17
+ const unsigned char *n,
18
+ const unsigned char *k
19
+ )
20
+ {
21
+ return crypto_secretbox_xsalsa20poly1305_open(m,c,clen,n,k);
22
+ }
@@ -0,0 +1,6 @@
1
+ #define CRYPTO_PUBLICKEYBYTES 32
2
+ #define CRYPTO_SECRETKEYBYTES 32
3
+ #define CRYPTO_BEFORENMBYTES 32
4
+ #define CRYPTO_NONCEBYTES 24
5
+ #define CRYPTO_ZEROBYTES 32
6
+ #define CRYPTO_BOXZEROBYTES 16
@@ -0,0 +1,17 @@
1
+ #include "crypto_core_hsalsa20.h"
2
+ #include "crypto_scalarmult_curve25519.h"
3
+ #include "crypto_box.h"
4
+
5
+ static const unsigned char sigma[16] = "expand 32-byte k";
6
+ static const unsigned char n[16] = {0};
7
+
8
+ int crypto_box_beforenm(
9
+ unsigned char *k,
10
+ const unsigned char *pk,
11
+ const unsigned char *sk
12
+ )
13
+ {
14
+ unsigned char s[32];
15
+ crypto_scalarmult_curve25519(s,sk,pk);
16
+ return crypto_core_hsalsa20(k,n,s,sigma);
17
+ }
@@ -0,0 +1,27 @@
1
+ #include "crypto_box.h"
2
+
3
+ int crypto_box(
4
+ unsigned char *c,
5
+ const unsigned char *m,unsigned long long mlen,
6
+ const unsigned char *n,
7
+ const unsigned char *pk,
8
+ const unsigned char *sk
9
+ )
10
+ {
11
+ unsigned char k[crypto_box_BEFORENMBYTES];
12
+ crypto_box_beforenm(k,pk,sk);
13
+ return crypto_box_afternm(c,m,mlen,n,k);
14
+ }
15
+
16
+ int crypto_box_open(
17
+ unsigned char *m,
18
+ const unsigned char *c,unsigned long long clen,
19
+ const unsigned char *n,
20
+ const unsigned char *pk,
21
+ const unsigned char *sk
22
+ )
23
+ {
24
+ unsigned char k[crypto_box_BEFORENMBYTES];
25
+ crypto_box_beforenm(k,pk,sk);
26
+ return crypto_box_open_afternm(m,c,clen,n,k);
27
+ }