kibi-swipl-linux-x64-gnu 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/README.md +29 -0
  2. package/bin/swipl +0 -0
  3. package/bin/swipl-win +0 -0
  4. package/build-manifest.json +70 -0
  5. package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
  6. package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
  7. package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
  8. package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
  9. package/lib/swipl/ABI +1 -0
  10. package/lib/swipl/LICENSE +41 -0
  11. package/lib/swipl/README.md +116 -0
  12. package/lib/swipl/app/README.md +25 -0
  13. package/lib/swipl/app/app.pl +87 -0
  14. package/lib/swipl/app/pack.pl +350 -0
  15. package/lib/swipl/app/qlf.pl +521 -0
  16. package/lib/swipl/app/splfr.pl +177 -0
  17. package/lib/swipl/app/sys.pl +310 -0
  18. package/lib/swipl/bin/swipl.home +1 -0
  19. package/lib/swipl/boot/apply.pl +73 -0
  20. package/lib/swipl/boot/attvar.pl +344 -0
  21. package/lib/swipl/boot/autoload.pl +1226 -0
  22. package/lib/swipl/boot/bags.pl +283 -0
  23. package/lib/swipl/boot/dcg.pl +388 -0
  24. package/lib/swipl/boot/dicts.pl +193 -0
  25. package/lib/swipl/boot/dwim.pl +485 -0
  26. package/lib/swipl/boot/engines.pl +152 -0
  27. package/lib/swipl/boot/expand.pl +1628 -0
  28. package/lib/swipl/boot/gc.pl +65 -0
  29. package/lib/swipl/boot/history.pl +304 -0
  30. package/lib/swipl/boot/init.pl +4682 -0
  31. package/lib/swipl/boot/iri.pl +64 -0
  32. package/lib/swipl/boot/license.pl +390 -0
  33. package/lib/swipl/boot/load.pl +81 -0
  34. package/lib/swipl/boot/messages.pl +2521 -0
  35. package/lib/swipl/boot/packs.pl +306 -0
  36. package/lib/swipl/boot/predopts.pl +154 -0
  37. package/lib/swipl/boot/qlf.pl +141 -0
  38. package/lib/swipl/boot/rc.pl +263 -0
  39. package/lib/swipl/boot/syspred.pl +1634 -0
  40. package/lib/swipl/boot/tabling.pl +2321 -0
  41. package/lib/swipl/boot/threads.pl +42 -0
  42. package/lib/swipl/boot/toplevel.pl +2248 -0
  43. package/lib/swipl/boot/topvars.pl +261 -0
  44. package/lib/swipl/boot.prc +0 -0
  45. package/lib/swipl/cmake/swipl.cmake +131 -0
  46. package/lib/swipl/customize/README.md +23 -0
  47. package/lib/swipl/customize/edit +101 -0
  48. package/lib/swipl/customize/init.pl +164 -0
  49. package/lib/swipl/demo/README.md +33 -0
  50. package/lib/swipl/demo/likes.pl +44 -0
  51. package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
  52. package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
  53. package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
  54. package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
  55. package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
  56. package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
  57. package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
  58. package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
  59. package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
  60. package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
  61. package/lib/swipl/doc/packages/examples/http/README.md +98 -0
  62. package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
  63. package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
  64. package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
  65. package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
  66. package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
  67. package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
  68. package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
  69. package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
  70. package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
  71. package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
  72. package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
  73. package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
  74. package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
  75. package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
  76. package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
  77. package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
  78. package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
  79. package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
  80. package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
  81. package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
  82. package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
  83. package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
  84. package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
  85. package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
  86. package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
  87. package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
  88. package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
  89. package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
  90. package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
  91. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
  92. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
  93. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
  94. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
  95. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
  96. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
  97. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
  98. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
  99. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
  100. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
  101. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
  102. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
  103. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
  104. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
  105. package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
  106. package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
  107. package/lib/swipl/include/SWI-Prolog.h +1544 -0
  108. package/lib/swipl/include/SWI-Stream.h +537 -0
  109. package/lib/swipl/include/Yap/YapInterface.h +283 -0
  110. package/lib/swipl/include/sicstus/sicstus.h +452 -0
  111. package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
  112. package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
  113. package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
  114. package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
  115. package/lib/swipl/lib/x86_64-linux/files.so +0 -0
  116. package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
  117. package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
  118. package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
  119. package/lib/swipl/lib/x86_64-linux/json.so +0 -0
  120. package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
  121. package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
  122. package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
  123. package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
  124. package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
  125. package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
  126. package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
  127. package/lib/swipl/lib/x86_64-linux/process.so +0 -0
  128. package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
  129. package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
  130. package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
  131. package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
  132. package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
  133. package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
  134. package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
  135. package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
  136. package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
  137. package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
  138. package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
  139. package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
  140. package/lib/swipl/lib/x86_64-linux/time.so +0 -0
  141. package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
  142. package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
  143. package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
  144. package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
  145. package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
  146. package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
  147. package/lib/swipl/library/INDEX.pl +1020 -0
  148. package/lib/swipl/library/aggregate.pl +755 -0
  149. package/lib/swipl/library/ansi_term.pl +653 -0
  150. package/lib/swipl/library/apply.pl +426 -0
  151. package/lib/swipl/library/apply_macros.pl +497 -0
  152. package/lib/swipl/library/arithmetic.pl +320 -0
  153. package/lib/swipl/library/assoc.pl +522 -0
  154. package/lib/swipl/library/atom.pl +169 -0
  155. package/lib/swipl/library/backcomp.pl +688 -0
  156. package/lib/swipl/library/base32.pl +291 -0
  157. package/lib/swipl/library/base64.pl +441 -0
  158. package/lib/swipl/library/broadcast.pl +161 -0
  159. package/lib/swipl/library/build/cmake.pl +137 -0
  160. package/lib/swipl/library/build/conan.pl +232 -0
  161. package/lib/swipl/library/build/make.pl +168 -0
  162. package/lib/swipl/library/build/tools.pl +825 -0
  163. package/lib/swipl/library/charsio.pl +195 -0
  164. package/lib/swipl/library/check.pl +1097 -0
  165. package/lib/swipl/library/check_installation.pl +912 -0
  166. package/lib/swipl/library/clp/INDEX.pl +157 -0
  167. package/lib/swipl/library/clp/bounds.pl +2036 -0
  168. package/lib/swipl/library/clp/clp_distinct.pl +263 -0
  169. package/lib/swipl/library/clp/clp_events.pl +92 -0
  170. package/lib/swipl/library/clp/clpb.pl +1896 -0
  171. package/lib/swipl/library/clp/clpfd.pl +7906 -0
  172. package/lib/swipl/library/clp/simplex.pl +1580 -0
  173. package/lib/swipl/library/codesio.pl +182 -0
  174. package/lib/swipl/library/coinduction.pl +183 -0
  175. package/lib/swipl/library/console_input.pl +289 -0
  176. package/lib/swipl/library/csv.pl +611 -0
  177. package/lib/swipl/library/ctypes.pl +161 -0
  178. package/lib/swipl/library/date.pl +370 -0
  179. package/lib/swipl/library/dcg/INDEX.pl +35 -0
  180. package/lib/swipl/library/dcg/basics.pl +514 -0
  181. package/lib/swipl/library/dcg/high_order.pl +227 -0
  182. package/lib/swipl/library/debug.pl +499 -0
  183. package/lib/swipl/library/dialect/bim.pl +186 -0
  184. package/lib/swipl/library/dialect/commons.pl +77 -0
  185. package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
  186. package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
  187. package/lib/swipl/library/dialect/hprolog.pl +314 -0
  188. package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
  189. package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
  190. package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
  191. package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
  192. package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
  193. package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
  194. package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
  195. package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
  196. package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
  197. package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
  198. package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
  199. package/lib/swipl/library/dialect/sicstus.pl +582 -0
  200. package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
  201. package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
  202. package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
  203. package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
  204. package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
  205. package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
  206. package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
  207. package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
  208. package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
  209. package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
  210. package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
  211. package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
  212. package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
  213. package/lib/swipl/library/dialect/sicstus4.pl +200 -0
  214. package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
  215. package/lib/swipl/library/dialect/xsb/README.md +20 -0
  216. package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
  217. package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
  218. package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
  219. package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
  220. package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
  221. package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
  222. package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
  223. package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
  224. package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
  225. package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
  226. package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
  227. package/lib/swipl/library/dialect/xsb/source.pl +308 -0
  228. package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
  229. package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
  230. package/lib/swipl/library/dialect/xsb/string.pl +76 -0
  231. package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
  232. package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
  233. package/lib/swipl/library/dialect/xsb.pl +688 -0
  234. package/lib/swipl/library/dialect/yap/README.TXT +8 -0
  235. package/lib/swipl/library/dialect/yap.pl +283 -0
  236. package/lib/swipl/library/dialect.pl +123 -0
  237. package/lib/swipl/library/dicts.pl +399 -0
  238. package/lib/swipl/library/dif.pl +426 -0
  239. package/lib/swipl/library/edinburgh.pl +138 -0
  240. package/lib/swipl/library/edit.pl +783 -0
  241. package/lib/swipl/library/error.pl +495 -0
  242. package/lib/swipl/library/exceptions.pl +231 -0
  243. package/lib/swipl/library/explain.pl +543 -0
  244. package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
  245. package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
  246. package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
  247. package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
  248. package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
  249. package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
  250. package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
  251. package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
  252. package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
  253. package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
  254. package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
  255. package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
  256. package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
  257. package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
  258. package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
  259. package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
  260. package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
  261. package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
  262. package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
  263. package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
  264. package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
  265. package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
  266. package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
  267. package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
  268. package/lib/swipl/library/ext/chr/chr.pl +686 -0
  269. package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
  270. package/lib/swipl/library/ext/clib/cgi.pl +86 -0
  271. package/lib/swipl/library/ext/clib/crypt.pl +44 -0
  272. package/lib/swipl/library/ext/clib/filesex.pl +644 -0
  273. package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
  274. package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
  275. package/lib/swipl/library/ext/clib/md5.pl +68 -0
  276. package/lib/swipl/library/ext/clib/memfile.pl +61 -0
  277. package/lib/swipl/library/ext/clib/process.pl +573 -0
  278. package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
  279. package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
  280. package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
  281. package/lib/swipl/library/ext/clib/sched.pl +85 -0
  282. package/lib/swipl/library/ext/clib/sha.pl +162 -0
  283. package/lib/swipl/library/ext/clib/socket.pl +1102 -0
  284. package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
  285. package/lib/swipl/library/ext/clib/streampool.pl +136 -0
  286. package/lib/swipl/library/ext/clib/syslog.pl +180 -0
  287. package/lib/swipl/library/ext/clib/time.pl +194 -0
  288. package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
  289. package/lib/swipl/library/ext/clib/uid.pl +220 -0
  290. package/lib/swipl/library/ext/clib/unix.pl +317 -0
  291. package/lib/swipl/library/ext/clib/uri.pl +530 -0
  292. package/lib/swipl/library/ext/clib/uuid.pl +207 -0
  293. package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
  294. package/lib/swipl/library/ext/http/http/README.md +34 -0
  295. package/lib/swipl/library/ext/http/http/ax.pl +189 -0
  296. package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
  297. package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
  298. package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
  299. package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
  300. package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
  301. package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
  302. package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
  303. package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
  304. package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
  305. package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
  306. package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
  307. package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
  308. package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
  309. package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
  310. package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
  311. package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
  312. package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
  313. package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
  314. package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
  315. package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
  316. package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
  317. package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
  318. package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
  319. package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
  320. package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
  321. package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
  322. package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
  323. package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
  324. package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
  325. package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
  326. package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
  327. package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
  328. package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
  329. package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
  330. package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
  331. package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
  332. package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
  333. package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
  334. package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
  335. package/lib/swipl/library/ext/http/http/hub.pl +600 -0
  336. package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
  337. package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
  338. package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
  339. package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
  340. package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
  341. package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
  342. package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
  343. package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
  344. package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
  345. package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
  346. package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
  347. package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
  348. package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
  349. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
  350. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
  351. package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
  352. package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
  353. package/lib/swipl/library/ext/json/INDEX.pl +36 -0
  354. package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
  355. package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
  356. package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
  357. package/lib/swipl/library/ext/json/http/json.pl +48 -0
  358. package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
  359. package/lib/swipl/library/ext/json/json.pl +1215 -0
  360. package/lib/swipl/library/ext/json/json_convert.pl +681 -0
  361. package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
  362. package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
  363. package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
  364. package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
  365. package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
  366. package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
  367. package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
  368. package/lib/swipl/library/ext/nlp/isub.pl +162 -0
  369. package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
  370. package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
  371. package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
  372. package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
  373. package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
  374. package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
  375. package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
  376. package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
  377. package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
  378. package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
  379. package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
  380. package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
  381. package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
  382. package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
  383. package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
  384. package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
  385. package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
  386. package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
  387. package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
  388. package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
  389. package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
  390. package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
  391. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
  392. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
  393. package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
  394. package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
  395. package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
  396. package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
  397. package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
  398. package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
  399. package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
  400. package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
  401. package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
  402. package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
  403. package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
  404. package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
  405. package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
  406. package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
  407. package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
  408. package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
  409. package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
  410. package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
  411. package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
  412. package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
  413. package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
  414. package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
  415. package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
  416. package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
  417. package/lib/swipl/library/ext/ssl/saml.pl +609 -0
  418. package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
  419. package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
  420. package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
  421. package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
  422. package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
  423. package/lib/swipl/library/fastrw.pl +105 -0
  424. package/lib/swipl/library/files.pl +80 -0
  425. package/lib/swipl/library/gensym.pl +111 -0
  426. package/lib/swipl/library/git.pl +1027 -0
  427. package/lib/swipl/library/hashtable.pl +365 -0
  428. package/lib/swipl/library/heaps.pl +252 -0
  429. package/lib/swipl/library/hotfix.pl +239 -0
  430. package/lib/swipl/library/http/jquery.pl +103 -0
  431. package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
  432. package/lib/swipl/library/increval.pl +217 -0
  433. package/lib/swipl/library/intercept.pl +263 -0
  434. package/lib/swipl/library/iostream.pl +237 -0
  435. package/lib/swipl/library/iri_scheme/file.pl +70 -0
  436. package/lib/swipl/library/lazy_lists.pl +481 -0
  437. package/lib/swipl/library/listing.pl +1362 -0
  438. package/lib/swipl/library/lists.pl +860 -0
  439. package/lib/swipl/library/lynx/INDEX.pl +14 -0
  440. package/lib/swipl/library/lynx/format.pl +380 -0
  441. package/lib/swipl/library/lynx/html_style.pl +129 -0
  442. package/lib/swipl/library/lynx/html_text.pl +865 -0
  443. package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
  444. package/lib/swipl/library/macros.pl +451 -0
  445. package/lib/swipl/library/main.pl +1200 -0
  446. package/lib/swipl/library/make.pl +197 -0
  447. package/lib/swipl/library/modules.pl +129 -0
  448. package/lib/swipl/library/nb_rbtrees.pl +267 -0
  449. package/lib/swipl/library/nb_set.pl +203 -0
  450. package/lib/swipl/library/obfuscate.pl +115 -0
  451. package/lib/swipl/library/occurs.pl +241 -0
  452. package/lib/swipl/library/operators.pl +182 -0
  453. package/lib/swipl/library/option.pl +388 -0
  454. package/lib/swipl/library/optparse.pl +966 -0
  455. package/lib/swipl/library/ordsets.pl +518 -0
  456. package/lib/swipl/library/oset.pl +160 -0
  457. package/lib/swipl/library/pairs.pl +187 -0
  458. package/lib/swipl/library/persistency.pl +713 -0
  459. package/lib/swipl/library/pio.pl +47 -0
  460. package/lib/swipl/library/portray_text.pl +277 -0
  461. package/lib/swipl/library/pprint.pl +940 -0
  462. package/lib/swipl/library/predicate_options.pl +975 -0
  463. package/lib/swipl/library/prolog_autoload.pl +233 -0
  464. package/lib/swipl/library/prolog_breakpoints.pl +396 -0
  465. package/lib/swipl/library/prolog_clause.pl +1104 -0
  466. package/lib/swipl/library/prolog_code.pl +416 -0
  467. package/lib/swipl/library/prolog_codewalk.pl +1248 -0
  468. package/lib/swipl/library/prolog_colour.pl +3301 -0
  469. package/lib/swipl/library/prolog_colour.qlf +0 -0
  470. package/lib/swipl/library/prolog_config.pl +154 -0
  471. package/lib/swipl/library/prolog_coverage.pl +1333 -0
  472. package/lib/swipl/library/prolog_debug.pl +404 -0
  473. package/lib/swipl/library/prolog_deps.pl +675 -0
  474. package/lib/swipl/library/prolog_evaluable.pl +234 -0
  475. package/lib/swipl/library/prolog_format.pl +219 -0
  476. package/lib/swipl/library/prolog_history.pl +161 -0
  477. package/lib/swipl/library/prolog_jiti.pl +333 -0
  478. package/lib/swipl/library/prolog_locale.pl +61 -0
  479. package/lib/swipl/library/prolog_metainference.pl +307 -0
  480. package/lib/swipl/library/prolog_pack.pl +3906 -0
  481. package/lib/swipl/library/prolog_profile.pl +346 -0
  482. package/lib/swipl/library/prolog_qlfmake.pl +533 -0
  483. package/lib/swipl/library/prolog_source.pl +1188 -0
  484. package/lib/swipl/library/prolog_stack.pl +794 -0
  485. package/lib/swipl/library/prolog_trace.pl +365 -0
  486. package/lib/swipl/library/prolog_versions.pl +347 -0
  487. package/lib/swipl/library/prolog_wrap.pl +164 -0
  488. package/lib/swipl/library/prolog_xref.pl +3090 -0
  489. package/lib/swipl/library/prolog_xref.qlf +0 -0
  490. package/lib/swipl/library/pure_input.pl +266 -0
  491. package/lib/swipl/library/qpforeign.pl +695 -0
  492. package/lib/swipl/library/qsave.pl +1516 -0
  493. package/lib/swipl/library/quasi_quotations.pl +300 -0
  494. package/lib/swipl/library/quintus.pl +437 -0
  495. package/lib/swipl/library/random.pl +459 -0
  496. package/lib/swipl/library/rbtrees.pl +1153 -0
  497. package/lib/swipl/library/readln.pl +256 -0
  498. package/lib/swipl/library/readutil.pl +304 -0
  499. package/lib/swipl/library/record.pl +544 -0
  500. package/lib/swipl/library/rwlocks.pl +172 -0
  501. package/lib/swipl/library/sandbox.pl +1384 -0
  502. package/lib/swipl/library/semweb/dc.rdfs +198 -0
  503. package/lib/swipl/library/semweb/eor.rdfs +95 -0
  504. package/lib/swipl/library/semweb/owl.owl +287 -0
  505. package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
  506. package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
  507. package/lib/swipl/library/settings.pl +755 -0
  508. package/lib/swipl/library/shell.pl +462 -0
  509. package/lib/swipl/library/shlib.pl +670 -0
  510. package/lib/swipl/library/solution_sequences.pl +439 -0
  511. package/lib/swipl/library/sort.pl +119 -0
  512. package/lib/swipl/library/statistics.pl +541 -0
  513. package/lib/swipl/library/streams.pl +118 -0
  514. package/lib/swipl/library/strings.pl +469 -0
  515. package/lib/swipl/library/system.pl +95 -0
  516. package/lib/swipl/library/tables.pl +381 -0
  517. package/lib/swipl/library/tableutil.pl +771 -0
  518. package/lib/swipl/library/tabling.pl +42 -0
  519. package/lib/swipl/library/terms.pl +457 -0
  520. package/lib/swipl/library/theme/auto.pl +61 -0
  521. package/lib/swipl/library/theme/dark.pl +455 -0
  522. package/lib/swipl/library/theme/light.pl +45 -0
  523. package/lib/swipl/library/thread.pl +810 -0
  524. package/lib/swipl/library/thread_pool.pl +508 -0
  525. package/lib/swipl/library/threadutil.pl +574 -0
  526. package/lib/swipl/library/tty.pl +316 -0
  527. package/lib/swipl/library/ugraphs.pl +644 -0
  528. package/lib/swipl/library/unicode/INDEX.pl +6 -0
  529. package/lib/swipl/library/unicode/blocks.pl +414 -0
  530. package/lib/swipl/library/url.pl +1129 -0
  531. package/lib/swipl/library/utf8.pl +145 -0
  532. package/lib/swipl/library/varnumbers.pl +221 -0
  533. package/lib/swipl/library/vm.pl +251 -0
  534. package/lib/swipl/library/wfs.pl +205 -0
  535. package/lib/swipl/library/when.pl +263 -0
  536. package/lib/swipl/library/writef.pl +278 -0
  537. package/lib/swipl/library/www_browser.pl +251 -0
  538. package/lib/swipl/library/yall.pl +574 -0
  539. package/lib/swipl/library/zip.pl +211 -0
  540. package/lib/swipl/swipl.home +1 -0
  541. package/lib/vendor/libcrypto.so.3 +0 -0
  542. package/lib/vendor/libpcre2-8.so.0 +0 -0
  543. package/lib/vendor/libssl.so.3 +0 -0
  544. package/lib/vendor/libz.so.1 +0 -0
  545. package/licenses/OpenSSL-LICENSE.txt +177 -0
  546. package/licenses/PCRE2-COPYING +5 -0
  547. package/licenses/README.md +12 -0
  548. package/licenses/SWI-Prolog-LICENSE +41 -0
  549. package/licenses/zlib-LICENSE +22 -0
  550. package/package.json +27 -0
