laag-libczmq 4.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +373 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libczmq/extconf.rb +24 -0
  6. data/laag-libczmq.gemspec +21 -0
  7. data/lib/laag/libczmq.rb +30 -0
  8. data/vendor/github.com/zeromq/czmq/.editorconfig +19 -0
  9. data/vendor/github.com/zeromq/czmq/.gitattributes +5 -0
  10. data/vendor/github.com/zeromq/czmq/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  11. data/vendor/github.com/zeromq/czmq/.gitignore +137 -0
  12. data/vendor/github.com/zeromq/czmq/.travis.yml +126 -0
  13. data/vendor/github.com/zeromq/czmq/AUTHORS +69 -0
  14. data/vendor/github.com/zeromq/czmq/CMakeLists.txt +653 -0
  15. data/vendor/github.com/zeromq/czmq/CONTRIBUTING.md +19 -0
  16. data/vendor/github.com/zeromq/czmq/Dockerfile +29 -0
  17. data/vendor/github.com/zeromq/czmq/Findlibsodium.cmake +47 -0
  18. data/vendor/github.com/zeromq/czmq/Findlibzmq.cmake +49 -0
  19. data/vendor/github.com/zeromq/czmq/Findlz4.cmake +49 -0
  20. data/vendor/github.com/zeromq/czmq/Findsystemd.cmake +49 -0
  21. data/vendor/github.com/zeromq/czmq/Finduuid.cmake +49 -0
  22. data/vendor/github.com/zeromq/czmq/INSTALL.cygwin +13 -0
  23. data/vendor/github.com/zeromq/czmq/ISSUES.cygwin +6 -0
  24. data/vendor/github.com/zeromq/czmq/Jenkinsfile +439 -0
  25. data/vendor/github.com/zeromq/czmq/LICENSE +373 -0
  26. data/vendor/github.com/zeromq/czmq/Makefile.am +70 -0
  27. data/vendor/github.com/zeromq/czmq/NEWS +823 -0
  28. data/vendor/github.com/zeromq/czmq/README.cygwin +23 -0
  29. data/vendor/github.com/zeromq/czmq/README.md +9345 -0
  30. data/vendor/github.com/zeromq/czmq/README.txt +512 -0
  31. data/vendor/github.com/zeromq/czmq/Vagrantfile +49 -0
  32. data/vendor/github.com/zeromq/czmq/acinclude.m4 +7 -0
  33. data/vendor/github.com/zeromq/czmq/api/zactor.api +77 -0
  34. data/vendor/github.com/zeromq/czmq/api/zargs.api +110 -0
  35. data/vendor/github.com/zeromq/czmq/api/zarmour.api +103 -0
  36. data/vendor/github.com/zeromq/czmq/api/zcert.api +128 -0
  37. data/vendor/github.com/zeromq/czmq/api/zcertstore.api +80 -0
  38. data/vendor/github.com/zeromq/czmq/api/zchunk.api +171 -0
  39. data/vendor/github.com/zeromq/czmq/api/zclock.api +43 -0
  40. data/vendor/github.com/zeromq/czmq/api/zconfig.api +205 -0
  41. data/vendor/github.com/zeromq/czmq/api/zdigest.api +45 -0
  42. data/vendor/github.com/zeromq/czmq/api/zdir.api +124 -0
  43. data/vendor/github.com/zeromq/czmq/api/zdir_patch.api +62 -0
  44. data/vendor/github.com/zeromq/czmq/api/zfile.api +157 -0
  45. data/vendor/github.com/zeromq/czmq/api/zframe.api +157 -0
  46. data/vendor/github.com/zeromq/czmq/api/zgossip_msg.api +104 -0
  47. data/vendor/github.com/zeromq/czmq/api/zhash.api +184 -0
  48. data/vendor/github.com/zeromq/czmq/api/zhashx.api +295 -0
  49. data/vendor/github.com/zeromq/czmq/api/ziflist.api +73 -0
  50. data/vendor/github.com/zeromq/czmq/api/zlist.api +158 -0
  51. data/vendor/github.com/zeromq/czmq/api/zlistx.api +220 -0
  52. data/vendor/github.com/zeromq/czmq/api/zloop.api +176 -0
  53. data/vendor/github.com/zeromq/czmq/api/zmsg.api +250 -0
  54. data/vendor/github.com/zeromq/czmq/api/zpoller.api +71 -0
  55. data/vendor/github.com/zeromq/czmq/api/zproc.api +247 -0
  56. data/vendor/github.com/zeromq/czmq/api/zsock.api +412 -0
  57. data/vendor/github.com/zeromq/czmq/api/zsock_option.api +847 -0
  58. data/vendor/github.com/zeromq/czmq/api/zstr.api +119 -0
  59. data/vendor/github.com/zeromq/czmq/api/zsys.api +490 -0
  60. data/vendor/github.com/zeromq/czmq/api/ztimerset.api +69 -0
  61. data/vendor/github.com/zeromq/czmq/api/ztrie.api +80 -0
  62. data/vendor/github.com/zeromq/czmq/api/zuuid.api +82 -0
  63. data/vendor/github.com/zeromq/czmq/appveyor.yml +73 -0
  64. data/vendor/github.com/zeromq/czmq/autogen.sh +52 -0
  65. data/vendor/github.com/zeromq/czmq/bindings/jni/.gitignore +8 -0
  66. data/vendor/github.com/zeromq/czmq/bindings/jni/CMakeLists.txt +79 -0
  67. data/vendor/github.com/zeromq/czmq/bindings/jni/Findczmq.cmake +47 -0
  68. data/vendor/github.com/zeromq/czmq/bindings/jni/README.md +130 -0
  69. data/vendor/github.com/zeromq/czmq/bindings/jni/android/CMakeLists.txt +79 -0
  70. data/vendor/github.com/zeromq/czmq/bindings/jni/android/android_toolchain.cmake +52 -0
  71. data/vendor/github.com/zeromq/czmq/bindings/jni/android/build.sh +68 -0
  72. data/vendor/github.com/zeromq/czmq/bindings/jni/build.gradle +151 -0
  73. data/vendor/github.com/zeromq/czmq/bindings/jni/ci_build.sh +96 -0
  74. data/vendor/github.com/zeromq/czmq/bindings/jni/gradle/wrapper/gradle-wrapper.jar +0 -0
  75. data/vendor/github.com/zeromq/czmq/bindings/jni/gradle/wrapper/gradle-wrapper.properties +6 -0
  76. data/vendor/github.com/zeromq/czmq/bindings/jni/gradlew +164 -0
  77. data/vendor/github.com/zeromq/czmq/bindings/jni/gradlew.bat +90 -0
  78. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/.gitignore +8 -0
  79. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/configure.bat +93 -0
  80. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/platform.h +1 -0
  81. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Common.props +21 -0
  82. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DLL.props +16 -0
  83. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Debug.props +29 -0
  84. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugDEXE.props +21 -0
  85. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugDLL.props +20 -0
  86. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugLEXE.props +20 -0
  87. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugLIB.props +21 -0
  88. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugLTCG.props +20 -0
  89. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/DebugSEXE.props +21 -0
  90. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/EXE.props +17 -0
  91. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/LIB.props +16 -0
  92. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/LTCG.props +13 -0
  93. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Link.props +21 -0
  94. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Messages.props +15 -0
  95. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Output.props +30 -0
  96. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Release.props +41 -0
  97. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseDEXE.props +20 -0
  98. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseDLL.props +19 -0
  99. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseLEXE.props +20 -0
  100. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseLIB.props +19 -0
  101. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseLTCG.props +19 -0
  102. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/ReleaseSEXE.props +20 -0
  103. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/Win32.props +20 -0
  104. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/properties/x64.props +23 -0
  105. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/resource.h +14 -0
  106. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/resource.rc +94 -0
  107. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/build.bat +48 -0
  108. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/call_javah.bat +84 -0
  109. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/czmq.sln +25 -0
  110. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/libczmqjni/libczmqjni.props +69 -0
  111. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/libczmqjni/libczmqjni.vcxproj +165 -0
  112. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2010/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  113. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/build.bat +48 -0
  114. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/call_javah.bat +84 -0
  115. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/czmq.sln +25 -0
  116. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/libczmqjni/libczmqjni.props +69 -0
  117. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/libczmqjni/libczmqjni.vcxproj +165 -0
  118. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2012/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  119. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/build.bat +48 -0
  120. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/call_javah.bat +84 -0
  121. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/czmq.sln +25 -0
  122. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/libczmqjni/libczmqjni.props +69 -0
  123. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/libczmqjni/libczmqjni.vcxproj +165 -0
  124. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2013/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  125. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/build.bat +48 -0
  126. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/call_javah.bat +84 -0
  127. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/czmq.sln +25 -0
  128. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/libczmqjni/libczmqjni.props +69 -0
  129. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/libczmqjni/libczmqjni.vcxproj +165 -0
  130. data/vendor/github.com/zeromq/czmq/bindings/jni/msvc/vs2015/libczmqjni/libczmqjni.vcxproj.filters +210 -0
  131. data/vendor/github.com/zeromq/czmq/bindings/jni/settings.gradle +1 -0
  132. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zarmour.c +132 -0
  133. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zcert.c +188 -0
  134. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zcertstore.c +69 -0
  135. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zchunk.c +191 -0
  136. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zclock.c +54 -0
  137. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zconfig.c +252 -0
  138. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zdigest.c +66 -0
  139. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zdir.c +116 -0
  140. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_ZdirPatch.c +88 -0
  141. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zfile.c +186 -0
  142. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zframe.c +199 -0
  143. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zhash.c +174 -0
  144. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zhashx.c +175 -0
  145. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Ziflist.c +112 -0
  146. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zlist.c +135 -0
  147. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zlistx.c +189 -0
  148. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zloop.c +95 -0
  149. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zmsg.c +261 -0
  150. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zpoller.c +74 -0
  151. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zproc.c +278 -0
  152. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zsock.c +1310 -0
  153. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zstr.c +108 -0
  154. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zsys.c +445 -0
  155. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Ztimerset.c +68 -0
  156. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Ztrie.c +86 -0
  157. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/c/org_zeromq_czmq_Zuuid.c +125 -0
  158. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zarmour.java +148 -0
  159. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zcert.java +178 -0
  160. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zcertstore.java +94 -0
  161. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zchunk.java +204 -0
  162. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zclock.java +67 -0
  163. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zconfig.java +253 -0
  164. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zdigest.java +78 -0
  165. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zdir.java +159 -0
  166. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/ZdirPatch.java +96 -0
  167. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zfile.java +217 -0
  168. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zframe.java +212 -0
  169. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zhash.java +223 -0
  170. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zhashx.java +248 -0
  171. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Ziflist.java +124 -0
  172. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zlist.java +171 -0
  173. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zlistx.java +247 -0
  174. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zloop.java +134 -0
  175. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zmsg.java +308 -0
  176. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zpoller.java +105 -0
  177. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zproc.java +331 -0
  178. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zsock.java +1556 -0
  179. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zstr.java +117 -0
  180. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zsys.java +534 -0
  181. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Ztimerset.java +87 -0
  182. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Ztrie.java +102 -0
  183. data/vendor/github.com/zeromq/czmq/bindings/jni/src/main/java/org/zeromq/czmq/Zuuid.java +127 -0
  184. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZarmourTest.java +25 -0
  185. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZcertTest.java +25 -0
  186. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZcertstoreTest.java +25 -0
  187. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZchunkTest.java +25 -0
  188. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZclockTest.java +25 -0
  189. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZconfigTest.java +25 -0
  190. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZdigestTest.java +25 -0
  191. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZdirPatchTest.java +25 -0
  192. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZdirTest.java +25 -0
  193. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZfileTest.java +25 -0
  194. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZframeTest.java +25 -0
  195. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZhashTest.java +25 -0
  196. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZhashxTest.java +25 -0
  197. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZiflistTest.java +25 -0
  198. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZlistTest.java +25 -0
  199. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZlistxTest.java +25 -0
  200. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZloopTest.java +25 -0
  201. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZmsgTest.java +25 -0
  202. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZpollerTest.java +25 -0
  203. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZprocTest.java +25 -0
  204. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZsockTest.java +25 -0
  205. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZstrTest.java +25 -0
  206. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZsysTest.java +25 -0
  207. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZtimersetTest.java +25 -0
  208. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZtrieTest.java +25 -0
  209. data/vendor/github.com/zeromq/czmq/bindings/jni/src/test/java/org/zeromq/czmq/ZuuidTest.java +25 -0
  210. data/vendor/github.com/zeromq/czmq/bindings/lua_ffi/czmq_ffi.lua +4079 -0
  211. data/vendor/github.com/zeromq/czmq/bindings/nodejs/.gitignore +10 -0
  212. data/vendor/github.com/zeromq/czmq/bindings/nodejs/.prebuildrc +2 -0
  213. data/vendor/github.com/zeromq/czmq/bindings/nodejs/README.md +4373 -0
  214. data/vendor/github.com/zeromq/czmq/bindings/nodejs/binding.cc +8324 -0
  215. data/vendor/github.com/zeromq/czmq/bindings/nodejs/binding.gyp +49 -0
  216. data/vendor/github.com/zeromq/czmq/bindings/nodejs/binding.h +952 -0
  217. data/vendor/github.com/zeromq/czmq/bindings/nodejs/build.sh +79 -0
  218. data/vendor/github.com/zeromq/czmq/bindings/nodejs/index.js +39 -0
  219. data/vendor/github.com/zeromq/czmq/bindings/nodejs/package.json +26 -0
  220. data/vendor/github.com/zeromq/czmq/bindings/nodejs/test_binding.js +32 -0
  221. data/vendor/github.com/zeromq/czmq/bindings/python/ci_build.sh +59 -0
  222. data/vendor/github.com/zeromq/czmq/bindings/python/czmq/__init__.py +3 -0
  223. data/vendor/github.com/zeromq/czmq/bindings/python/czmq/_czmq_ctypes.py +8344 -0
  224. data/vendor/github.com/zeromq/czmq/bindings/python/test.py +1078 -0
  225. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/README.md +28 -0
  226. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zactor.py +78 -0
  227. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zargs.py +133 -0
  228. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zarmour.py +124 -0
  229. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zcert.py +132 -0
  230. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zcertstore.py +84 -0
  231. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zchunk.py +192 -0
  232. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zclock.py +59 -0
  233. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zconfig.py +211 -0
  234. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zdigest.py +64 -0
  235. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zdir.py +144 -0
  236. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/ZdirPatch.py +79 -0
  237. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zfile.py +185 -0
  238. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zframe.py +160 -0
  239. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zhash.py +197 -0
  240. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zhashx.py +271 -0
  241. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Ziflist.py +103 -0
  242. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zlist.py +176 -0
  243. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zlistx.py +235 -0
  244. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zloop.py +171 -0
  245. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zmsg.py +250 -0
  246. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zpoller.py +89 -0
  247. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zproc.py +287 -0
  248. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zsock.py +1283 -0
  249. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zstr.py +123 -0
  250. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zsys.py +532 -0
  251. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Ztimerset.py +78 -0
  252. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Ztrie.py +93 -0
  253. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/Zuuid.py +100 -0
  254. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/__init__.py +33 -0
  255. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/_cdefs.inc +4081 -0
  256. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/build.py +345 -0
  257. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/cdefs.py +4086 -0
  258. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/dlopen.py +33 -0
  259. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/czmq_cffi/utils.py +50 -0
  260. data/vendor/github.com/zeromq/czmq/bindings/python_cffi/setup.py +23 -0
  261. data/vendor/github.com/zeromq/czmq/bindings/qml/.gitignore +1 -0
  262. data/vendor/github.com/zeromq/czmq/bindings/qml/README.md +157 -0
  263. data/vendor/github.com/zeromq/czmq/bindings/qml/Rakefile +34 -0
  264. data/vendor/github.com/zeromq/czmq/bindings/qml/qml_czmq_bindings.pro +136 -0
  265. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZactor.cpp +88 -0
  266. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZactor.h +86 -0
  267. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZargs.cpp +121 -0
  268. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZargs.h +105 -0
  269. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZarmour.cpp +135 -0
  270. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZarmour.h +108 -0
  271. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcert.cpp +166 -0
  272. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcert.h +122 -0
  273. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcertstore.cpp +95 -0
  274. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZcertstore.h +93 -0
  275. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZchunk.cpp +214 -0
  276. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZchunk.h +149 -0
  277. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZclock.cpp +67 -0
  278. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZclock.h +77 -0
  279. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZconfig.cpp +255 -0
  280. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZconfig.h +165 -0
  281. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdigest.cpp +70 -0
  282. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdigest.h +78 -0
  283. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdir.cpp +158 -0
  284. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdir.h +134 -0
  285. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdirPatch.cpp +89 -0
  286. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZdirPatch.h +84 -0
  287. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZfile.cpp +204 -0
  288. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZfile.h +152 -0
  289. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZframe.cpp +200 -0
  290. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZframe.h +143 -0
  291. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhash.cpp +219 -0
  292. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhash.h +174 -0
  293. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhashx.cpp +308 -0
  294. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZhashx.h +225 -0
  295. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZiflist.cpp +111 -0
  296. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZiflist.h +96 -0
  297. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlist.cpp +184 -0
  298. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlist.h +148 -0
  299. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlistx.cpp +244 -0
  300. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZlistx.h +184 -0
  301. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZloop.cpp +177 -0
  302. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZloop.h +149 -0
  303. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZmsg.cpp +313 -0
  304. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZmsg.h +209 -0
  305. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZpoller.cpp +95 -0
  306. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZpoller.h +97 -0
  307. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZproc.cpp +296 -0
  308. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZproc.h +211 -0
  309. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsock.cpp +1471 -0
  310. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsock.h +882 -0
  311. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZstr.cpp +137 -0
  312. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZstr.h +120 -0
  313. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsys.cpp +541 -0
  314. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZsys.h +373 -0
  315. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtimerset.cpp +84 -0
  316. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtimerset.h +86 -0
  317. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtrie.cpp +101 -0
  318. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZtrie.h +95 -0
  319. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZuuid.cpp +116 -0
  320. data/vendor/github.com/zeromq/czmq/bindings/qml/src/QmlZuuid.h +99 -0
  321. data/vendor/github.com/zeromq/czmq/bindings/qml/src/qml_czmq_plugin.h +174 -0
  322. data/vendor/github.com/zeromq/czmq/bindings/qml/src/qmldir +2 -0
  323. data/vendor/github.com/zeromq/czmq/bindings/qml/test/tst_QmlCZMQ.qml +16 -0
  324. data/vendor/github.com/zeromq/czmq/bindings/qt/README.md +87 -0
  325. data/vendor/github.com/zeromq/czmq/bindings/qt/buildlib/buildlib.pro +36 -0
  326. data/vendor/github.com/zeromq/czmq/bindings/qt/common.pri +20 -0
  327. data/vendor/github.com/zeromq/czmq/bindings/qt/config.pri +1 -0
  328. data/vendor/github.com/zeromq/czmq/bindings/qt/qczmq.pro +13 -0
  329. data/vendor/github.com/zeromq/czmq/bindings/qt/selftest/main.cpp +57 -0
  330. data/vendor/github.com/zeromq/czmq/bindings/qt/selftest/selftest.pro +19 -0
  331. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qczmq.h +96 -0
  332. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qczmq.pri +81 -0
  333. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzactor.cpp +98 -0
  334. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzactor.h +61 -0
  335. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzargs.cpp +130 -0
  336. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzargs.h +72 -0
  337. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzarmour.cpp +162 -0
  338. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzarmour.h +83 -0
  339. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcert.cpp +191 -0
  340. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcert.h +97 -0
  341. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcertstore.cpp +105 -0
  342. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzcertstore.h +68 -0
  343. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzchunk.cpp +250 -0
  344. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzchunk.h +124 -0
  345. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzclock.cpp +78 -0
  346. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzclock.h +52 -0
  347. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzconfig.cpp +292 -0
  348. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzconfig.h +140 -0
  349. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdigest.cpp +80 -0
  350. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdigest.h +53 -0
  351. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdir.cpp +176 -0
  352. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdir.h +109 -0
  353. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdirpatch.cpp +101 -0
  354. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzdirpatch.h +59 -0
  355. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzfile.cpp +243 -0
  356. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzfile.h +127 -0
  357. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzframe.cpp +231 -0
  358. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzframe.h +118 -0
  359. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhash.cpp +250 -0
  360. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhash.h +149 -0
  361. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhashx.cpp +350 -0
  362. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzhashx.h +200 -0
  363. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qziflist.cpp +133 -0
  364. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qziflist.h +71 -0
  365. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlist.cpp +220 -0
  366. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlist.h +123 -0
  367. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlistx.cpp +296 -0
  368. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzlistx.h +159 -0
  369. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzloop.cpp +211 -0
  370. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzloop.h +124 -0
  371. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzmsg.cpp +354 -0
  372. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzmsg.h +184 -0
  373. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzpoller.cpp +100 -0
  374. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzpoller.h +67 -0
  375. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzproc.cpp +365 -0
  376. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzproc.h +186 -0
  377. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsock.cpp +1719 -0
  378. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsock.h +815 -0
  379. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzstr.cpp +128 -0
  380. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzstr.h +78 -0
  381. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsys.cpp +600 -0
  382. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzsys.h +321 -0
  383. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztimerset.cpp +98 -0
  384. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztimerset.h +61 -0
  385. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztrie.cpp +117 -0
  386. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qztrie.h +70 -0
  387. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzuuid.cpp +135 -0
  388. data/vendor/github.com/zeromq/czmq/bindings/qt/src/qzuuid.h +74 -0
  389. data/vendor/github.com/zeromq/czmq/bindings/ruby/Rakefile +8 -0
  390. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi.rb +875 -0
  391. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/version.rb +15 -0
  392. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zactor.rb +219 -0
  393. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zargs.rb +259 -0
  394. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zarmour.rb +286 -0
  395. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zcert.rb +304 -0
  396. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zcertstore.rb +224 -0
  397. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zchunk.rb +388 -0
  398. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zclock.rb +140 -0
  399. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zconfig.rb +462 -0
  400. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zdigest.rb +156 -0
  401. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zdir.rb +283 -0
  402. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zdir_patch.rb +194 -0
  403. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zfile.rb +361 -0
  404. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zframe.rb +360 -0
  405. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zhash.rb +386 -0
  406. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zhashx.rb +617 -0
  407. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/ziflist.rb +219 -0
  408. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zlist.rb +365 -0
  409. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zlistx.rb +478 -0
  410. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zloop.rb +396 -0
  411. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zmsg.rb +515 -0
  412. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zpoller.rb +194 -0
  413. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zproc.rb +497 -0
  414. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zsock.rb +4673 -0
  415. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zstr.rb +242 -0
  416. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zsys.rb +836 -0
  417. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/ztimerset.rb +203 -0
  418. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/ztrie.rb +221 -0
  419. data/vendor/github.com/zeromq/czmq/bindings/ruby/lib/czmq/ffi/zuuid.rb +227 -0
  420. data/vendor/github.com/zeromq/czmq/bindings/ruby/spec/ffi_spec.rb +15 -0
  421. data/vendor/github.com/zeromq/czmq/bindings/ruby/spec/spec_helper.rb +8 -0
  422. data/vendor/github.com/zeromq/czmq/builds/android/android_build_helper.sh +298 -0
  423. data/vendor/github.com/zeromq/czmq/builds/android/build.sh +94 -0
  424. data/vendor/github.com/zeromq/czmq/builds/android/ci_build.sh +41 -0
  425. data/vendor/github.com/zeromq/czmq/builds/check_zproject/ci_build.sh +52 -0
  426. data/vendor/github.com/zeromq/czmq/builds/check_zproto/ci_build.sh +23 -0
  427. data/vendor/github.com/zeromq/czmq/builds/cmake/ci_build.sh +93 -0
  428. data/vendor/github.com/zeromq/czmq/builds/cygwin/Makefile.cygwin +32 -0
  429. data/vendor/github.com/zeromq/czmq/builds/docs/ci_build.sh +24 -0
  430. data/vendor/github.com/zeromq/czmq/builds/gyp/.gitignore +5 -0
  431. data/vendor/github.com/zeromq/czmq/builds/gyp/README.md +33 -0
  432. data/vendor/github.com/zeromq/czmq/builds/gyp/platform.h +46 -0
  433. data/vendor/github.com/zeromq/czmq/builds/gyp/project.gyp +195 -0
  434. data/vendor/github.com/zeromq/czmq/builds/mingw32/Makefile.mingw32 +33 -0
  435. data/vendor/github.com/zeromq/czmq/builds/mingw32/platform.h +0 -0
  436. data/vendor/github.com/zeromq/czmq/builds/msvc/.gitignore +8 -0
  437. data/vendor/github.com/zeromq/czmq/builds/msvc/configure.bat +93 -0
  438. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.bat +14 -0
  439. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.nuspec +92 -0
  440. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.targets +128 -0
  441. data/vendor/github.com/zeromq/czmq/builds/msvc/nuget/package.xml +29 -0
  442. data/vendor/github.com/zeromq/czmq/builds/msvc/platform.h +1 -0
  443. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Common.props +21 -0
  444. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DLL.props +16 -0
  445. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Debug.props +29 -0
  446. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugDEXE.props +21 -0
  447. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugDLL.props +20 -0
  448. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugLEXE.props +20 -0
  449. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugLIB.props +21 -0
  450. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugLTCG.props +20 -0
  451. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/DebugSEXE.props +21 -0
  452. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/EXE.props +17 -0
  453. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/LIB.props +16 -0
  454. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/LTCG.props +13 -0
  455. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Link.props +21 -0
  456. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Messages.props +15 -0
  457. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Output.props +30 -0
  458. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Release.props +41 -0
  459. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseDEXE.props +20 -0
  460. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseDLL.props +19 -0
  461. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseLEXE.props +20 -0
  462. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseLIB.props +19 -0
  463. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseLTCG.props +19 -0
  464. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/ReleaseSEXE.props +20 -0
  465. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/Win32.props +20 -0
  466. data/vendor/github.com/zeromq/czmq/builds/msvc/properties/x64.props +23 -0
  467. data/vendor/github.com/zeromq/czmq/builds/msvc/resource.h +14 -0
  468. data/vendor/github.com/zeromq/czmq/builds/msvc/resource.rc +94 -0
  469. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2008/czmq/czmq.sln +65 -0
  470. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2008/czmq/czmq.vcproj +1411 -0
  471. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/.gitignore +1 -0
  472. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/build.bat +129 -0
  473. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq.import.props +59 -0
  474. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq.sln +81 -0
  475. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq_selftest/czmq_selftest.props +75 -0
  476. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/czmq_selftest/czmq_selftest.vcxproj +146 -0
  477. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.import.xml +29 -0
  478. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.props +81 -0
  479. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.vcxproj +215 -0
  480. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/libczmq/libczmq.vcxproj.filters +203 -0
  481. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/test_randof/test_randof.props +75 -0
  482. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/test_randof/test_randof.vcxproj +146 -0
  483. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zmakecert/zmakecert.props +75 -0
  484. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zmakecert/zmakecert.vcxproj +146 -0
  485. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zsp/zsp.props +75 -0
  486. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2010/zsp/zsp.vcxproj +146 -0
  487. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/.gitignore +1 -0
  488. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/build.bat +129 -0
  489. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq.import.props +59 -0
  490. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq.sln +81 -0
  491. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq_selftest/czmq_selftest.props +75 -0
  492. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/czmq_selftest/czmq_selftest.vcxproj +146 -0
  493. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.import.xml +29 -0
  494. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.props +81 -0
  495. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.vcxproj +215 -0
  496. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/libczmq/libczmq.vcxproj.filters +203 -0
  497. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/test_randof/test_randof.props +75 -0
  498. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/test_randof/test_randof.vcxproj +146 -0
  499. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zmakecert/zmakecert.props +75 -0
  500. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zmakecert/zmakecert.vcxproj +146 -0
  501. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zsp/zsp.props +75 -0
  502. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2012/zsp/zsp.vcxproj +146 -0
  503. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/build.bat +129 -0
  504. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq.import.props +59 -0
  505. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq.sln +81 -0
  506. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq_selftest/czmq_selftest.props +75 -0
  507. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/czmq_selftest/czmq_selftest.vcxproj +146 -0
  508. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.import.xml +29 -0
  509. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.props +81 -0
  510. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.vcxproj +215 -0
  511. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/libczmq/libczmq.vcxproj.filters +203 -0
  512. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/test_randof/test_randof.props +75 -0
  513. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/test_randof/test_randof.vcxproj +146 -0
  514. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zmakecert/zmakecert.props +75 -0
  515. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zmakecert/zmakecert.vcxproj +146 -0
  516. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zsp/zsp.props +75 -0
  517. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2013/zsp/zsp.vcxproj +146 -0
  518. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/build.bat +129 -0
  519. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq.import.props +59 -0
  520. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq.sln +81 -0
  521. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq_selftest/czmq_selftest.props +75 -0
  522. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/czmq_selftest/czmq_selftest.vcxproj +146 -0
  523. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.import.xml +29 -0
  524. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.props +81 -0
  525. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.vcxproj +215 -0
  526. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/libczmq/libczmq.vcxproj.filters +203 -0
  527. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/test_randof/test_randof.props +75 -0
  528. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/test_randof/test_randof.vcxproj +146 -0
  529. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zmakecert/zmakecert.props +75 -0
  530. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zmakecert/zmakecert.vcxproj +146 -0
  531. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zsp/zsp.props +75 -0
  532. data/vendor/github.com/zeromq/czmq/builds/msvc/vs2015/zsp/zsp.vcxproj +146 -0
  533. data/vendor/github.com/zeromq/czmq/builds/nuget/czmq.autobuild +49 -0
  534. data/vendor/github.com/zeromq/czmq/builds/nuget/readme.nuget +18 -0
  535. data/vendor/github.com/zeromq/czmq/builds/rpi/.gitignore +8 -0
  536. data/vendor/github.com/zeromq/czmq/builds/rpi/README.md +62 -0
  537. data/vendor/github.com/zeromq/czmq/builds/rpi/build.sh +142 -0
  538. data/vendor/github.com/zeromq/czmq/builds/rpi/build_image.sh +32 -0
  539. data/vendor/github.com/zeromq/czmq/builds/rpi/prepare_img.sh +111 -0
  540. data/vendor/github.com/zeromq/czmq/builds/stable_zmq/ci_build.sh +62 -0
  541. data/vendor/github.com/zeromq/czmq/builds/valgrind/ci_build.sh +43 -0
  542. data/vendor/github.com/zeromq/czmq/ci_build.sh +317 -0
  543. data/vendor/github.com/zeromq/czmq/ci_deploy.sh +29 -0
  544. data/vendor/github.com/zeromq/czmq/ci_deploy_obs.sh +23 -0
  545. data/vendor/github.com/zeromq/czmq/configure.ac +856 -0
  546. data/vendor/github.com/zeromq/czmq/doc/.gitignore +91 -0
  547. data/vendor/github.com/zeromq/czmq/doc/Makefile.am +222 -0
  548. data/vendor/github.com/zeromq/czmq/doc/asciidoc.conf +64 -0
  549. data/vendor/github.com/zeromq/czmq/doc/czmq.adoc +51 -0
  550. data/vendor/github.com/zeromq/czmq/doc/czmq.txt +380 -0
  551. data/vendor/github.com/zeromq/czmq/doc/mkman +217 -0
  552. data/vendor/github.com/zeromq/czmq/doc/mkmans +15 -0
  553. data/vendor/github.com/zeromq/czmq/doc/wdput +43 -0
  554. data/vendor/github.com/zeromq/czmq/examples/security/LICENSE +18 -0
  555. data/vendor/github.com/zeromq/czmq/examples/security/README.txt +9 -0
  556. data/vendor/github.com/zeromq/czmq/examples/security/grasslands.c +32 -0
  557. data/vendor/github.com/zeromq/czmq/examples/security/hello.c +13 -0
  558. data/vendor/github.com/zeromq/czmq/examples/security/ironhouse.c +64 -0
  559. data/vendor/github.com/zeromq/czmq/examples/security/ironhouse2.c +123 -0
  560. data/vendor/github.com/zeromq/czmq/examples/security/ironhouse2_v2.c +107 -0
  561. data/vendor/github.com/zeromq/czmq/examples/security/passwords +2 -0
  562. data/vendor/github.com/zeromq/czmq/examples/security/stonehouse.c +59 -0
  563. data/vendor/github.com/zeromq/czmq/examples/security/strawhouse.c +49 -0
  564. data/vendor/github.com/zeromq/czmq/examples/security/woodhouse.c +47 -0
  565. data/vendor/github.com/zeromq/czmq/images/README_1.png +0 -0
  566. data/vendor/github.com/zeromq/czmq/include/.gitignore +1 -0
  567. data/vendor/github.com/zeromq/czmq/include/czmq.h +39 -0
  568. data/vendor/github.com/zeromq/czmq/include/czmq_library.h +190 -0
  569. data/vendor/github.com/zeromq/czmq/include/czmq_prelude.h +735 -0
  570. data/vendor/github.com/zeromq/czmq/include/test_zgossip.h +44 -0
  571. data/vendor/github.com/zeromq/czmq/include/zactor.h +94 -0
  572. data/vendor/github.com/zeromq/czmq/include/zargs.h +134 -0
  573. data/vendor/github.com/zeromq/czmq/include/zarmour.h +114 -0
  574. data/vendor/github.com/zeromq/czmq/include/zauth.h +100 -0
  575. data/vendor/github.com/zeromq/czmq/include/zbeacon.h +86 -0
  576. data/vendor/github.com/zeromq/czmq/include/zcert.h +133 -0
  577. data/vendor/github.com/zeromq/czmq/include/zcertstore.h +101 -0
  578. data/vendor/github.com/zeromq/czmq/include/zchunk.h +163 -0
  579. data/vendor/github.com/zeromq/czmq/include/zclock.h +73 -0
  580. data/vendor/github.com/zeromq/czmq/include/zconfig.h +199 -0
  581. data/vendor/github.com/zeromq/czmq/include/zdigest.h +65 -0
  582. data/vendor/github.com/zeromq/czmq/include/zdir.h +149 -0
  583. data/vendor/github.com/zeromq/czmq/include/zdir_patch.h +82 -0
  584. data/vendor/github.com/zeromq/czmq/include/zfile.h +185 -0
  585. data/vendor/github.com/zeromq/czmq/include/zframe.h +177 -0
  586. data/vendor/github.com/zeromq/czmq/include/zgossip.h +95 -0
  587. data/vendor/github.com/zeromq/czmq/include/zhash.h +183 -0
  588. data/vendor/github.com/zeromq/czmq/include/zhashx.h +279 -0
  589. data/vendor/github.com/zeromq/czmq/include/ziflist.h +98 -0
  590. data/vendor/github.com/zeromq/czmq/include/zlist.h +158 -0
  591. data/vendor/github.com/zeromq/czmq/include/zlistx.h +205 -0
  592. data/vendor/github.com/zeromq/czmq/include/zloop.h +163 -0
  593. data/vendor/github.com/zeromq/czmq/include/zmonitor.h +73 -0
  594. data/vendor/github.com/zeromq/czmq/include/zmsg.h +280 -0
  595. data/vendor/github.com/zeromq/czmq/include/zpoller.h +87 -0
  596. data/vendor/github.com/zeromq/czmq/include/zproc.h +270 -0
  597. data/vendor/github.com/zeromq/czmq/include/zproxy.h +111 -0
  598. data/vendor/github.com/zeromq/czmq/include/zrex.h +82 -0
  599. data/vendor/github.com/zeromq/czmq/include/zsock.h +1209 -0
  600. data/vendor/github.com/zeromq/czmq/include/zstr.h +135 -0
  601. data/vendor/github.com/zeromq/czmq/include/zsys.h +439 -0
  602. data/vendor/github.com/zeromq/czmq/include/ztimerset.h +90 -0
  603. data/vendor/github.com/zeromq/czmq/include/ztrie.h +106 -0
  604. data/vendor/github.com/zeromq/czmq/include/zuuid.h +96 -0
  605. data/vendor/github.com/zeromq/czmq/issues/README.md +6 -0
  606. data/vendor/github.com/zeromq/czmq/issues/c +520 -0
  607. data/vendor/github.com/zeromq/czmq/issues/issue-407.c +146 -0
  608. data/vendor/github.com/zeromq/czmq/license.xml +9 -0
  609. data/vendor/github.com/zeromq/czmq/mkdoc +7 -0
  610. data/vendor/github.com/zeromq/czmq/model/chkopts.pl +47 -0
  611. data/vendor/github.com/zeromq/czmq/model/rename_class +42 -0
  612. data/vendor/github.com/zeromq/czmq/packaging/debian/changelog +5 -0
  613. data/vendor/github.com/zeromq/czmq/packaging/debian/compat +1 -0
  614. data/vendor/github.com/zeromq/czmq/packaging/debian/control +86 -0
  615. data/vendor/github.com/zeromq/czmq/packaging/debian/copyright +13 -0
  616. data/vendor/github.com/zeromq/czmq/packaging/debian/czmq.dsc.obs +20 -0
  617. data/vendor/github.com/zeromq/czmq/packaging/debian/czmq.install +2 -0
  618. data/vendor/github.com/zeromq/czmq/packaging/debian/czmq.manpages +1 -0
  619. data/vendor/github.com/zeromq/czmq/packaging/debian/format +1 -0
  620. data/vendor/github.com/zeromq/czmq/packaging/debian/libczmq-dev.install +4 -0
  621. data/vendor/github.com/zeromq/czmq/packaging/debian/libczmq-dev.manpages +2 -0
  622. data/vendor/github.com/zeromq/czmq/packaging/debian/libczmq4.install +1 -0
  623. data/vendor/github.com/zeromq/czmq/packaging/debian/rules +96 -0
  624. data/vendor/github.com/zeromq/czmq/packaging/dist/gitlog2changelog.py +125 -0
  625. data/vendor/github.com/zeromq/czmq/packaging/obs/_service +91 -0
  626. data/vendor/github.com/zeromq/czmq/packaging/redhat/czmq.spec +202 -0
  627. data/vendor/github.com/zeromq/czmq/project.gyp +121 -0
  628. data/vendor/github.com/zeromq/czmq/project.xml +99 -0
  629. data/vendor/github.com/zeromq/czmq/setup.py +9 -0
  630. data/vendor/github.com/zeromq/czmq/src/.gitignore +20 -0
  631. data/vendor/github.com/zeromq/czmq/src/.valgrind.supp +33 -0
  632. data/vendor/github.com/zeromq/czmq/src/CMakeLists-local.txt +22 -0
  633. data/vendor/github.com/zeromq/czmq/src/Makemodule-local.am +15 -0
  634. data/vendor/github.com/zeromq/czmq/src/Makemodule.am +353 -0
  635. data/vendor/github.com/zeromq/czmq/src/czmq_classes.h +388 -0
  636. data/vendor/github.com/zeromq/czmq/src/czmq_private_selftest.c +40 -0
  637. data/vendor/github.com/zeromq/czmq/src/czmq_selftest.c +220 -0
  638. data/vendor/github.com/zeromq/czmq/src/foreign/sha1/sha1.h +76 -0
  639. data/vendor/github.com/zeromq/czmq/src/foreign/sha1/sha1.inc_c +335 -0
  640. data/vendor/github.com/zeromq/czmq/src/foreign/slre/readme.txt +83 -0
  641. data/vendor/github.com/zeromq/czmq/src/foreign/slre/slre.h +92 -0
  642. data/vendor/github.com/zeromq/czmq/src/foreign/slre/slre.inc_c +660 -0
  643. data/vendor/github.com/zeromq/czmq/src/libczmq.pc.in +24 -0
  644. data/vendor/github.com/zeromq/czmq/src/python_cffi.inc +17 -0
  645. data/vendor/github.com/zeromq/czmq/src/selftest-ro/.gitkeep +0 -0
  646. data/vendor/github.com/zeromq/czmq/src/selftest.cfg +5 -0
  647. data/vendor/github.com/zeromq/czmq/src/sockopts.gsl +36 -0
  648. data/vendor/github.com/zeromq/czmq/src/sockopts.xml +193 -0
  649. data/vendor/github.com/zeromq/czmq/src/test_randof.c +182 -0
  650. data/vendor/github.com/zeromq/czmq/src/test_zgossip.c +188 -0
  651. data/vendor/github.com/zeromq/czmq/src/valgrind.supp +14 -0
  652. data/vendor/github.com/zeromq/czmq/src/zactor.c +338 -0
  653. data/vendor/github.com/zeromq/czmq/src/zargs.c +289 -0
  654. data/vendor/github.com/zeromq/czmq/src/zarmour.c +941 -0
  655. data/vendor/github.com/zeromq/czmq/src/zauth.c +821 -0
  656. data/vendor/github.com/zeromq/czmq/src/zbeacon.c +651 -0
  657. data/vendor/github.com/zeromq/czmq/src/zcert.c +557 -0
  658. data/vendor/github.com/zeromq/czmq/src/zcertstore.c +407 -0
  659. data/vendor/github.com/zeromq/czmq/src/zchunk.c +609 -0
  660. data/vendor/github.com/zeromq/czmq/src/zclock.c +237 -0
  661. data/vendor/github.com/zeromq/czmq/src/zconfig.c +1369 -0
  662. data/vendor/github.com/zeromq/czmq/src/zdigest.c +163 -0
  663. data/vendor/github.com/zeromq/czmq/src/zdir.c +1138 -0
  664. data/vendor/github.com/zeromq/czmq/src/zdir_patch.c +227 -0
  665. data/vendor/github.com/zeromq/czmq/src/zfile.c +920 -0
  666. data/vendor/github.com/zeromq/czmq/src/zframe.c +756 -0
  667. data/vendor/github.com/zeromq/czmq/src/zgossip.c +689 -0
  668. data/vendor/github.com/zeromq/czmq/src/zgossip.xml +57 -0
  669. data/vendor/github.com/zeromq/czmq/src/zgossip_engine.inc +1008 -0
  670. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.bnf +43 -0
  671. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.c +688 -0
  672. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.h +127 -0
  673. data/vendor/github.com/zeromq/czmq/src/zgossip_msg.xml +46 -0
  674. data/vendor/github.com/zeromq/czmq/src/zhash.c +956 -0
  675. data/vendor/github.com/zeromq/czmq/src/zhash_primes.inc +329 -0
  676. data/vendor/github.com/zeromq/czmq/src/zhashx.c +1369 -0
  677. data/vendor/github.com/zeromq/czmq/src/ziflist.c +517 -0
  678. data/vendor/github.com/zeromq/czmq/src/zlist.c +634 -0
  679. data/vendor/github.com/zeromq/czmq/src/zlistx.c +753 -0
  680. data/vendor/github.com/zeromq/czmq/src/zloop.c +1000 -0
  681. data/vendor/github.com/zeromq/czmq/src/zmakecert.c +64 -0
  682. data/vendor/github.com/zeromq/czmq/src/zmonitor.c +447 -0
  683. data/vendor/github.com/zeromq/czmq/src/zmsg.c +1258 -0
  684. data/vendor/github.com/zeromq/czmq/src/zpoller.c +397 -0
  685. data/vendor/github.com/zeromq/czmq/src/zproc.c +1160 -0
  686. data/vendor/github.com/zeromq/czmq/src/zproxy.c +791 -0
  687. data/vendor/github.com/zeromq/czmq/src/zrex.c +310 -0
  688. data/vendor/github.com/zeromq/czmq/src/zsock.c +2207 -0
  689. data/vendor/github.com/zeromq/czmq/src/zsock_option.gsl +404 -0
  690. data/vendor/github.com/zeromq/czmq/src/zsock_option.inc +3946 -0
  691. data/vendor/github.com/zeromq/czmq/src/zsp.c +118 -0
  692. data/vendor/github.com/zeromq/czmq/src/zstr.c +548 -0
  693. data/vendor/github.com/zeromq/czmq/src/zsys.c +2225 -0
  694. data/vendor/github.com/zeromq/czmq/src/ztimerset.c +227 -0
  695. data/vendor/github.com/zeromq/czmq/src/ztrie.c +809 -0
  696. data/vendor/github.com/zeromq/czmq/src/zuuid.c +344 -0
  697. metadata +780 -0