@@ -0,0 +1,85 @@
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number:
5
+ 9d:c0:87:97:a0:f6:3f:7d
6
+ Signature Algorithm: sha256WithRSAEncryption
7
+ Issuer: C=NL, ST=Noord-Holland, O=Diff Automatisering, OU=Support group, CN=J. van der Steen/emailAddress=info@diff.nl
8
+ Validity
9
+ Not Before: Apr 1 09:35:37 2020 GMT
10
+ Not After : Apr 1 09:35:37 2021 GMT
11
+ Subject: C=NL, ST=Noord-Holland, L=Amsterdam, O=Diff Automatisering, OU=Server, CN=J. van der Steen/emailAddress=J.van.der.Steen@diff.nl
12
+ Subject Public Key Info:
13
+ Public Key Algorithm: rsaEncryption
14
+ Public-Key: (2048 bit)
15
+ Modulus:
16
+ 00:e7:6c:7a:c1:e9:17:aa:ea:d8:32:73:66:b3:62:
17
+ ee:3c:7d:c8:e4:3c:59:67:57:67:8d:98:61:24:31:
18
+ 98:23:8f:ef:c3:41:2a:0f:82:1e:6a:6f:2d:00:9e:
19
+ bf:19:ad:6b:46:42:17:c2:1e:cc:27:b5:c7:66:7a:
20
+ a5:7b:cc:8c:15:0a:1c:d2:c5:87:23:94:88:42:5e:
21
+ 42:9f:41:22:5a:ad:71:b2:29:54:23:39:cd:05:db:
22
+ cf:6d:3b:8e:9a:b0:f3:e6:ca:9f:2d:39:28:d6:1c:
23
+ 76:da:34:54:27:f9:a0:0f:1d:ae:32:30:c4:7f:9e:
24
+ 53:18:64:27:2f:05:2b:bf:66:ce:39:52:99:8e:10:
25
+ 1a:80:bf:5e:3a:54:fb:85:da:fc:a7:2d:90:99:42:
26
+ c7:e2:cf:6a:db:56:1d:3b:bc:0e:97:bf:c5:d4:58:
27
+ c4:76:33:a2:25:8c:56:94:b4:8d:a9:d3:ab:76:2a:
28
+ f9:4c:15:de:d1:b8:23:66:3f:36:9a:4b:51:9e:1a:
29
+ 27:e5:f0:38:a3:2a:2a:ab:cd:1c:88:7c:e4:df:82:
30
+ 44:6f:e9:c1:0d:6f:55:98:f4:c0:06:41:ff:1f:c7:
31
+ 30:6a:9a:14:57:73:bd:e0:a7:f7:43:0f:f4:ae:49:
32
+ b3:48:de:42:fd:0d:be:26:e1:39:4d:24:b8:36:d7:
33
+ 16:43
34
+ Exponent: 65537 (0x10001)
35
+ X509v3 extensions:
36
+ X509v3 Basic Constraints:
37
+ CA:FALSE
38
+ Netscape Comment:
39
+ OpenSSL Generated Certificate
40
+ X509v3 Subject Key Identifier:
41
+ 01:84:17:EF:98:0D:F4:DD:FC:24:63:09:EF:2F:E6:BE:52:97:7C:17
42
+ X509v3 Authority Key Identifier:
43
+ keyid:E2:7B:60:8C:77:BB:B2:74:B8:FD:D6:2C:A9:D3:B9:35:97:12:87:EC
44
+
45
+ Signature Algorithm: sha256WithRSAEncryption
46
+ 9a:b1:75:61:08:bb:ca:dc:b9:cd:3e:5e:30:f8:86:20:2c:e1:
47
+ 47:41:50:c6:a3:e5:b0:d2:08:43:eb:86:9e:5c:2c:7b:4c:40:
48
+ f9:f2:64:1d:7d:9e:f7:31:78:ef:12:05:ff:b9:4e:48:dc:0c:
49
+ b9:9d:df:6f:3e:27:e4:a4:55:b7:61:70:9c:6d:97:30:78:5f:
50
+ 72:7a:61:ad:68:96:e6:db:7f:fe:3a:82:52:71:88:42:08:67:
51
+ ce:13:00:af:8f:e1:fd:bb:fd:c8:a4:cc:a9:4e:93:8f:c2:91:
52
+ b8:e8:22:86:c0:65:36:e7:25:fb:c3:ca:bb:23:b2:33:fa:41:
53
+ 2c:9c:e7:d8:9f:14:82:1f:a7:ea:20:77:8d:7b:82:3f:22:ea:
54
+ 9b:87:8f:86:eb:f7:15:14:17:12:c0:90:6b:cd:7b:e1:9f:da:
55
+ 96:aa:59:7c:21:01:98:2f:d6:19:e4:7d:60:04:d3:64:65:a3:
56
+ 7b:a4:0f:59:d0:ce:90:1b:e0:6b:55:4f:94:d2:a5:aa:0f:c4:
57
+ 05:b9:e8:e4:7e:11:33:db:77:3f:73:ab:ea:2d:6e:00:07:7e:
58
+ 5a:6c:42:79:dc:06:86:85:3f:44:25:e7:d6:44:b8:b2:2e:f4:
59
+ f1:a4:60:97:3f:b3:74:29:d7:ec:6d:f1:c4:9c:7b:e4:57:a3:
60
+ 3c:be:17:bb
61
+ -----BEGIN CERTIFICATE-----
62
+ MIIEPjCCAyagAwIBAgIJAJ3Ah5eg9j99MA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD
63
+ VQQGEwJOTDEWMBQGA1UECAwNTm9vcmQtSG9sbGFuZDEcMBoGA1UECgwTRGlmZiBB
64
+ dXRvbWF0aXNlcmluZzEWMBQGA1UECwwNU3VwcG9ydCBncm91cDEZMBcGA1UEAwwQ
65
+ Si4gdmFuIGRlciBTdGVlbjEbMBkGCSqGSIb3DQEJARYMaW5mb0BkaWZmLm5sMB4X
66
+ DTIwMDQwMTA5MzUzN1oXDTIxMDQwMTA5MzUzN1owgasxCzAJBgNVBAYTAk5MMRYw
67
+ FAYDVQQIDA1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHDAlBbXN0ZXJkYW0xHDAaBgNV
68
+ BAoME0RpZmYgQXV0b21hdGlzZXJpbmcxDzANBgNVBAsMBlNlcnZlcjEZMBcGA1UE
69
+ AwwQSi4gdmFuIGRlciBTdGVlbjEmMCQGCSqGSIb3DQEJARYXSi52YW4uZGVyLlN0
70
+ ZWVuQGRpZmYubmwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnbHrB
71
+ 6Req6tgyc2azYu48fcjkPFlnV2eNmGEkMZgjj+/DQSoPgh5qby0Anr8ZrWtGQhfC
72
+ HswntcdmeqV7zIwVChzSxYcjlIhCXkKfQSJarXGyKVQjOc0F289tO46asPPmyp8t
73
+ OSjWHHbaNFQn+aAPHa4yMMR/nlMYZCcvBSu/Zs45UpmOEBqAv146VPuF2vynLZCZ
74
+ Qsfiz2rbVh07vA6Xv8XUWMR2M6IljFaUtI2p06t2KvlMFd7RuCNmPzaaS1GeGifl
75
+ 8DijKiqrzRyIfOTfgkRv6cENb1WY9MAGQf8fxzBqmhRXc73gp/dDD/SuSbNI3kL9
76
+ Db4m4TlNJLg21xZDAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8W
77
+ HU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBQBhBfvmA30
78
+ 3fwkYwnvL+a+Upd8FzAfBgNVHSMEGDAWgBTie2CMd7uydLj91iyp07k1lxKH7DAN
79
+ BgkqhkiG9w0BAQsFAAOCAQEAmrF1YQi7yty5zT5eMPiGICzhR0FQxqPlsNIIQ+uG
80
+ nlwse0xA+fJkHX2e9zF47xIF/7lOSNwMuZ3fbz4n5KRVt2FwnG2XMHhfcnphrWiW
81
+ 5tt//jqCUnGIQghnzhMAr4/h/bv9yKTMqU6Tj8KRuOgihsBlNucl+8PKuyOyM/pB
82
+ LJzn2J8Ugh+n6iB3jXuCPyLqm4ePhuv3FRQXEsCQa8174Z/alqpZfCEBmC/WGeR9
83
+ YATTZGWje6QPWdDOkBvga1VPlNKlqg/EBbno5H4RM9t3P3Or6i1uAAd+WmxCedwG
84
+ hoU/RCXn1kS4si708aRglz+zdCnX7G3xxJx75FejPL4Xuw==
85
+ -----END CERTIFICATE-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN ENCRYPTED PRIVATE KEY-----
2
+ MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIUZoWaoXwEL4CAggA
3
+ MBQGCCqGSIb3DQMHBAiLJma8RXDpzQSCBMhVAz+QXJhiJw5epX1BiJL7j/09s8mb
4
+ uXxgpJhE40kAbwAvykq6FOmjubrE6bPx0n8Dk4b/KroKjjS6DV0AX4jvrep43T/z
5
+ IRHqjDdYOHAyIi9yXQGsFkeHdIEo7vXU1zA4Om+K3wreK07Pz4YfiKAWF6/6xJj4
6
+ fue8zXGgLB6fiWQs4EbH7EiCYgVuypU50sUa/AnpWXe9ITVBssjeHCjTphxHtL8j
7
+ rT+JBv0XpdAYcBOX4irk8zEq+432/RL7DPi2ercBpDQeaAsMfyTOrhptUkAcyj0/
8
+ PTFsrxchtyS5HQbR7yKhio2bxAGCinsWD/WSLU95RzT83rSgMth4q9nURqVKE7Y1
9
+ LsnMa9YIyITdKPSzyA8rmcylghK23PDGhYDw1pZIhbpcGNjiLSyI4js68urIwpK1
10
+ xdQv9Oouq8U5SJNLH7jNJVIfmtOIVnJEy+GoSgNtQn7f9LrLfZtccWNsejuKxvDi
11
+ NKmhrUvoMLD7lN6CH7CWtUe3o523Q/a4XXJYnTrFz4viKS8ig5ljfzOzq1XimJJb
12
+ /EmKStoiRIeTC0MBmCu0uo43oaT+AihvZZB+TPUV/L0T0kV7rd0n59RxFmwOlO7j
13
+ iSOz1cy2jmILiDh4gAdH43H6WG6I38q23rLyt/EMVh/1DgJlndfdVVKk4VvFT/Bx
14
+ MjgEEvrf/VC7idy6mQea4tWJ+lXag64phwXt0zja3v/tVKhVJPyFlFLgslve7ZKt
15
+ 8r8nFTFcZSyVt2Qi+kRL3Iuu/lRkvOcaeK5VdtjV4PV+Pmk6VvecptSr2pkfUTdy
16
+ wFgKWBjwruINfcIoFyegL4cUyWWcQDwSfWTT0WAWt6kLvf0xjK6jjcFvFn46RHFf
17
+ zQbnmyqo20nKRhR88EJTuqevyLRUG1EBQwSyWuq4m/5XTy5nFIWcWIx6bF/hsk9C
18
+ ZB/aq2+4pw6oZlEb7yXdaLvlRXuhmiqUbff2xW/lcG77AWDm3as0J7O6OZg+7170
19
+ DdP99viL/K1+O0gZZDkl/YGdJgy6eHA0GXC1Xz6vARRxexxwvJQfXb5R2FnMENxm
20
+ sCTqZwIXYPCWnQ7IoRUHl4q8uMTdxCZiIoXglzX+O5XTxPUOYk8HeEohIppAt5l/
21
+ dB9lMfQmM/GEOXYlI8gEPNJ4vVBiulpzbIfHT9qAZVpH4+++Hwo6xYT2z/L46Ax2
22
+ IlFS1TMd9f9PkPf/Vh+aezcw6YfIUEJ6YTuOjmSgSpPshQKC4mgTtIayOEJTuBih
23
+ EAf+nq940RaKlittUi5s1YZbxwkV+YXz6DsK6L4UypmU2Dlg/aWaEFQsIUULSNgi
24
+ FrlzJZwRJdFhcQhvkr2WUk5JxcScydPRqhhk7ZL2EVzgGqdNfg3aq9jZGBQYthqL
25
+ DxcSQcrolOj2p2DUAUGJdtBGpzddz77qB81E4Sy3rsratycaDBARADORqrPEXdSi
26
+ DBhSFCCARpZtIxALPjANLL8Jx1kz9H4bZcp0z+M9l+pSfjpXEbWOKD/OpCqlvhCK
27
+ 4EiLhYYoUZWPQeZf0khgIZk9n0PvnUb5oJYONdnCb4fBgEDUMQ0wijCw3D5QMC0Y
28
+ Es2tHhIGqwxjaI5SmmOET1tYznInffvsWhvN8WESirISrjM9KZx608bpHRV47oXi
29
+ O7g=
30
+ -----END ENCRYPTED PRIVATE KEY-----
@@ -0,0 +1,267 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: J.Wielemaker@vu.nl
5
+ WWW: http://www.swi-prolog.org
6
+
7
+ This demo code is released in the _public domain_, which implies
8
+ you may copy, modify and reuse this code without restriction.
9
+ */
10
+
11
+ :- module(https,
12
+ [ http_download/2, % +URL, -String
13
+
14
+ http_server/1, % ?Port
15
+ https_server/1, % ?Port
16
+ https_server_with_client_cert/1, % ?Port
17
+
18
+ http_client/2, % +Port, +Page
19
+ https_client/2, % +Port, +Page
20
+ https_client_with_client_cert/2 % +Port, +Page
21
+ ]).
22
+
23
+ % Include our dependencies. The conditions are to accomodate for
24
+ % different locations of some of the files in the source tree and
25
+ % examples tree.
26
+
27
+ :- prolog_load_context(directory, D),
28
+ atom_concat(D, '/..', DD),
29
+ asserta(user:file_search_path(library, DD)).
30
+ :- if(exists_source(library(http/examples/demo_body))).
31
+ :- use_module(library(http/examples/demo_body)). % location in source tree
32
+ :- elif(exists_source(swi(doc/packages/examples/http/demo_body))).
33
+ :- use_module(swi(doc/packages/examples/http/demo_body)).
34
+ :- else.
35
+ :- use_module(library(http/demo_body)). % location in demo tree
36
+ :- endif.
37
+ :- use_module(library(http/thread_httpd)).
38
+ :- if(exists_source(library(http/http_ssl_plugin))).
39
+ :- use_module(library(http/http_ssl_plugin)).
40
+ :- else.
41
+ :- use_module(http_ssl_plugin).
42
+ :- endif.
43
+ :- use_module(library(debug)).
44
+
45
+ /** <module> Demo HTTPS server
46
+
47
+ This demo illustrates how to use the SSL library for dealing with HTTPS.
48
+ It provides examples for simple download of HTTPS documents from the web
49
+ and provides demo code for several HTTPS servers and corresponding
50
+ client code using (self-signed) certificates. The certificates are
51
+ provided in the `etc` directory. These certificates are the same
52
+ certificates that are used for testing the SSL library. You may use them
53
+ for testing purposes, but you should not use them for your own services
54
+ because the private key is not so private.
55
+
56
+ This demo implements three different servers:
57
+
58
+ - http_server/1 implements a typical HTTP server.
59
+ - https_server/1 implements a typical HTTPS server.
60
+ - https_server_with_client_cert/1 implements a server that asks
61
+
62
+ The startup sequence to run the server at port 1443 is shown below.
63
+ Directing your browser to the indicated URL should cause your browser to
64
+ warn you about an untrusted certificate. After accepting you can use the
65
+ simple demo through HTTPS.
66
+
67
+ ==
68
+ $ swipl https.pl
69
+ ...
70
+ ?- https_server(1443).
71
+ % Started server at https://localhost:1443/
72
+ true.
73
+ ==
74
+
75
+ The demo is primarily intended to access from a browser, but at the
76
+ bottom of this file are predicates to access the server from Prolog. The
77
+ first argument is the port and must be the same as the value returned by
78
+ or given to the *_server predicate. The second is the location on the
79
+ server, e.g., `/`, `/quit`, `/env`, etc.
80
+
81
+ - http_client/2 accesses http_server/1.
82
+ - https_client/2 accesses https_server/1.
83
+ - https_client_with_client_cert/2 accesses https_server_with_client_cert/1.
84
+
85
+ An example session is given below. Now that you can either run the
86
+ client calls from the Prolog window in which you started the server or
87
+ load this file into another Prolog.
88
+
89
+ ==
90
+ ?- https_client(1443, '/quit').
91
+ Bye Bye
92
+ true.
93
+ ==
94
+ */
95
+
96
+ %! http_download(+URL, -Data) is det.
97
+ %
98
+ % Download data from an HTTP or HTTPS server. If HTTPS is used,
99
+ % the certificate is verified by the system's root certificate
100
+ % store. This means you cannot download from servers using
101
+ % self-signed certificates, but you can download from proper
102
+ % public websites with official authorized keys. For example:
103
+ %
104
+ % ==
105
+ % ?- http_download('https://raw.githubusercontent.com\c
106
+ % /SWI-Prolog/packages-ssl/master/README.md',
107
+ % String).
108
+ % ==
109
+
110
+ http_download(URL, String) :-
111
+ http_open(URL, In, []),
112
+ call_cleanup(
113
+ read_string(In, _, String),
114
+ close(In)).
115
+
116
+ %! http_server(?Port) is det.
117
+ %
118
+ % Our baseline is a plain HTTP server. No HTTPS involved here. We
119
+ % give it for the case you want to do timing and other experiments
120
+ % comparing the HTTP with HTTPS.
121
+
122
+ http_server(Port) :-
123
+ http_server(reply,
124
+ [ port(Port)
125
+ ]).
126
+
127
+
128
+ %! https_server(?Port) is det.
129
+ %
130
+ % Start an HTTPS demo server at Port. Compared to a normal HTTP
131
+ % server, this requires two additional SSL components:
132
+ %
133
+ % 1. The server certificate. This is basically a public
134
+ % key, so there is no need to keep this secret.
135
+ % 2. The server private key. If someone manages to grab
136
+ % this key, he can setup a server that claims to be you.
137
+ % There are two ways to protect it. One is to make sure
138
+ % the file cannot be obtained and the other is to protect
139
+ % it using a password and make sure that the password is
140
+ % kept secret. Our server uses a password, but it is not
141
+ % very secret. See also the `pem_password_hook` option
142
+ % of ssl_context/3.
143
+ %
144
+ % Note that anyone can access this server. You can implement HTTP
145
+ % authentication or cookie based password login in the application
146
+ % to realise a safe login procedure where attackers cannot easily
147
+ % steal the HTTP authentication token or cookie.
148
+
149
+ https_server(Port) :-
150
+ http_server(reply,
151
+ [ port(Port),
152
+ ssl([ certificate_file('etc/server/server-cert.pem'),
153
+ key_file('etc/server/server-key.pem'),
154
+ password("apenoot1")
155
+ ])
156
+ ]).
157
+
158
+
159
+ %! https_server_with_client_cert(?Port)
160
+ %
161
+ % Our second server is a setup that is typically used for
162
+ % administrative tasks where users are handed a certificate to
163
+ % login. In our example, we use the client certificate and private
164
+ % key that can be found in etc/client. First of all, we need to
165
+ % combine these into a `.p12` (PKCS12) file. This is done using
166
+ % `openssl` as below. We provide the .p12 file for your
167
+ % convenience.
168
+ %
169
+ % ==
170
+ % $ openssl pkcs12 -export \
171
+ % -inkey client-key.pem -in client-cert.pem \
172
+ % -name jan -out client-cert.p12
173
+ % Enter pass phrase for client-key.pem: apenoot2
174
+ % Enter Export Password: secret
175
+ % ==
176
+ %
177
+ % Next, import `client-cert.p12` into your browser. For firefox,
178
+ % this is in Edit/Preference/Advanced/View Certificates/Import.
179
+ % When requested for the password, enter "secret".
180
+
181
+ https_server_with_client_cert(Port) :-
182
+ http_server(reply,
183
+ [ port(Port),
184
+ ssl([ certificate_file('etc/server/server-cert.pem'),
185
+ key_file('etc/server/server-key.pem'),
186
+ password("apenoot1"),
187
+ peer_cert(true),
188
+ cacert_file('etc/demoCA/cacert.pem'),
189
+ cert_verify_hook(client_cert_verify)
190
+ ])
191
+ ]).
192
+
193
+ %! client_cert_verify(+SSL,
194
+ %! +ProblemCert, +AllCerts, +FirstCer,
195
+ %! +Error) is semidet.
196
+ %
197
+ % This hook is called for validating the peer certificate. The
198
+ % certificate has already been validated against the known _root
199
+ % certificates_ and Error either contains `verified` to indicate
200
+ % that this part of the validation was successful or a message
201
+ % from OpenSSL indicating why it did not verify. The certificate
202
+ % is accepted if this hook succeeds, regardless of the initial
203
+ % verification. If this hook is not defined, certificates that
204
+ % verify against the root certificates are accepted and others are
205
+ % rejected, i.e., the default implementation behaves as `Error ==
206
+ % verified`.
207
+
208
+ % :- debug(cert_verify_hook).
209
+
210
+ :- public
211
+ client_cert_verify/5.
212
+
213
+ client_cert_verify(_SSL, _Problem, _AllCerts, First, Error) :-
214
+ debug(cert_verify_hook,
215
+ 'Handling client certificate verification~n\c
216
+ Certificate: ~p, error: ~w~n', [First, Error]).
217
+
218
+
219
+ /*******************************
220
+ * CLIENTS *
221
+ *******************************/
222
+
223
+ :- use_module(library(http/http_open)).
224
+
225
+ %! http_client(+Port, +Page) is det.
226
+ %
227
+ % Access the server created with http_server/1. Note that the only
228
+ % significant difference to https_client/2 is the URL scheme
229
+ % (`http` vs. `https`.
230
+
231
+ http_client(Port, Page) :-
232
+ format(atom(URL), 'http://localhost:~d~w', [Port, Page]),
233
+ http_open(URL, In,
234
+ [
235
+ ]),
236
+ copy_stream_data(In, current_output),
237
+ close(In).
238
+
239
+ %! https_client(+Port, +Page) is det.
240
+ %
241
+ % Access the server created with https_server/1. Note that, as we
242
+ % are using a self-signed certificate, we pass our own root
243
+ % certificate instead of using the system one.
244
+
245
+ https_client(Port, Page) :-
246
+ format(atom(URL), 'https://localhost:~d~w', [Port, Page]),
247
+ http_open(URL, In,
248
+ [ cacert_file('etc/demoCA/cacert.pem')
249
+ ]),
250
+ copy_stream_data(In, current_output),
251
+ close(In).
252
+
253
+ %! https_client_with_client_cert(+Port, +Page) is det.
254
+ %
255
+ % Access the server created with https_server_with_client_cert/1,
256
+ % providing our client certificate.
257
+
258
+ https_client_with_client_cert(Port, Page) :-
259
+ format(atom(URL), 'https://localhost:~d~w', [Port, Page]),
260
+ http_open(URL, In,
261
+ [ cacert_file('etc/demoCA/cacert.pem'),
262
+ certificate_file('etc/client/client-cert.pem'),
263
+ key_file('etc/client/client-key.pem'),
264
+ password('apenoot2')
265
+ ]),
266
+ copy_stream_data(In, current_output),
267
+ close(In).
@@ -0,0 +1,106 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan van der Steen and Jan Wielemaker
4
+ E-mail: J.van.der.Steen@diff.nl and jan@swi.psy.uva.nl
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 2004-2011, SWI-Prolog Foundation
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions
11
+ are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright
14
+ notice, this list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright
17
+ notice, this list of conditions and the following disclaimer in
18
+ the documentation and/or other materials provided with the
19
+ distribution.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+
35
+ :- module(server,
36
+ [ server/0
37
+ ]).
38
+ :- use_module(library(debug),[debug/1,debug/3]).
39
+ :- autoload(library(readutil),[read_line_to_codes/2]).
40
+ :- autoload(library(socket),
41
+ [ tcp_socket/1,
42
+ tcp_setopt/2,
43
+ tcp_bind/2,
44
+ tcp_listen/2,
45
+ tcp_accept/3,
46
+ tcp_open_socket/3,
47
+ tcp_close_socket/1
48
+ ]).
49
+ :- autoload(library(ssl),[ssl_context/3,ssl_negotiate/5]).
50
+
51
+ :- debug(connection).
52
+
53
+ server :-
54
+ ssl_context(server, SSL,
55
+ [ peer_cert(true),
56
+ cacert_file('etc/demoCA/cacert.pem'),
57
+ certificate_file('etc/server/server-cert.pem'),
58
+ key_file('etc/server/server-key.pem'),
59
+ cert_verify_hook(get_cert_verify),
60
+ close_notify(true),
61
+ % password('apenoot1'),
62
+ pem_password_hook(get_server_pwd)
63
+ ]),
64
+ Port = 1111,
65
+ tcp_socket(Socket),
66
+ tcp_setopt(Socket, reuseaddr),
67
+ tcp_bind(Socket, localhost:Port),
68
+ tcp_listen(Socket, 5),
69
+ thread_create(server_loop(SSL, Socket), _, []).
70
+
71
+ server_loop(SSL, Server) :-
72
+ tcp_accept(Server, Socket, Peer),
73
+ debug(connection, 'Connection from ~p', [Peer]),
74
+ setup_call_cleanup(tcp_open_socket(Socket, Read, Write),
75
+ handle_client(SSL, Read, Write),
76
+ tcp_close_socket(Socket)),
77
+ server_loop(SSL, Server).
78
+
79
+ handle_client(SSL, Read, Write) :-
80
+ catch(ssl_negotiate(SSL, Read, Write, SSLRead, SSLWrite),
81
+ Exception,
82
+ true),
83
+ ( nonvar(Exception)
84
+ -> format("Exception during negotation: ~w~n", [Exception])
85
+ ; copy_client(SSLRead, SSLWrite),
86
+ call_cleanup(close(SSLRead), close(SSLWrite))
87
+ ).
88
+
89
+ copy_client(In, Out) :-
90
+ read_line_to_codes(In, Line),
91
+ ( Line == end_of_file
92
+ -> true
93
+ ; format('Got ~s~n', [Line]),
94
+ format(Out, '~s~n', [Line]),
95
+ flush_output(Out),
96
+ copy_client(In, Out)
97
+ ).
98
+
99
+ get_server_pwd(_SSL, apenoot1) :-
100
+ format('Returning password from server passwd hook~n').
101
+
102
+ get_cert_verify(_SSL, Certificate, _AllCerts, _FirstCert, Error) :-
103
+ format('Handling detailed certificate verification~n'),
104
+ format('Certificate: ~w, error: ~w~n', [Certificate, Error]),
105
+ format('Server accepts the client certificate~n').
106
+