@@ -0,0 +1,289 @@
1
+ /* =========================================================================
2
+ zargs - Platform independent command line argument parsing helpers
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ /*
15
+ @header
16
+ zargs - Platform independent command line argument parsing helpers
17
+
18
+ Platform independent command line argument parsing helpers
19
+
20
+ There are two kind of elements provided by this class
21
+ foo --named-parameter --parameter with_value positional arguments -a gain-parameter
22
+ zargs keeps poision only for arguments, parameters are to be accessed like hash.
23
+
24
+ It DOES:
25
+ * provide easy to use CLASS compatible API for accessing argv
26
+ * is platform independent
27
+ * provide getopt_long style -- argument, which delimits parameters from arguments
28
+ * makes parameters positon independent
29
+
30
+ It does NOT
31
+ * change argv
32
+ * provide a "declarative" way to define command line interface
33
+
34
+ In future it SHALL
35
+ * hide several formats of command line to one (-Idir, --include=dir,
36
+ --include dir are the same from API pov)
37
+ @discuss
38
+ @end
39
+ */
40
+
41
+ #include "czmq_classes.h"
42
+
43
+ // Structure of our class
44
+ static char *ZARG_PARAM_EMPTY = "";
45
+
46
+ struct _zargs_t {
47
+ char *progname; // program name aka argv [0]
48
+ zlist_t *arguments; // positional arguments
49
+ zhash_t *parameters; // --named parameters
50
+ };
51
+
52
+
53
+ // --------------------------------------------------------------------------
54
+ // Create a new zargs
55
+
56
+ zargs_t *
57
+ zargs_new (int argc, char **argv)
58
+ {
59
+ assert (argc > 0);
60
+ assert (argv);
61
+ zargs_t *self = (zargs_t *) zmalloc (sizeof (zargs_t));
62
+ assert (self);
63
+ // Initialize class properties here
64
+ self->progname = argv [0];
65
+ assert (self->progname);
66
+ self->arguments = zlist_new ();
67
+ assert (self->arguments);
68
+ self->parameters = zhash_new ();
69
+ assert (self->parameters);
70
+
71
+ if (argc == 1)
72
+ return self;
73
+
74
+ int idx = 1;
75
+ bool params_only = false;
76
+ while (argv [idx]) {
77
+ if (params_only || argv [idx][0] != '-')
78
+ zlist_append (self->arguments, argv [idx]);
79
+ else {
80
+ if (streq (argv [idx], "--")) {
81
+ params_only = true;
82
+ idx ++;
83
+ continue;
84
+ }
85
+ else
86
+ if (argv [idx+1] && argv [idx+1][0] != '-') {
87
+ zhash_insert (self->parameters, argv [idx], argv [idx+1]);
88
+ idx ++;
89
+ }
90
+ else {
91
+ zhash_insert (self->parameters, argv [idx], ZARG_PARAM_EMPTY);
92
+ }
93
+ }
94
+ idx ++;
95
+ }
96
+
97
+ return self;
98
+ }
99
+
100
+ // --------------------------------------------------------------------------
101
+ // Destroy the zargs
102
+
103
+ void
104
+ zargs_destroy (zargs_t **self_p)
105
+ {
106
+ assert (self_p);
107
+ if (*self_p) {
108
+ zargs_t *self = *self_p;
109
+ // Free class properties here
110
+ // Free object itself
111
+ zlist_destroy (&self->arguments);
112
+ zhash_destroy (&self->parameters);
113
+ free (self);
114
+ *self_p = NULL;
115
+ }
116
+ }
117
+
118
+ // --------------------------------------------------------------------------
119
+ // Return the program name (argv[0])
120
+
121
+ const char *
122
+ zargs_progname (zargs_t *self) {
123
+ assert (self);
124
+ return self->progname;
125
+ }
126
+
127
+ // --------------------------------------------------------------------------
128
+ // Return the number of command line arguments
129
+
130
+ size_t
131
+ zargs_arguments (zargs_t *self) {
132
+ assert (self);
133
+ return zlist_size (self->arguments);
134
+ }
135
+
136
+ // --------------------------------------------------------------------------
137
+ // Return first command line argument
138
+
139
+ const char *
140
+ zargs_first (zargs_t *self) {
141
+ assert (self);
142
+ return (const char*) zlist_first (self->arguments);
143
+ }
144
+
145
+ // --------------------------------------------------------------------------
146
+ // Return next command line argument
147
+
148
+ const char *
149
+ zargs_next (zargs_t *self) {
150
+ assert (self);
151
+ return (const char*) zlist_next (self->arguments);
152
+ }
153
+
154
+ // --------------------------------------------------------------------------
155
+ // Return first command line parameter value
156
+
157
+ const char *
158
+ zargs_param_first (zargs_t *self) {
159
+ assert (self);
160
+ return (const char*) zhash_first (self->parameters);
161
+ }
162
+
163
+ // --------------------------------------------------------------------------
164
+ // Return next command line parameter value
165
+
166
+ const char *
167
+ zargs_param_next (zargs_t *self) {
168
+ assert (self);
169
+ return (const char*) zhash_next (self->parameters);
170
+ }
171
+
172
+ // --------------------------------------------------------------------------
173
+ // Return current command line parameter name
174
+
175
+ const char *
176
+ zargs_param_name (zargs_t *self) {
177
+ assert (self);
178
+ return (const char*) zhash_cursor (self->parameters);
179
+ }
180
+
181
+ // --------------------------------------------------------------------------
182
+ // Return value of named parameter, NULL if no given parameter has
183
+ // been specified, or special value for wich zargs_param_empty ()
184
+ // returns true.
185
+
186
+ const char *
187
+ zargs_param_lookup (zargs_t *self, const char *name) {
188
+ assert (self);
189
+ assert (name);
190
+ const char *ret = NULL;
191
+ ret = (const char*) zhash_lookup (self->parameters, name);
192
+ return ret;
193
+ }
194
+
195
+ // --------------------------------------------------------------------------
196
+ // Return value of named parameter(s), NULL if no given parameter has
197
+ // been specified, or special value for wich zargs_param_empty ()
198
+ // returns true.
199
+
200
+ const char *
201
+ zargs_param_lookupx (zargs_t *self, const char *name, ...) {
202
+ assert (self);
203
+ const char *ret = NULL;
204
+ va_list args;
205
+ va_start (args, name);
206
+ while (name) {
207
+ ret = zargs_param_lookup (self, name);
208
+ if (ret)
209
+ break;
210
+ name = va_arg (args, const char *);
211
+ }
212
+ va_end (args);
213
+ return ret;
214
+ }
215
+
216
+ // --------------------------------------------------------------------------
217
+
218
+ bool
219
+ zargs_has_help (zargs_t *self) {
220
+ return zargs_param_lookupx (self, "--help", "-h", NULL) != NULL;
221
+ }
222
+
223
+ // --------------------------------------------------------------------------
224
+ // check if argument had a value or not
225
+
226
+ bool
227
+ zargs_param_empty (const char* arg) {
228
+ return arg && arg == ZARG_PARAM_EMPTY;
229
+ }
230
+
231
+ // --------------------------------------------------------------------------
232
+ // Print the zargs instance
233
+
234
+ void
235
+ zargs_print (zargs_t *self) {
236
+ assert (self);
237
+ fprintf (stderr, "%s ", self->progname);
238
+ for (const char *pvalue = zargs_param_first (self);
239
+ pvalue != NULL;
240
+ pvalue = zargs_param_next (self)) {
241
+ const char *pname = zargs_param_name (self);
242
+ if (pvalue == ZARG_PARAM_EMPTY)
243
+ fprintf (stderr, "%s : None ", pname);
244
+ else
245
+ fprintf (stderr, "%s : %s ", pname, pvalue);
246
+ fprintf (stderr, ", ");
247
+ }
248
+ for (const char *arg = zargs_first (self);
249
+ arg != NULL;
250
+ arg = zargs_next (self)) {
251
+ fprintf (stderr, "%s ", arg);
252
+ }
253
+ fputs ("", stderr);
254
+ }
255
+ // --------------------------------------------------------------------------
256
+ // Self test of this class
257
+
258
+ void
259
+ zargs_test (bool verbose)
260
+ {
261
+ zsys_init ();
262
+ printf (" * zargs: ");
263
+
264
+ // @selftest
265
+ // Simple create/destroy test
266
+
267
+ char *argv1[] = {"progname", "--named1", "-n1", "val1", "positional1", "--with", "value", "--with2=value2", "-W3value3", "--", "--thisis", "considered", "positional", NULL};
268
+
269
+ zargs_t *self = zargs_new (13, argv1);
270
+ assert (self);
271
+
272
+ assert (streq (zargs_progname (self), "progname"));
273
+ assert (streq (zargs_first (self), "positional1"));
274
+ assert (streq (zargs_next (self), "--thisis"));
275
+ assert (streq (zargs_next (self), "considered"));
276
+ assert (streq (zargs_next (self), "positional"));
277
+ assert (!zargs_next (self));
278
+
279
+ assert (zargs_param_empty (zargs_param_lookup (self, "--named1")));
280
+ assert (!zargs_param_empty (zargs_param_lookup (self, "-n1")));
281
+ assert (streq (zargs_param_lookupx (self, "--not at all", "-n1", NULL), "val1"));
282
+ // TODO: this does not look like an easy hack w/o allocating extra memory
283
+ // ???
284
+ //assert (streq (zargs_param_lookup (self, "--with", NULL), "value2"));
285
+
286
+ zargs_destroy (&self);
287
+ // @end
288
+ printf ("OK\n");
289
+ }
@@ -0,0 +1,941 @@
1
+ /* =========================================================================
2
+ zarmour - armoured text encoding and decoding
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ /*
15
+ @header
16
+ zarmour - armoured text encoding and decoding
17
+ @discuss
18
+ The zarmour class implements encoding and decoding of armoured text data.
19
+ The following codecs are implemented:
20
+ * RFC 4648 (http://www.ietf.org/rfc/rfc4648.txt)
21
+ - base64
22
+ - base64url
23
+ - base32
24
+ - base32hex
25
+ - base16
26
+ * Z85 (http://rfc.zeromq.org/spec:32)
27
+ All RFC4648 base64 and base32 variants support padding the output. The pad
28
+ character is configurable. Default is padding on, with character '='.
29
+ Additionally, in some cases (e.g. MIME), splitting the output into lines of a
30
+ specific length is required. This feature is also supported, though
31
+ turned off by default.
32
+ The z85 mode does neither padding nor line breaks; it is merely a wrapping
33
+ of the corresponding libzmq methods. Encoding will assert if input length is
34
+ not divisible by 4 and decoding will assert if input length is not
35
+ divisible by 5.
36
+ @end
37
+ */
38
+
39
+ #include "czmq_classes.h"
40
+
41
+ #if (ZMQ_VERSION >= ZMQ_MAKE_VERSION (3, 3, 0))
42
+ # define _INCLUDE_Z85
43
+ #endif
44
+
45
+ // Structure of our class
46
+
47
+ struct _zarmour_t {
48
+ int mode; // The current mode (Base64/32/16/Z85, STD/URL)
49
+ bool pad; // Should output be padded?
50
+ char pad_char; // The pad character
51
+ bool line_breaks; // Should output be broken into lines?
52
+ size_t line_length; // The line length to use
53
+ char *line_end;
54
+ };
55
+
56
+
57
+ // Textual names of modes
58
+
59
+ static char
60
+ *s_mode_names [] = {
61
+ "base64", "base64url", "base32", "base32hex", "base16", "z85"
62
+ };
63
+
64
+
65
+ // --------------------------------------------------------------------------
66
+ // Create a new zarmour
67
+
68
+ zarmour_t *
69
+ zarmour_new (void)
70
+ {
71
+ zarmour_t *self = (zarmour_t *) zmalloc (sizeof (zarmour_t));
72
+ assert (self);
73
+
74
+ // Setup default as RFC4648 paragraph 4
75
+ self->mode = ZARMOUR_MODE_BASE64_STD;
76
+ self->pad = true;
77
+ self->pad_char = '=';
78
+ self->line_breaks = false;
79
+ self->line_length = 72;
80
+ self->line_end = strdup ("\n");
81
+ assert (self->line_end);
82
+ return self;
83
+ }
84
+
85
+
86
+ // --------------------------------------------------------------------------
87
+ // Destroy the zarmour
88
+
89
+ void
90
+ zarmour_destroy (zarmour_t **self_p)
91
+ {
92
+ assert (self_p);
93
+ if (*self_p) {
94
+ zarmour_t *self = *self_p;
95
+ freen (self->line_end);
96
+ freen (self);
97
+ *self_p = NULL;
98
+ }
99
+ }
100
+
101
+
102
+ // --------------------------------------------------------------------------
103
+ // Helper macros for encoding/decoding
104
+
105
+ #define _NO_CONVERT(c) (c)
106
+ #define _UPPER_CASE(c) ((c) & ((c) & 0x40? 0xdf: 0xff))
107
+
108
+ #define _NEXT_CHAR(i, n, c, a, u) \
109
+ while ((n) < (c) && !strchr ((a), (u (*(n))))) \
110
+ ++ (n); \
111
+ (i) = (byte) ((n) < (c)? (strchr ((a), (u (*(n)))) - (a)): 0xff); \
112
+ ++ (n)
113
+
114
+
115
+ // RFC 4648 Paragraph 4 (standard base64 alphabet)
116
+ static char // 0----5----0----5----0----5----0----5----0----5----0----5----0---
117
+ s_base64_alphabet [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
118
+
119
+ // RFC 4648 Paragraph 5 (URL & filename friendly base64 alphabet)
120
+ static char // 0----5----0----5----0----5----0----5----0----5----0----5----0---
121
+ s_base64url_alphabet [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
122
+
123
+ static char *
124
+ s_base64_encode (const byte *data, size_t length, const char *alphabet, bool pad, char pad_char)
125
+ {
126
+ size_t extra_chars = ((length % 3)? length % 3 + 1: 0);
127
+ size_t pad_chars = (pad && extra_chars)? 4 - extra_chars: 0;
128
+ size_t str_chars = 4 *(length / 3) + extra_chars + pad_chars;
129
+ char *str = (char *) zmalloc (str_chars + 1);
130
+ if (!str)
131
+ return NULL;
132
+
133
+ char *enc = str;
134
+ const byte *needle = data, *ceiling = data + length;
135
+ while (needle < ceiling) {
136
+ *enc++ = alphabet [(*needle) >> 2];
137
+ if (needle + 1 < ceiling) {
138
+ *enc++ = alphabet [((*needle << 4) & 0x30) | (*(needle + 1) >> 4)];
139
+ if (needle + 2 < ceiling) {
140
+ *enc++ = alphabet [((*(needle + 1) << 2) & 0x3c) | (*(needle + 2) >> 6)];
141
+ *enc++ = alphabet [*(needle + 2) & 0x3f];
142
+ }
143
+ else
144
+ *enc++ = alphabet [(*(needle + 1) << 2) & 0x3c];
145
+ }
146
+ else
147
+ *enc++ = alphabet [(*needle << 4) & 0x30];
148
+ needle += 3;
149
+ }
150
+ while (pad && enc < str + str_chars)
151
+ *enc++ = pad_char;
152
+ *enc = 0;
153
+ return str;
154
+ }
155
+
156
+
157
+ static byte *
158
+ s_base64_decode (const char *data, size_t *size, const char *alphabet, size_t linebreakchars)
159
+ {
160
+ size_t length = strlen (data);
161
+ while (length > 0 && !strchr (alphabet, data [length - 1]))
162
+ --length;
163
+ const byte *needle = (const byte *) data;
164
+ const byte *ceiling = (const byte *) (data + length);
165
+
166
+ length -= linebreakchars;
167
+ *size = 3 * (length / 4) + ((length % 4)? length % 4 - 1 : 0) + 1;
168
+ byte *bytes = (byte *) zmalloc (*size);
169
+ if (!bytes)
170
+ return NULL;
171
+
172
+ byte *dec = bytes;
173
+ byte i1, i2, i3, i4;
174
+ while (needle < ceiling) {
175
+ _NEXT_CHAR (i1, needle, ceiling, alphabet, _NO_CONVERT);
176
+ _NEXT_CHAR (i2, needle, ceiling, alphabet, _NO_CONVERT);
177
+ if (i1 != 0xff && i2 != 0xff)
178
+ *dec++ = i1 << 2 | i2 >> 4;
179
+ _NEXT_CHAR (i3, needle, ceiling, alphabet, _NO_CONVERT);
180
+ if (i2 != 0xff && i3 != 0xff)
181
+ *dec++ = i2 << 4 | i3 >> 2;
182
+ _NEXT_CHAR (i4, needle, ceiling, alphabet, _NO_CONVERT);
183
+ if (i3 != 0xff && i4 != 0xff)
184
+ *dec++ = i3 << 6 | i4;
185
+ }
186
+ *dec = 0;
187
+ return bytes;
188
+ }
189
+
190
+
191
+ // RFC 4648 Paragraph 6 (standard base32 alphabet)
192
+
193
+ static char // 0----5----0----5----0----5----0-
194
+ s_base32_alphabet [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
195
+
196
+ // RFC 4648 Paragraph 7 (base32hex alphabet)
197
+
198
+ static char // 0----5----0----5----0----5----0-
199
+ s_base32hex_alphabet [] = "0123456789ABCDEFGHIJKLMNOPQRSTUV";
200
+
201
+ static char *
202
+ s_base32_encode (const byte *data, size_t length, const char *alphabet, bool pad, char pad_char)
203
+ {
204
+ size_t extra_bytes = length % 5, extra_chars = 0;
205
+ switch (extra_bytes) {
206
+ case 1: extra_chars = 2; break;
207
+ case 2: extra_chars = 4; break;
208
+ case 3: extra_chars = 5; break;
209
+ case 4: extra_chars = 7; break;
210
+ }
211
+ size_t pad_chars = (pad && extra_chars)? 8 - extra_chars: 0;
212
+ size_t str_chars = 8 *(length / 5) + extra_chars + pad_chars;
213
+ char *str = (char *) zmalloc (str_chars + 1);
214
+ if (!str)
215
+ return NULL;
216
+
217
+ char *enc = str;
218
+ const byte *needle = data, *ceiling = data + length;
219
+ while (needle < ceiling) {
220
+ *enc++ = alphabet [(*needle) >> 3];
221
+ if (needle + 1 < ceiling) {
222
+ *enc++ = alphabet [((*needle << 2) & 0x1c) | (*(needle + 1) >> 6)];
223
+ *enc++ = alphabet [(*(needle + 1) >> 1) & 0x1f];
224
+ if (needle + 2 < ceiling) {
225
+ *enc++ = alphabet [((*(needle + 1) << 4) & 0x10) | (*(needle + 2) >> 4)];
226
+ if (needle + 3 < ceiling) {
227
+ *enc++ = alphabet [((*(needle + 2) << 1) & 0x1e) | (*(needle + 3) >> 7)];
228
+ *enc++ = alphabet [(*(needle + 3) >> 2) & 0x1f];
229
+ if (needle + 4 < ceiling) {
230
+ *enc++ = alphabet [((*(needle + 3) << 3) & 0x18) | (*(needle + 4) >> 5)];
231
+ *enc++ = alphabet [*(needle + 4) & 0x1f];
232
+ }
233
+ else
234
+ *enc++ = alphabet [(*(needle + 3) << 3) & 0x18];
235
+ }
236
+ else
237
+ *enc++ = alphabet [(*(needle + 2) << 1) & 0x1e];
238
+ }
239
+ else
240
+ *enc++ = alphabet [(*(needle + 1) << 4) & 0x10];
241
+ }
242
+ else
243
+ *enc++ = alphabet [(*needle << 2) & 0x1c];
244
+ needle += 5;
245
+ }
246
+ while (enc < str + str_chars)
247
+ *enc++ = pad_char;
248
+ *enc = 0;
249
+ return str;
250
+ }
251
+
252
+
253
+ static byte *
254
+ s_base32_decode (const char *data, size_t *size, const char *alphabet, size_t linebreakchars)
255
+ {
256
+ size_t length = strlen (data);
257
+ while (length > 0 && !strchr (alphabet, _UPPER_CASE (data [length - 1]))) --length;
258
+ const byte *needle = (const byte *) data, *ceiling = (const byte *) (data + length);
259
+ length -= linebreakchars;
260
+ size_t extra_chars = length % 8, extra_bytes = 0;
261
+ switch (extra_chars) {
262
+ case 0: break;
263
+ case 2: extra_bytes = 1; break;
264
+ case 4: extra_bytes = 2; break;
265
+ case 5: extra_bytes = 3; break;
266
+ case 7: extra_bytes = 4; break;
267
+ default: assert (false); break;
268
+ }
269
+ *size = 5 *(length / 8) + extra_bytes + 1;
270
+ byte *bytes = (byte *) zmalloc (*size);
271
+ if (!bytes)
272
+ return NULL;
273
+
274
+ byte *dec = bytes;
275
+ byte i1, i2, i3, i4, i5, i6, i7, i8;
276
+ while (needle < ceiling) {
277
+ _NEXT_CHAR (i1, needle, ceiling, alphabet, _UPPER_CASE);
278
+ _NEXT_CHAR (i2, needle, ceiling, alphabet, _UPPER_CASE);
279
+ if (i1 != 0xff && i2 != 0xff)
280
+ *dec++ = i1 << 3 | i2 >> 2;
281
+ _NEXT_CHAR (i3, needle, ceiling, alphabet, _UPPER_CASE);
282
+ _NEXT_CHAR (i4, needle, ceiling, alphabet, _UPPER_CASE);
283
+ if (i2 != 0xff && i3 != 0xff && i4 != 0xff)
284
+ *dec++ = i2 << 6 | i3 << 1 | i4 >> 4;
285
+ _NEXT_CHAR (i5, needle, ceiling, alphabet, _UPPER_CASE);
286
+ if (i4 != 0xff && i5 != 0xff)
287
+ *dec++ = i4 << 4 | i5 >> 1;
288
+ _NEXT_CHAR (i6, needle, ceiling, alphabet, _UPPER_CASE);
289
+ _NEXT_CHAR (i7, needle, ceiling, alphabet, _UPPER_CASE);
290
+ if (i5 != 0xff && i6 != 0xff && i7 != 0xff)
291
+ *dec++ = i5 << 7 | i6 << 2 | i7 >> 3;
292
+ _NEXT_CHAR (i8, needle, ceiling, alphabet, _UPPER_CASE);
293
+ if (i7 != 0xff && i8 != 0xff)
294
+ *dec++ = i7 << 5 | i8;
295
+ }
296
+ *dec = 0;
297
+ return bytes;
298
+ }
299
+
300
+
301
+ // RFC 4648 Paragraph 8 (standard base16 alphabet)
302
+
303
+ static char // 0----5----0----5
304
+ s_base16_alphabet [] = "0123456789ABCDEF";
305
+
306
+ static char *
307
+ s_base16_encode (const byte *data, size_t length, const char *alphabet)
308
+ {
309
+ char *str = (char *) zmalloc (2 * length + 1);
310
+ if (!str)
311
+ return NULL;
312
+
313
+ char *enc = str;
314
+ const byte *needle = data, *ceiling = data + length;
315
+ while (needle < ceiling) {
316
+ *enc++ = alphabet [(*needle) >> 4];
317
+ *enc++ = alphabet [(*needle++) & 0x0f];
318
+ }
319
+ *enc = 0;
320
+ return str;
321
+ }
322
+
323
+ static byte *
324
+ s_base16_decode (const char *data, size_t *size, const char *alphabet, size_t linebreakchars)
325
+ {
326
+ size_t length = strlen (data);
327
+ const byte *needle = (const byte *) data, *ceiling = (const byte *) (data + length);
328
+ length -= linebreakchars;
329
+ *size = length / 2 + 1;
330
+ byte *bytes = (byte *) zmalloc (*size);
331
+ if (!bytes)
332
+ return NULL;
333
+
334
+ byte *dec = bytes;
335
+ byte i1, i2;
336
+ while (needle < ceiling) {
337
+ _NEXT_CHAR (i1, needle, ceiling, alphabet, _UPPER_CASE);
338
+ _NEXT_CHAR (i2, needle, ceiling, alphabet, _UPPER_CASE);
339
+ if (i1 != 0xff && i2 != 0xff)
340
+ *dec++ = i1 << 4 | i2;
341
+ }
342
+ *dec = 0;
343
+ return bytes;
344
+ }
345
+
346
+
347
+ // Z85 encoding/decoding
348
+
349
+ static char *
350
+ s_z85_encode (const byte *data, size_t length)
351
+ {
352
+ assert (data != NULL);
353
+ assert (length % 4 == 0);
354
+ #ifdef _INCLUDE_Z85
355
+ char *str = (char *) zmalloc (5 * length / 4 + 1);
356
+ char *result = zmq_z85_encode (str, (uint8_t *) data, length);
357
+ if (result == NULL) {
358
+ freen (str);
359
+ str = NULL;
360
+ }
361
+ return str;
362
+ #else
363
+ return NULL;
364
+ #endif
365
+ }
366
+
367
+ static byte *
368
+ s_z85_decode (const char *data, size_t *size)
369
+ {
370
+ assert (data);
371
+ assert (size);
372
+ #ifdef _INCLUDE_Z85
373
+ size_t length = strlen (data);
374
+ assert (length % 5 == 0);
375
+ *size = 4 * length / 5 + 1;
376
+ byte *bytes = (byte *) zmalloc (*size);
377
+ uint8_t *result = zmq_z85_decode (bytes, (char *) data);
378
+ if (result == NULL) {
379
+ freen (bytes);
380
+ bytes = NULL;
381
+ }
382
+ return bytes;
383
+ #else
384
+ return NULL;
385
+ #endif
386
+ }
387
+
388
+
389
+ // --------------------------------------------------------------------------
390
+ // Decode an armoured string into a string of bytes.
391
+ // The decoded output is null-terminated, so it may be treated
392
+ // as a string, if that's what it was prior to encoding.
393
+ // The caller is responsible for destroying the return value when finished with it.
394
+
395
+ char *
396
+ zarmour_encode (zarmour_t *self, const byte *data, size_t data_size)
397
+ {
398
+ assert (self);
399
+ assert (data);
400
+
401
+ char *encoded = NULL;
402
+ switch (self->mode) {
403
+ case ZARMOUR_MODE_BASE64_STD:
404
+ encoded = s_base64_encode (data, data_size, s_base64_alphabet, self->pad, self->pad_char);
405
+ break;
406
+ case ZARMOUR_MODE_BASE64_URL:
407
+ encoded = s_base64_encode (data, data_size, s_base64url_alphabet, self->pad, self->pad_char);
408
+ break;
409
+ case ZARMOUR_MODE_BASE32_STD:
410
+ encoded = s_base32_encode (data, data_size, s_base32_alphabet, self->pad, self->pad_char);
411
+ break;
412
+ case ZARMOUR_MODE_BASE32_HEX:
413
+ encoded = s_base32_encode (data, data_size, s_base32hex_alphabet, self->pad, self->pad_char);
414
+ break;
415
+ case ZARMOUR_MODE_BASE16:
416
+ encoded = s_base16_encode (data, data_size, s_base16_alphabet);
417
+ break;
418
+ case ZARMOUR_MODE_Z85:
419
+ encoded = s_z85_encode (data, data_size);
420
+ break;
421
+ }
422
+ if (!encoded)
423
+ return NULL;
424
+
425
+ if (self->line_breaks
426
+ && self->line_length > 0
427
+ && strlen (encoded) > self->line_length
428
+ && self->mode != ZARMOUR_MODE_Z85) {
429
+ char *line_end = self->line_end;
430
+ size_t nbr_lines = strlen (encoded) / self->line_length;
431
+ size_t new_length =
432
+ nbr_lines *(self->line_length + strlen (line_end)) +
433
+ strlen (encoded) % self->line_length;
434
+ char *src = encoded;
435
+ char *temp = encoded;
436
+ encoded = (char *) zmalloc (new_length + 1);
437
+
438
+ char *dest = encoded;
439
+ while (strlen (src) >= self->line_length) {
440
+ memcpy (dest, src, self->line_length);
441
+ src += self->line_length;
442
+ dest += self->line_length;
443
+ if (*src) {
444
+ memcpy (dest, line_end, strlen (line_end));
445
+ dest += strlen (line_end);
446
+ }
447
+ }
448
+ if (*src) {
449
+ memcpy (dest, src, strlen (src));
450
+ dest += strlen (src);
451
+ }
452
+ freen (temp);
453
+ *dest = 0;
454
+ }
455
+ return encoded;
456
+ }
457
+
458
+
459
+ // --------------------------------------------------------------------------
460
+ // Decode an armoured string into a chunk. The decoded output is
461
+ // null-terminated, so it may be treated as a string, if that's what
462
+ // it was prior to encoding.
463
+ // Caller owns return value and must destroy it when done.
464
+
465
+ zchunk_t *
466
+ zarmour_decode (zarmour_t *self, const char *data)
467
+ {
468
+ assert (self);
469
+ assert (data);
470
+
471
+ size_t linebreakchars = 0;
472
+ char *line_end = self->line_end;
473
+ const char *pos = data;
474
+ while ((pos = strstr (pos, line_end))) {
475
+ linebreakchars += strlen (line_end);
476
+ pos += strlen (line_end);
477
+ }
478
+ byte *decoded = NULL;
479
+ size_t size = 0;
480
+
481
+ switch (self->mode) {
482
+ case ZARMOUR_MODE_BASE64_STD:
483
+ decoded = s_base64_decode (data, &size, s_base64_alphabet, linebreakchars);
484
+ break;
485
+ case ZARMOUR_MODE_BASE64_URL:
486
+ decoded = s_base64_decode (data, &size, s_base64url_alphabet, linebreakchars);
487
+ break;
488
+ case ZARMOUR_MODE_BASE32_STD:
489
+ decoded = s_base32_decode (data, &size, s_base32_alphabet, linebreakchars);
490
+ break;
491
+ case ZARMOUR_MODE_BASE32_HEX:
492
+ decoded = s_base32_decode (data, &size, s_base32hex_alphabet, linebreakchars);
493
+ break;
494
+ case ZARMOUR_MODE_BASE16:
495
+ decoded = s_base16_decode (data, &size, s_base16_alphabet, linebreakchars);
496
+ break;
497
+ case ZARMOUR_MODE_Z85:
498
+ decoded = s_z85_decode (data, &size);
499
+ break;
500
+ }
501
+ zchunk_t *ret = zchunk_new (decoded, size);
502
+ freen (decoded);
503
+ return ret;
504
+ }
505
+
506
+
507
+ // --------------------------------------------------------------------------
508
+ // Get the mode property.
509
+
510
+ int
511
+ zarmour_mode (zarmour_t *self)
512
+ {
513
+ assert (self);
514
+ return self->mode;
515
+ }
516
+
517
+
518
+ // --------------------------------------------------------------------------
519
+ // Get printable string for mode.
520
+
521
+ const char *
522
+ zarmour_mode_str (zarmour_t *self)
523
+ {
524
+ assert (self);
525
+ return s_mode_names [(int) self->mode];
526
+ }
527
+
528
+
529
+ // --------------------------------------------------------------------------
530
+ // Set the mode property.
531
+
532
+ void
533
+ zarmour_set_mode (zarmour_t *self, int mode)
534
+ {
535
+ assert (self);
536
+ self->mode = mode;
537
+ }
538
+
539
+
540
+ // --------------------------------------------------------------------------
541
+ // Return true if padding is turned on.
542
+
543
+ bool
544
+ zarmour_pad (zarmour_t *self)
545
+ {
546
+ assert (self);
547
+ return self->pad;
548
+ }
549
+
550
+ // --------------------------------------------------------------------------
551
+ // Turn padding on or off. Default is on.
552
+
553
+ void
554
+ zarmour_set_pad (zarmour_t *self, bool pad)
555
+ {
556
+ assert (self);
557
+ self->pad = pad;
558
+ }
559
+
560
+
561
+ // --------------------------------------------------------------------------
562
+ // Get the padding character.
563
+
564
+ char
565
+ zarmour_pad_char (zarmour_t *self)
566
+ {
567
+ assert (self);
568
+ return self->pad_char;
569
+ }
570
+
571
+
572
+ // --------------------------------------------------------------------------
573
+ // Set the padding character.
574
+
575
+ void
576
+ zarmour_set_pad_char (zarmour_t *self, char pad_char)
577
+ {
578
+ assert (self);
579
+ self->pad_char = pad_char;
580
+ }
581
+
582
+
583
+ // --------------------------------------------------------------------------
584
+ // Return if splitting output into lines is turned on. Default is off.
585
+
586
+ bool
587
+ zarmour_line_breaks (zarmour_t *self)
588
+ {
589
+ assert (self);
590
+ return self->line_breaks;
591
+ }
592
+
593
+
594
+ // --------------------------------------------------------------------------
595
+ // Turn splitting output into lines on or off.
596
+
597
+ void
598
+ zarmour_set_line_breaks (zarmour_t *self, bool line_breaks)
599
+ {
600
+ assert (self);
601
+ self->line_breaks = line_breaks;
602
+ }
603
+
604
+
605
+ // --------------------------------------------------------------------------
606
+ // Get the line length used for splitting lines.
607
+
608
+ size_t
609
+ zarmour_line_length (zarmour_t *self)
610
+ {
611
+ assert (self);
612
+ return self->line_length;
613
+ }
614
+
615
+
616
+ // --------------------------------------------------------------------------
617
+ // Set the line length used for splitting lines.
618
+
619
+ void
620
+ zarmour_set_line_length (zarmour_t *self, size_t line_length)
621
+ {
622
+ assert (self);
623
+ self->line_length = line_length;
624
+ }
625
+
626
+
627
+ // --------------------------------------------------------------------------
628
+ // Print properties of object
629
+
630
+ void
631
+ zarmour_print (zarmour_t *self)
632
+ {
633
+ assert (self);
634
+
635
+ zsys_debug ("zarmour:");
636
+ zsys_debug (" mode: %s", zarmour_mode_str (self));
637
+ zsys_debug (" pad: %s", self->pad? "true": "false");
638
+ zsys_debug (" pad_char: '%c'", self->pad_char);
639
+ zsys_debug (" line_breaks: %s", self->line_breaks? "true": "false");
640
+ zsys_debug (" line_length: %d", self->line_length);
641
+ }
642
+
643
+
644
+ // ---------------------------------------------------------------------------
645
+ // Self test support functions
646
+
647
+ static void
648
+ s_armour_decode (zarmour_t *self, const char *test_string, const char *expected, bool verbose)
649
+ {
650
+ assert (self);
651
+ assert (test_string);
652
+ assert (expected);
653
+
654
+ zchunk_t *chunk = zarmour_decode (self, test_string);
655
+ assert (chunk);
656
+ if (verbose)
657
+ zsys_debug (" decoded '%s' into '%s'", test_string, (char *) zchunk_data (chunk));
658
+ assert (zchunk_size (chunk) == strlen (expected) + 1);
659
+ assert (streq ((char *) zchunk_data (chunk), expected));
660
+ zchunk_destroy (&chunk);
661
+ }
662
+
663
+ static void
664
+ s_armour_test (zarmour_t *self, const char *test_string, const char *expected, bool verbose)
665
+ {
666
+ assert (self);
667
+ assert (test_string);
668
+ assert (expected);
669
+
670
+ char *encoded = zarmour_encode (self, (byte *) test_string, strlen (test_string));
671
+ assert (encoded);
672
+ if (verbose)
673
+ zsys_debug (" encoded '%s' into '%s' ('%s')", test_string, encoded, expected);
674
+ assert (strlen (encoded) == strlen (expected));
675
+ assert (streq (encoded, expected));
676
+ s_armour_decode (self, encoded, test_string, verbose);
677
+ freen (encoded);
678
+ }
679
+
680
+ static void
681
+ s_armour_test_long (zarmour_t *self, byte *test_data, size_t length, bool verbose)
682
+ {
683
+ if (verbose)
684
+ zarmour_print (self);
685
+
686
+ char *test_string = zarmour_encode (self, test_data, length);
687
+ assert (test_string);
688
+ if (verbose)
689
+ zsys_debug (" encoded %d bytes array to:\n%s", length, test_string);
690
+
691
+ zchunk_t *chunk = zarmour_decode (self, test_string);
692
+ assert (chunk);
693
+ assert (zchunk_size (chunk) == length + 1);
694
+ uint index;
695
+ for (index = 0; index < length; index++)
696
+ assert (zchunk_data (chunk)[index] == index);
697
+ zchunk_destroy (&chunk);
698
+ if (verbose)
699
+ zsys_debug (" decoded %d bytes, all match", length);
700
+ freen (test_string);
701
+ }
702
+
703
+
704
+ // --------------------------------------------------------------------------
705
+ // Selftest
706
+
707
+ void
708
+ zarmour_test (bool verbose)
709
+ {
710
+ printf (" * zarmour: ");
711
+
712
+ if (verbose)
713
+ printf ("\n");
714
+
715
+ // @selftest
716
+ zarmour_t *self = zarmour_new ();
717
+ assert (self);
718
+
719
+ int mode = zarmour_mode (self);
720
+ assert (mode == ZARMOUR_MODE_BASE64_STD);
721
+
722
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE64_URL);
723
+ mode = zarmour_mode (self);
724
+ assert (mode == ZARMOUR_MODE_BASE64_URL);
725
+
726
+ assert (zarmour_pad (self));
727
+ zarmour_set_pad (self, false);
728
+ assert (!zarmour_pad (self));
729
+
730
+ assert (zarmour_pad_char (self) == '=');
731
+ zarmour_set_pad_char (self, '!');
732
+ assert (zarmour_pad_char (self) == '!');
733
+ zarmour_set_pad_char (self, '=');
734
+ assert (zarmour_pad_char (self) == '=');
735
+
736
+ assert (!zarmour_line_breaks (self));
737
+ zarmour_set_line_breaks (self, true);
738
+ assert (zarmour_line_breaks (self));
739
+
740
+ assert (zarmour_line_length (self) == 72);
741
+ zarmour_set_line_length (self, 64);
742
+ assert (zarmour_line_length (self) == 64);
743
+
744
+ // Test against test vectors from RFC4648.
745
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE64_STD);
746
+ if (verbose)
747
+ zarmour_print (self);
748
+
749
+ s_armour_test (self, "", "", verbose);
750
+ s_armour_test (self, "f", "Zg", verbose);
751
+ s_armour_test (self, "fo", "Zm8", verbose);
752
+ s_armour_test (self, "foo", "Zm9v", verbose);
753
+ s_armour_test (self, "foob", "Zm9vYg", verbose);
754
+ s_armour_test (self, "fooba", "Zm9vYmE", verbose);
755
+ s_armour_test (self, "foobar", "Zm9vYmFy", verbose);
756
+ zarmour_set_pad (self, true);
757
+ if (verbose)
758
+ zarmour_print (self);
759
+
760
+ s_armour_test (self, "", "", verbose);
761
+ s_armour_test (self, "f", "Zg==", verbose);
762
+ s_armour_test (self, "fo", "Zm8=", verbose);
763
+ s_armour_test (self, "foo", "Zm9v", verbose);
764
+ s_armour_test (self, "foob", "Zm9vYg==", verbose);
765
+ s_armour_test (self, "fooba", "Zm9vYmE=", verbose);
766
+ s_armour_test (self, "foobar", "Zm9vYmFy", verbose);
767
+
768
+ zarmour_set_pad (self, false);
769
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE64_URL);
770
+ if (verbose)
771
+ zarmour_print (self);
772
+
773
+ s_armour_test (self, "", "", verbose);
774
+ s_armour_test (self, "f", "Zg", verbose);
775
+ s_armour_test (self, "fo", "Zm8", verbose);
776
+ s_armour_test (self, "foo", "Zm9v", verbose);
777
+ s_armour_test (self, "foob", "Zm9vYg", verbose);
778
+ s_armour_test (self, "fooba", "Zm9vYmE", verbose);
779
+ s_armour_test (self, "foobar", "Zm9vYmFy", verbose);
780
+ zarmour_set_pad (self, true);
781
+ if (verbose)
782
+ zarmour_print (self);
783
+
784
+ s_armour_test (self, "", "", verbose);
785
+ s_armour_test (self, "f", "Zg==", verbose);
786
+ s_armour_test (self, "fo", "Zm8=", verbose);
787
+ s_armour_test (self, "foo", "Zm9v", verbose);
788
+ s_armour_test (self, "foob", "Zm9vYg==", verbose);
789
+ s_armour_test (self, "fooba", "Zm9vYmE=", verbose);
790
+ s_armour_test (self, "foobar", "Zm9vYmFy", verbose);
791
+
792
+ zarmour_set_pad (self, false);
793
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE32_STD);
794
+ if (verbose)
795
+ zarmour_print (self);
796
+
797
+ s_armour_test (self, "", "", verbose);
798
+ s_armour_test (self, "f", "MY", verbose);
799
+ s_armour_test (self, "fo", "MZXQ", verbose);
800
+ s_armour_test (self, "foo", "MZXW6", verbose);
801
+ s_armour_test (self, "foob", "MZXW6YQ", verbose);
802
+ s_armour_test (self, "fooba", "MZXW6YTB", verbose);
803
+ s_armour_test (self, "foobar", "MZXW6YTBOI", verbose);
804
+ s_armour_decode (self, "my", "f", verbose);
805
+ s_armour_decode (self, "mzxq", "fo", verbose);
806
+ s_armour_decode (self, "mzxw6", "foo", verbose);
807
+ s_armour_decode (self, "mzxw6yq", "foob", verbose);
808
+ s_armour_decode (self, "mzxw6ytb", "fooba", verbose);
809
+ s_armour_decode (self, "mzxw6ytboi", "foobar", verbose);
810
+ zarmour_set_pad (self, true);
811
+ if (verbose)
812
+ zarmour_print (self);
813
+
814
+ s_armour_test (self, "", "", verbose);
815
+ s_armour_test (self, "f", "MY======", verbose);
816
+ s_armour_test (self, "fo", "MZXQ====", verbose);
817
+ s_armour_test (self, "foo", "MZXW6===", verbose);
818
+ s_armour_test (self, "foob", "MZXW6YQ=", verbose);
819
+ s_armour_test (self, "fooba", "MZXW6YTB", verbose);
820
+ s_armour_test (self, "foobar", "MZXW6YTBOI======", verbose);
821
+ s_armour_decode (self, "my======", "f", verbose);
822
+ s_armour_decode (self, "mzxq====", "fo", verbose);
823
+ s_armour_decode (self, "mzxw6===", "foo", verbose);
824
+ s_armour_decode (self, "mzxw6yq=", "foob", verbose);
825
+ s_armour_decode (self, "mzxw6ytb", "fooba", verbose);
826
+ s_armour_decode (self, "mzxw6ytboi======", "foobar", verbose);
827
+
828
+ zarmour_set_pad (self, false);
829
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE32_HEX);
830
+ if (verbose)
831
+ zarmour_print (self);
832
+
833
+ s_armour_test (self, "", "", verbose);
834
+ s_armour_test (self, "f", "CO", verbose);
835
+ s_armour_test (self, "fo", "CPNG", verbose);
836
+ s_armour_test (self, "foo", "CPNMU", verbose);
837
+ s_armour_test (self, "foob", "CPNMUOG", verbose);
838
+ s_armour_test (self, "fooba", "CPNMUOJ1", verbose);
839
+ s_armour_test (self, "foobar", "CPNMUOJ1E8", verbose);
840
+ s_armour_decode (self, "co", "f", verbose);
841
+ s_armour_decode (self, "cpng", "fo", verbose);
842
+ s_armour_decode (self, "cpnmu", "foo", verbose);
843
+ s_armour_decode (self, "cpnmuog", "foob", verbose);
844
+ s_armour_decode (self, "cpnmuoj1", "fooba", verbose);
845
+ s_armour_decode (self, "cpnmuoj1e8", "foobar", verbose);
846
+ zarmour_set_pad (self, true);
847
+ if (verbose)
848
+ zarmour_print (self);
849
+
850
+ s_armour_test (self, "", "", verbose);
851
+ s_armour_test (self, "f", "CO======", verbose);
852
+ s_armour_test (self, "fo", "CPNG====", verbose);
853
+ s_armour_test (self, "foo", "CPNMU===", verbose);
854
+ s_armour_test (self, "foob", "CPNMUOG=", verbose);
855
+ s_armour_test (self, "fooba", "CPNMUOJ1", verbose);
856
+ s_armour_test (self, "foobar", "CPNMUOJ1E8======", verbose);
857
+ s_armour_decode (self, "co======", "f", verbose);
858
+ s_armour_decode (self, "cpng====", "fo", verbose);
859
+ s_armour_decode (self, "cpnmu===", "foo", verbose);
860
+ s_armour_decode (self, "cpnmuog=", "foob", verbose);
861
+ s_armour_decode (self, "cpnmuoj1", "fooba", verbose);
862
+ s_armour_decode (self, "cpnmuoj1e8======", "foobar", verbose);
863
+ zarmour_set_pad (self, true);
864
+
865
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE16);
866
+ if (verbose)
867
+ zarmour_print (self);
868
+
869
+ s_armour_test (self, "", "", verbose);
870
+ s_armour_test (self, "f", "66", verbose);
871
+ s_armour_test (self, "fo", "666F", verbose);
872
+ s_armour_test (self, "foo", "666F6F", verbose);
873
+ s_armour_test (self, "foob", "666F6F62", verbose);
874
+ s_armour_test (self, "fooba", "666F6F6261", verbose);
875
+ s_armour_test (self, "foobar", "666F6F626172", verbose);
876
+ s_armour_decode (self, "666f", "fo", verbose);
877
+ s_armour_decode (self, "666f6f", "foo", verbose);
878
+ s_armour_decode (self, "666f6f62", "foob", verbose);
879
+ s_armour_decode (self, "666f6f6261", "fooba", verbose);
880
+ s_armour_decode (self, "666f6f626172", "foobar", verbose);
881
+
882
+ #ifdef _INCLUDE_Z85
883
+ // Z85 test is homemade; using 0, 4 and 8 bytes, with precalculated
884
+ // test vectors created with a libzmq test.
885
+ // ----------------------------------------------------------------
886
+
887
+ // Make a fake curve key from hex (base16) string, making sure
888
+ // there are no null bytes inside, so we can use our test utility
889
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE16);
890
+ zarmour_set_line_breaks (self, false);
891
+
892
+ zchunk_t *chunk = zarmour_decode (self,
893
+ "4E6F87E2FB6EB22A1EF5E257B75D79124949565F0B8B36A878A4F03111C96E0B");
894
+ assert (chunk);
895
+
896
+ zarmour_set_mode (self, ZARMOUR_MODE_Z85); // Z85 mode does not support padding or line breaks
897
+ zarmour_set_pad (self, false); // so these two are superfluous;
898
+ zarmour_set_line_breaks (self, false); // just for consistency
899
+ if (verbose)
900
+ zarmour_print (self);
901
+
902
+ s_armour_test (self, "", "", verbose);
903
+ s_armour_test (self, "foob", "w]zP%", verbose);
904
+ s_armour_test (self, "foobar!!", "w]zP%vr9Im", verbose);
905
+ s_armour_test (self, (char *) zchunk_data (chunk),
906
+ "ph+{E}!&X?9}!I]W{sm(nL8@&3Yu{wC+<*-5Y[[#", verbose);
907
+ zchunk_destroy (&chunk);
908
+ #endif
909
+
910
+ // Armouring longer byte array to test line breaks
911
+ zarmour_set_pad (self, true);
912
+ zarmour_set_line_breaks (self, true);
913
+ byte test_data [256];
914
+ int index;
915
+ for (index = 0; index < 256; index++)
916
+ test_data [index] = index;
917
+
918
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE64_STD);
919
+ s_armour_test_long (self, test_data, 256, verbose);
920
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE64_URL);
921
+ s_armour_test_long (self, test_data, 256, verbose);
922
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE32_STD);
923
+ s_armour_test_long (self, test_data, 256, verbose);
924
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE32_HEX);
925
+ s_armour_test_long (self, test_data, 256, verbose);
926
+ zarmour_set_mode (self, ZARMOUR_MODE_BASE16);
927
+ s_armour_test_long (self, test_data, 256, verbose);
928
+ #ifdef _INCLUDE_Z85
929
+ zarmour_set_mode (self, ZARMOUR_MODE_Z85);
930
+ s_armour_test_long (self, test_data, 256, verbose);
931
+ #endif
932
+
933
+ zarmour_destroy (&self);
934
+
935
+ #if defined (__WINDOWS__)
936
+ zsys_shutdown();
937
+ #endif
938
+ // @end
939
+
940
+ printf ("OK\n");
941
+ }