javonet-nodejs-sdk 2.0.4 → 2.0.5

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 (323) hide show
  1. package/Binaries/Cpp/Windows/X64/JavonetCppRuntime.dll +0 -0
  2. package/Binaries/Go/Windows/X64/JavonetGoRuntime.dll +0 -0
  3. package/Binaries/Jvm/Linux/X64/JavonetJvmRuntime.jar +0 -0
  4. package/Binaries/Jvm/MacOs/X64/JavonetJvmRuntime.jar +0 -0
  5. package/Binaries/Jvm/Windows/X64/JavonetJvmRuntime.jar +0 -0
  6. package/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  7. package/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  8. package/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  9. package/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  10. package/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  11. package/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  12. package/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  13. package/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  14. package/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  15. package/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  16. package/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  17. package/Binaries/Native/Windows/X64/Utils.dll +0 -0
  18. package/Binaries/Nodejs/MacOs/X64/JavonetNodejsRuntimeAddon.node +0 -0
  19. package/Binaries/Nodejs/Windows/X64/JavonetNodejsRuntimeAddon.node +0 -0
  20. package/Binaries/Perl/Linux/X64/deps/lib/perl5/Package/DeprecationManager.pm +45 -38
  21. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Alien-Build-2.77/install.json +1 -1
  22. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Alien-Build-Plugin-Download-GitHub-0.10/install.json +1 -1
  23. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Alien-FFI-0.27/install.json +1 -1
  24. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Attribute-Util-1.07/install.json +1 -1
  25. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Capture-Tiny-0.48/install.json +1 -1
  26. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Data-Inheritable-0.09/install.json +1 -1
  27. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Load-0.25/install.json +1 -1
  28. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Load-XS-0.10/install.json +1 -1
  29. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Clone-0.46/install.json +1 -1
  30. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-Cmp-0.010/install.json +1 -1
  31. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-OptList-0.113/install.json +1 -1
  32. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-UUID-1.226/install.json +1 -1
  33. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-GlobalDestruction-0.14/install.json +1 -1
  34. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-OverloadInfo-0.007/install.json +1 -1
  35. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-StackTrace-2.04/install.json +1 -1
  36. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Dist-CheckConflicts-0.11/install.json +1 -1
  37. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Eval-Closure-0.14/install.json +1 -1
  38. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-Config-0.008/install.json +1 -1
  39. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-Helpers-0.026/install.json +1 -1
  40. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-InstallPaths-0.012/install.json +1 -1
  41. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/FFI-CheckLib-0.31/install.json +1 -1
  42. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/FFI-Platypus-2.05/install.json +1 -1
  43. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/File-Listing-6.15/install.json +1 -1
  44. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/File-Which-1.27/install.json +1 -1
  45. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/File-chdir-0.1011/install.json +1 -1
  46. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/HTTP-Cookies-6.10/install.json +1 -1
  47. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/HTTP-Negotiate-6.01/install.json +1 -1
  48. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/IPC-System-Simple-1.30/install.json +1 -1
  49. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/MRO-Compat-0.15/install.json +1 -1
  50. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Build-0.4232/install.json +1 -1
  51. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Build-Tiny-0.039/install.json +1 -1
  52. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Implementation-0.09/install.json +1 -1
  53. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Runtime-0.016/install.json +1 -1
  54. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Runtime-Conflicts-0.003/install.json +1 -1
  55. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Moose-2.2203/install.json +1 -1
  56. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Net-HTTP-6.22/install.json +1 -1
  57. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Nice-Try-v1.3.3/install.json +1 -1
  58. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/PPI-1.276/install.json +1 -1
  59. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/PPI-XS-0.910/install.json +1 -1
  60. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/{Package-DeprecationManager-0.17 → Package-DeprecationManager-0.18}/MYMETA.json +298 -181
  61. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-DeprecationManager-0.18/install.json +1 -0
  62. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-Stash-0.40/install.json +1 -1
  63. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-Stash-XS-0.30/install.json +1 -1
  64. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Params-Util-1.102/install.json +1 -1
  65. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Path-Tiny-0.144/install.json +1 -1
  66. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-List-Utils-1.63/install.json +1 -1
  67. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  68. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scope-Guard-0.21/install.json +1 -1
  69. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Exporter-0.989/install.json +1 -1
  70. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Exporter-Progressive-0.001013/install.json +1 -1
  71. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Install-0.929/install.json +1 -1
  72. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Task-Weaken-1.06/install.json +1 -1
  73. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Test-Fatal-0.017/install.json +1 -1
  74. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Try-Tiny-0.31/install.json +1 -1
  75. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/WWW-RobotRules-6.02/install.json +1 -1
  76. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Want-0.29/install.json +1 -1
  77. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/YAML-1.30/install.json +1 -1
  78. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/aliased-0.34/install.json +1 -1
  79. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/autobox-v3.0.1/install.json +1 -1
  80. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/libwww-perl-6.67/install.json +1 -1
  81. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  82. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  83. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  84. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  85. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  86. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  87. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  88. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  89. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  90. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  91. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/probe/bin/dlrun +0 -0
  92. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +114 -136
  93. package/Binaries/Perl/MacOs/X64/deps/bin/pkg-config.pl +1786 -0
  94. package/Binaries/Perl/MacOs/X64/deps/bin/ppkg-config +1786 -0
  95. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/IO/Socket/SSL/Intercept.pm +379 -0
  96. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/IO/Socket/SSL/PublicSuffix.pm +14537 -0
  97. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/IO/Socket/SSL/Utils.pm +792 -0
  98. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/IO/Socket/SSL.pm +3701 -0
  99. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/IO/Socket/SSL.pod +2241 -0
  100. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mojo/DOM58/Entities.pm +2378 -0
  101. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mojo/DOM58/_CSS.pm +409 -0
  102. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mojo/DOM58/_Collection.pm +172 -0
  103. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mojo/DOM58/_HTML.pm +337 -0
  104. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mojo/DOM58.pm +1784 -0
  105. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mozilla/CA/cacert.pem +3506 -0
  106. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Mozilla/CA.pm +71 -0
  107. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/Package/DeprecationManager.pm +45 -38
  108. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/PkgConfig.pm +1786 -0
  109. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Alien-Build-2.77/MYMETA.json +1 -0
  110. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Alien-Build-2.77/install.json +1 -1
  111. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Alien-Build-Plugin-Download-GitHub-0.10/install.json +1 -1
  112. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Alien-FFI-0.27/MYMETA.json +12 -1
  113. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Alien-FFI-0.27/install.json +1 -1
  114. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Attribute-Util-1.07/install.json +1 -1
  115. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Capture-Tiny-0.48/install.json +1 -1
  116. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Class-Data-Inheritable-0.09/install.json +1 -1
  117. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Class-Load-0.25/install.json +1 -1
  118. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Class-Load-XS-0.10/install.json +1 -1
  119. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Clone-0.46/install.json +1 -1
  120. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Data-Cmp-0.010/install.json +1 -1
  121. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Data-OptList-0.113/install.json +1 -1
  122. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Data-UUID-1.226/install.json +1 -1
  123. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Devel-GlobalDestruction-0.14/install.json +1 -1
  124. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Devel-OverloadInfo-0.007/install.json +1 -1
  125. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Devel-StackTrace-2.04/install.json +1 -1
  126. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Dist-CheckConflicts-0.11/install.json +1 -1
  127. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Encode-Locale-1.05/install.json +1 -1
  128. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Eval-Closure-0.14/install.json +1 -1
  129. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/ExtUtils-Config-0.008/install.json +1 -1
  130. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/ExtUtils-Helpers-0.026/install.json +1 -1
  131. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/ExtUtils-InstallPaths-0.012/install.json +1 -1
  132. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/FFI-CheckLib-0.31/install.json +1 -1
  133. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/FFI-Platypus-2.05/MYMETA.json +1 -0
  134. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/FFI-Platypus-2.05/install.json +1 -1
  135. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/File-Listing-6.15/install.json +1 -1
  136. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/File-Which-1.27/install.json +1 -1
  137. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/File-chdir-0.1011/install.json +1 -1
  138. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/HTML-Parser-3.81/install.json +1 -1
  139. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/HTML-Tagset-3.20/install.json +1 -1
  140. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/HTTP-Cookies-6.10/install.json +1 -1
  141. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/HTTP-Date-6.05/install.json +1 -1
  142. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/HTTP-Message-6.44/install.json +1 -1
  143. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/HTTP-Negotiate-6.01/install.json +1 -1
  144. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/IO-HTML-1.004/install.json +1 -1
  145. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/IO-Socket-SSL-2.081/MYMETA.json +57 -0
  146. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/IO-Socket-SSL-2.081/install.json +1 -0
  147. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/IPC-System-Simple-1.30/install.json +1 -1
  148. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/LWP-MediaTypes-6.04/install.json +1 -1
  149. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/MRO-Compat-0.15/install.json +1 -1
  150. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Module-Build-0.4232/install.json +1 -1
  151. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Module-Build-Tiny-0.039/install.json +1 -1
  152. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Module-Implementation-0.09/install.json +1 -1
  153. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Module-Runtime-0.016/install.json +1 -1
  154. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Module-Runtime-Conflicts-0.003/install.json +1 -1
  155. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Mojo-DOM58-3.001/MYMETA.json +107 -0
  156. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Mojo-DOM58-3.001/install.json +1 -0
  157. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Moose-2.2203/install.json +1 -1
  158. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Mozilla-CA-20221114/MYMETA.json +61 -0
  159. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Mozilla-CA-20221114/install.json +1 -0
  160. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Net-HTTP-6.22/install.json +1 -1
  161. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Net-SSLeay-1.92/MYMETA.json +87 -0
  162. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Net-SSLeay-1.92/install.json +1 -0
  163. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Nice-Try-v1.3.3/install.json +1 -1
  164. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/PPI-1.276/install.json +1 -1
  165. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/PPI-XS-0.910/install.json +1 -1
  166. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/{Package-DeprecationManager-0.17 → Package-DeprecationManager-0.18}/MYMETA.json +298 -181
  167. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Package-DeprecationManager-0.18/install.json +1 -0
  168. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Package-Stash-0.40/install.json +1 -1
  169. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Package-Stash-XS-0.30/install.json +1 -1
  170. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Params-Util-1.102/install.json +1 -1
  171. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Path-Tiny-0.144/install.json +1 -1
  172. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/PkgConfig-0.25026/MYMETA.json +61 -0
  173. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/PkgConfig-0.25026/install.json +1 -0
  174. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  175. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Scope-Guard-0.21/install.json +1 -1
  176. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Sub-Exporter-0.989/install.json +1 -1
  177. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Sub-Exporter-Progressive-0.001013/install.json +1 -1
  178. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Sub-Install-0.929/install.json +1 -1
  179. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Task-Weaken-1.06/install.json +1 -1
  180. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Test-Fatal-0.017/install.json +1 -1
  181. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/TimeDate-2.33/install.json +1 -1
  182. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Try-Tiny-0.31/install.json +1 -1
  183. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/URI-5.17/install.json +1 -1
  184. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/WWW-RobotRules-6.02/install.json +1 -1
  185. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Want-0.29/install.json +1 -1
  186. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/YAML-1.30/install.json +1 -1
  187. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/aliased-0.34/install.json +1 -1
  188. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/autobox-v3.0.1/install.json +1 -1
  189. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/libwww-perl-6.67/install.json +1 -1
  190. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/Net/SSLeay/Handle.pm +409 -0
  191. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/Net/SSLeay.pm +1905 -0
  192. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/Net/SSLeay.pod +10434 -0
  193. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Alien/FFI/.packlist +11 -0
  194. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/FFI/Platypus/Platypus.bundle +0 -0
  195. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/IO/Socket/SSL/.packlist +9 -0
  196. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Mojo/DOM58/.packlist +7 -0
  197. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Mozilla/CA/.packlist +3 -0
  198. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/.packlist +82 -0
  199. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/SSLeay.bundle +0 -0
  200. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/autosplit.ix +80 -0
  201. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/debug_read.al +22 -0
  202. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_https.al +19 -0
  203. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_https2.al +13 -0
  204. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_https3.al +13 -0
  205. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_https4.al +12 -0
  206. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_httpx2.al +18 -0
  207. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_httpx3.al +43 -0
  208. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/do_httpx4.al +18 -0
  209. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/dump_peer_certificate.al +29 -0
  210. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_http.al +9 -0
  211. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_http3.al +9 -0
  212. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_http4.al +9 -0
  213. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_https.al +9 -0
  214. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_https3.al +9 -0
  215. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_https4.al +9 -0
  216. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_httpx.al +9 -0
  217. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_httpx3.al +9 -0
  218. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/get_httpx4.al +9 -0
  219. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_http.al +10 -0
  220. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_http3.al +10 -0
  221. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_http4.al +12 -0
  222. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_https.al +10 -0
  223. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_https3.al +10 -0
  224. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_https4.al +12 -0
  225. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_httpx.al +10 -0
  226. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_httpx3.al +10 -0
  227. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/head_httpx4.al +13 -0
  228. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/http_cat.al +34 -0
  229. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/https_cat.al +95 -0
  230. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/httpx_cat.al +18 -0
  231. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/initialize.al +27 -0
  232. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/make_form.al +25 -0
  233. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/make_headers.al +21 -0
  234. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/new_x_ctx.al +51 -0
  235. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/open_proxy_tcp_connection.al +31 -0
  236. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/open_tcp_connection.al +40 -0
  237. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_http.al +9 -0
  238. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_http3.al +9 -0
  239. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_http4.al +9 -0
  240. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_https.al +9 -0
  241. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_https3.al +9 -0
  242. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_https4.al +9 -0
  243. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_httpx.al +9 -0
  244. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_httpx3.al +9 -0
  245. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/post_httpx4.al +9 -0
  246. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_http.al +9 -0
  247. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_http3.al +9 -0
  248. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_http4.al +9 -0
  249. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_https.al +9 -0
  250. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_https3.al +9 -0
  251. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_https4.al +9 -0
  252. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_httpx.al +9 -0
  253. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_httpx3.al +9 -0
  254. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/put_httpx4.al +9 -0
  255. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/randomize.al +31 -0
  256. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/set_cert_and_key.al +23 -0
  257. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/set_proxy.al +17 -0
  258. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/set_server_cert_and_key.al +14 -0
  259. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/ssl_read_CRLF.al +10 -0
  260. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/ssl_read_all.al +36 -0
  261. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/ssl_read_until.al +94 -0
  262. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/ssl_write_CRLF.al +23 -0
  263. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/ssl_write_all.al +149 -0
  264. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/sslcat.al +98 -0
  265. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcp_read_CRLF.al +11 -0
  266. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcp_read_all.al +26 -0
  267. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcp_read_until.al +33 -0
  268. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcp_write_CRLF.al +23 -0
  269. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcp_write_all.al +36 -0
  270. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcpcat.al +37 -0
  271. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/tcpxcat.al +17 -0
  272. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/want_X509_lookup.al +15 -0
  273. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/want_nothing.al +11 -0
  274. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/want_read.al +9 -0
  275. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Net/SSLeay/want_write.al +9 -0
  276. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/PkgConfig/.packlist +6 -0
  277. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/_alien/alien.json +9 -8
  278. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/include/ffi.h +531 -0
  279. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/include/ffitarget.h +164 -0
  280. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/lib/libffi.a +0 -0
  281. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/lib/libffi.la +41 -0
  282. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/lib/pkgconfig/libffi.pc +11 -0
  283. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/share/info/dir +18 -0
  284. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/share/info/libffi.info +1060 -0
  285. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/share/man/man3/ffi.3 +41 -0
  286. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/share/man/man3/ffi_call.3 +103 -0
  287. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/share/man/man3/ffi_prep_cif.3 +68 -0
  288. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/Alien-FFI/share/man/man3/ffi_prep_cif_var.3 +73 -0
  289. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/share/dist/FFI-Platypus/lib/libplfill.dylib +0 -0
  290. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/perllocal.pod +216 -128
  291. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Alien-Build-2.77/install.json +1 -1
  292. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Alien-Build-Plugin-Download-GitHub-0.10/install.json +1 -1
  293. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Alien-FFI-0.27/install.json +1 -1
  294. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Attribute-Util-1.07/install.json +1 -1
  295. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-Cmp-0.010/install.json +1 -1
  296. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.226/install.json +1 -1
  297. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Nice-Try-v1.3.3/install.json +1 -1
  298. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/PPI-1.276/install.json +1 -1
  299. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/PPI-XS-0.910/install.json +1 -1
  300. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  301. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Want-0.29/install.json +1 -1
  302. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/autobox-v3.0.1/install.json +1 -1
  303. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  304. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  305. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  306. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  307. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  308. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +23 -23
  309. package/addon/JavonetNodejsRuntimeAddon.cpp +42 -15
  310. package/addon/JavonetNodejsRuntimeAddon.h +1 -0
  311. package/package.json +5 -4
  312. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-DeprecationManager-0.17/install.json +0 -1
  313. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Name-0.26/MYMETA.json +0 -1394
  314. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Name-0.26/install.json +0 -1
  315. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/Sub/Name.pm +0 -202
  316. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Sub/Name/.packlist +0 -3
  317. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Sub/Name/Name.so +0 -0
  318. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Package-DeprecationManager-0.17/install.json +0 -1
  319. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Sub-Name-0.26/MYMETA.json +0 -1394
  320. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/.meta/Sub-Name-0.26/install.json +0 -1
  321. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/Sub/Name.pm +0 -202
  322. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Sub/Name/.packlist +0 -3
  323. package/Binaries/Perl/MacOs/X64/deps/lib/perl5/darwin-thread-multi-2level/auto/Sub/Name/Name.bundle +0 -0
@@ -0,0 +1,1905 @@
1
+ # Net::SSLeay.pm - Perl module for using Eric Young's implementation of SSL
2
+ #
3
+ # Copyright (c) 1996-2003 Sampo Kellomäki <sampo@iki.fi>
4
+ # Copyright (c) 2005-2010 Florian Ragwitz <rafl@debian.org>
5
+ # Copyright (c) 2005-2018 Mike McCauley <mikem@airspayce.com>
6
+ # Copyright (c) 2018- Chris Novakovic <chris@chrisn.me.uk>
7
+ # Copyright (c) 2018- Tuure Vartiainen <vartiait@radiatorsoftware.com>
8
+ # Copyright (c) 2018- Heikki Vatiainen <hvn@radiatorsoftware.com>
9
+ #
10
+ # All rights reserved.
11
+ #
12
+ # This module is released under the terms of the Artistic License 2.0. For
13
+ # details, see the LICENSE file distributed with Net-SSLeay's source code.
14
+
15
+ package Net::SSLeay;
16
+
17
+ use 5.8.1;
18
+
19
+ use strict;
20
+ use Carp;
21
+ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD $CRLF);
22
+ use Socket;
23
+ use Errno;
24
+
25
+ require Exporter;
26
+ use AutoLoader;
27
+
28
+ # 0=no warns, 1=only errors, 2=ciphers, 3=progress, 4=dump data
29
+ $Net::SSLeay::trace = 0; # Do not change here, use
30
+ # $Net::SSLeay::trace = [1-4] in caller
31
+
32
+ # 2 = insist on v2 SSL protocol
33
+ # 3 = insist on v3 SSL
34
+ # 10 = insist on TLSv1
35
+ # 11 = insist on TLSv1.1
36
+ # 12 = insist on TLSv1.2
37
+ # 13 = insist on TLSv1.3
38
+ # 0 or undef = guess (v23)
39
+ #
40
+ $Net::SSLeay::ssl_version = 0; # don't change here, use
41
+ # Net::SSLeay::version=[2,3,0] in caller
42
+
43
+ #define to enable the "cat /proc/$$/stat" stuff
44
+ $Net::SSLeay::linux_debug = 0;
45
+
46
+ # Number of seconds to sleep after sending message and before half
47
+ # closing connection. Useful with antiquated broken servers.
48
+ $Net::SSLeay::slowly = 0;
49
+
50
+ # RANDOM NUMBER INITIALIZATION
51
+ #
52
+ # Edit to your taste. Using /dev/random would be more secure, but may
53
+ # block if randomness is not available, thus the default is
54
+ # /dev/urandom. $how_random determines how many bits of randomness to take
55
+ # from the device. You should take enough (read SSLeay/doc/rand), but
56
+ # beware that randomness is limited resource so you should not waste
57
+ # it either or you may end up with randomness depletion (situation where
58
+ # /dev/random would block and /dev/urandom starts to return predictable
59
+ # numbers).
60
+ #
61
+ # N.B. /dev/urandom does not exist on all systems, such as Solaris 2.6. In that
62
+ # case you should get a third party package that emulates /dev/urandom
63
+ # (e.g. via named pipe) or supply a random number file. Some such
64
+ # packages are documented in Caveat section of the POD documentation.
65
+
66
+ $Net::SSLeay::random_device = '/dev/urandom';
67
+ $Net::SSLeay::how_random = 512;
68
+
69
+ # When updating this, also update $VERSION in the following files:
70
+ # inc/Test/Net/SSLeay.pm
71
+ # inc/Test/Net/SSLeay/Socket.pm
72
+ # lib/Net/SSLeay/Handle.pm
73
+ $VERSION = '1.92';
74
+
75
+ @ISA = qw(Exporter);
76
+
77
+ # This array is automatically generated - do not manually modify it.
78
+ # To add or remove a constant, edit helper_script/constants.txt, then run
79
+ # helper_script/update-exported-constants.
80
+ my @constants = qw(
81
+ ASN1_STRFLGS_ESC_CTRL
82
+ ASN1_STRFLGS_ESC_MSB
83
+ ASN1_STRFLGS_ESC_QUOTE
84
+ ASN1_STRFLGS_RFC2253
85
+ CB_ACCEPT_EXIT
86
+ CB_ACCEPT_LOOP
87
+ CB_ALERT
88
+ CB_CONNECT_EXIT
89
+ CB_CONNECT_LOOP
90
+ CB_EXIT
91
+ CB_HANDSHAKE_DONE
92
+ CB_HANDSHAKE_START
93
+ CB_LOOP
94
+ CB_READ
95
+ CB_READ_ALERT
96
+ CB_WRITE
97
+ CB_WRITE_ALERT
98
+ ERROR_NONE
99
+ ERROR_SSL
100
+ ERROR_SYSCALL
101
+ ERROR_WANT_ACCEPT
102
+ ERROR_WANT_CONNECT
103
+ ERROR_WANT_READ
104
+ ERROR_WANT_WRITE
105
+ ERROR_WANT_X509_LOOKUP
106
+ ERROR_ZERO_RETURN
107
+ EVP_PKS_DSA
108
+ EVP_PKS_EC
109
+ EVP_PKS_RSA
110
+ EVP_PKT_ENC
111
+ EVP_PKT_EXCH
112
+ EVP_PKT_EXP
113
+ EVP_PKT_SIGN
114
+ EVP_PK_DH
115
+ EVP_PK_DSA
116
+ EVP_PK_EC
117
+ EVP_PK_RSA
118
+ FILETYPE_ASN1
119
+ FILETYPE_PEM
120
+ F_CLIENT_CERTIFICATE
121
+ F_CLIENT_HELLO
122
+ F_CLIENT_MASTER_KEY
123
+ F_D2I_SSL_SESSION
124
+ F_GET_CLIENT_FINISHED
125
+ F_GET_CLIENT_HELLO
126
+ F_GET_CLIENT_MASTER_KEY
127
+ F_GET_SERVER_FINISHED
128
+ F_GET_SERVER_HELLO
129
+ F_GET_SERVER_VERIFY
130
+ F_I2D_SSL_SESSION
131
+ F_READ_N
132
+ F_REQUEST_CERTIFICATE
133
+ F_SERVER_HELLO
134
+ F_SSL_CERT_NEW
135
+ F_SSL_GET_NEW_SESSION
136
+ F_SSL_NEW
137
+ F_SSL_READ
138
+ F_SSL_RSA_PRIVATE_DECRYPT
139
+ F_SSL_RSA_PUBLIC_ENCRYPT
140
+ F_SSL_SESSION_NEW
141
+ F_SSL_SESSION_PRINT_FP
142
+ F_SSL_SET_FD
143
+ F_SSL_SET_RFD
144
+ F_SSL_SET_WFD
145
+ F_SSL_USE_CERTIFICATE
146
+ F_SSL_USE_CERTIFICATE_ASN1
147
+ F_SSL_USE_CERTIFICATE_FILE
148
+ F_SSL_USE_PRIVATEKEY
149
+ F_SSL_USE_PRIVATEKEY_ASN1
150
+ F_SSL_USE_PRIVATEKEY_FILE
151
+ F_SSL_USE_RSAPRIVATEKEY
152
+ F_SSL_USE_RSAPRIVATEKEY_ASN1
153
+ F_SSL_USE_RSAPRIVATEKEY_FILE
154
+ F_WRITE_PENDING
155
+ GEN_DIRNAME
156
+ GEN_DNS
157
+ GEN_EDIPARTY
158
+ GEN_EMAIL
159
+ GEN_IPADD
160
+ GEN_OTHERNAME
161
+ GEN_RID
162
+ GEN_URI
163
+ GEN_X400
164
+ LIBRESSL_VERSION_NUMBER
165
+ MBSTRING_ASC
166
+ MBSTRING_BMP
167
+ MBSTRING_FLAG
168
+ MBSTRING_UNIV
169
+ MBSTRING_UTF8
170
+ MIN_RSA_MODULUS_LENGTH_IN_BYTES
171
+ MODE_ACCEPT_MOVING_WRITE_BUFFER
172
+ MODE_AUTO_RETRY
173
+ MODE_ENABLE_PARTIAL_WRITE
174
+ MODE_RELEASE_BUFFERS
175
+ NID_OCSP_sign
176
+ NID_SMIMECapabilities
177
+ NID_X500
178
+ NID_X509
179
+ NID_ad_OCSP
180
+ NID_ad_ca_issuers
181
+ NID_algorithm
182
+ NID_authority_key_identifier
183
+ NID_basic_constraints
184
+ NID_bf_cbc
185
+ NID_bf_cfb64
186
+ NID_bf_ecb
187
+ NID_bf_ofb64
188
+ NID_cast5_cbc
189
+ NID_cast5_cfb64
190
+ NID_cast5_ecb
191
+ NID_cast5_ofb64
192
+ NID_certBag
193
+ NID_certificate_policies
194
+ NID_client_auth
195
+ NID_code_sign
196
+ NID_commonName
197
+ NID_countryName
198
+ NID_crlBag
199
+ NID_crl_distribution_points
200
+ NID_crl_number
201
+ NID_crl_reason
202
+ NID_delta_crl
203
+ NID_des_cbc
204
+ NID_des_cfb64
205
+ NID_des_ecb
206
+ NID_des_ede
207
+ NID_des_ede3
208
+ NID_des_ede3_cbc
209
+ NID_des_ede3_cfb64
210
+ NID_des_ede3_ofb64
211
+ NID_des_ede_cbc
212
+ NID_des_ede_cfb64
213
+ NID_des_ede_ofb64
214
+ NID_des_ofb64
215
+ NID_description
216
+ NID_desx_cbc
217
+ NID_dhKeyAgreement
218
+ NID_dnQualifier
219
+ NID_dsa
220
+ NID_dsaWithSHA
221
+ NID_dsaWithSHA1
222
+ NID_dsaWithSHA1_2
223
+ NID_dsa_2
224
+ NID_email_protect
225
+ NID_ext_key_usage
226
+ NID_ext_req
227
+ NID_friendlyName
228
+ NID_givenName
229
+ NID_hmacWithSHA1
230
+ NID_id_ad
231
+ NID_id_ce
232
+ NID_id_kp
233
+ NID_id_pbkdf2
234
+ NID_id_pe
235
+ NID_id_pkix
236
+ NID_id_qt_cps
237
+ NID_id_qt_unotice
238
+ NID_idea_cbc
239
+ NID_idea_cfb64
240
+ NID_idea_ecb
241
+ NID_idea_ofb64
242
+ NID_info_access
243
+ NID_initials
244
+ NID_invalidity_date
245
+ NID_issuer_alt_name
246
+ NID_keyBag
247
+ NID_key_usage
248
+ NID_localKeyID
249
+ NID_localityName
250
+ NID_md2
251
+ NID_md2WithRSAEncryption
252
+ NID_md5
253
+ NID_md5WithRSA
254
+ NID_md5WithRSAEncryption
255
+ NID_md5_sha1
256
+ NID_mdc2
257
+ NID_mdc2WithRSA
258
+ NID_ms_code_com
259
+ NID_ms_code_ind
260
+ NID_ms_ctl_sign
261
+ NID_ms_efs
262
+ NID_ms_ext_req
263
+ NID_ms_sgc
264
+ NID_name
265
+ NID_netscape
266
+ NID_netscape_base_url
267
+ NID_netscape_ca_policy_url
268
+ NID_netscape_ca_revocation_url
269
+ NID_netscape_cert_extension
270
+ NID_netscape_cert_sequence
271
+ NID_netscape_cert_type
272
+ NID_netscape_comment
273
+ NID_netscape_data_type
274
+ NID_netscape_renewal_url
275
+ NID_netscape_revocation_url
276
+ NID_netscape_ssl_server_name
277
+ NID_ns_sgc
278
+ NID_organizationName
279
+ NID_organizationalUnitName
280
+ NID_pbeWithMD2AndDES_CBC
281
+ NID_pbeWithMD2AndRC2_CBC
282
+ NID_pbeWithMD5AndCast5_CBC
283
+ NID_pbeWithMD5AndDES_CBC
284
+ NID_pbeWithMD5AndRC2_CBC
285
+ NID_pbeWithSHA1AndDES_CBC
286
+ NID_pbeWithSHA1AndRC2_CBC
287
+ NID_pbe_WithSHA1And128BitRC2_CBC
288
+ NID_pbe_WithSHA1And128BitRC4
289
+ NID_pbe_WithSHA1And2_Key_TripleDES_CBC
290
+ NID_pbe_WithSHA1And3_Key_TripleDES_CBC
291
+ NID_pbe_WithSHA1And40BitRC2_CBC
292
+ NID_pbe_WithSHA1And40BitRC4
293
+ NID_pbes2
294
+ NID_pbmac1
295
+ NID_pkcs
296
+ NID_pkcs3
297
+ NID_pkcs7
298
+ NID_pkcs7_data
299
+ NID_pkcs7_digest
300
+ NID_pkcs7_encrypted
301
+ NID_pkcs7_enveloped
302
+ NID_pkcs7_signed
303
+ NID_pkcs7_signedAndEnveloped
304
+ NID_pkcs8ShroudedKeyBag
305
+ NID_pkcs9
306
+ NID_pkcs9_challengePassword
307
+ NID_pkcs9_contentType
308
+ NID_pkcs9_countersignature
309
+ NID_pkcs9_emailAddress
310
+ NID_pkcs9_extCertAttributes
311
+ NID_pkcs9_messageDigest
312
+ NID_pkcs9_signingTime
313
+ NID_pkcs9_unstructuredAddress
314
+ NID_pkcs9_unstructuredName
315
+ NID_private_key_usage_period
316
+ NID_rc2_40_cbc
317
+ NID_rc2_64_cbc
318
+ NID_rc2_cbc
319
+ NID_rc2_cfb64
320
+ NID_rc2_ecb
321
+ NID_rc2_ofb64
322
+ NID_rc4
323
+ NID_rc4_40
324
+ NID_rc5_cbc
325
+ NID_rc5_cfb64
326
+ NID_rc5_ecb
327
+ NID_rc5_ofb64
328
+ NID_ripemd160
329
+ NID_ripemd160WithRSA
330
+ NID_rle_compression
331
+ NID_rsa
332
+ NID_rsaEncryption
333
+ NID_rsadsi
334
+ NID_safeContentsBag
335
+ NID_sdsiCertificate
336
+ NID_secretBag
337
+ NID_serialNumber
338
+ NID_server_auth
339
+ NID_sha
340
+ NID_sha1
341
+ NID_sha1WithRSA
342
+ NID_sha1WithRSAEncryption
343
+ NID_shaWithRSAEncryption
344
+ NID_stateOrProvinceName
345
+ NID_subject_alt_name
346
+ NID_subject_key_identifier
347
+ NID_surname
348
+ NID_sxnet
349
+ NID_time_stamp
350
+ NID_title
351
+ NID_undef
352
+ NID_uniqueIdentifier
353
+ NID_x509Certificate
354
+ NID_x509Crl
355
+ NID_zlib_compression
356
+ NOTHING
357
+ OCSP_RESPONSE_STATUS_INTERNALERROR
358
+ OCSP_RESPONSE_STATUS_MALFORMEDREQUEST
359
+ OCSP_RESPONSE_STATUS_SIGREQUIRED
360
+ OCSP_RESPONSE_STATUS_SUCCESSFUL
361
+ OCSP_RESPONSE_STATUS_TRYLATER
362
+ OCSP_RESPONSE_STATUS_UNAUTHORIZED
363
+ OPENSSL_BUILT_ON
364
+ OPENSSL_CFLAGS
365
+ OPENSSL_CPU_INFO
366
+ OPENSSL_DIR
367
+ OPENSSL_ENGINES_DIR
368
+ OPENSSL_FULL_VERSION_STRING
369
+ OPENSSL_INFO_CONFIG_DIR
370
+ OPENSSL_INFO_CPU_SETTINGS
371
+ OPENSSL_INFO_DIR_FILENAME_SEPARATOR
372
+ OPENSSL_INFO_DSO_EXTENSION
373
+ OPENSSL_INFO_ENGINES_DIR
374
+ OPENSSL_INFO_LIST_SEPARATOR
375
+ OPENSSL_INFO_MODULES_DIR
376
+ OPENSSL_INFO_SEED_SOURCE
377
+ OPENSSL_MODULES_DIR
378
+ OPENSSL_PLATFORM
379
+ OPENSSL_VERSION
380
+ OPENSSL_VERSION_MAJOR
381
+ OPENSSL_VERSION_MINOR
382
+ OPENSSL_VERSION_NUMBER
383
+ OPENSSL_VERSION_PATCH
384
+ OPENSSL_VERSION_STRING
385
+ OP_ALL
386
+ OP_ALLOW_NO_DHE_KEX
387
+ OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
388
+ OP_CIPHER_SERVER_PREFERENCE
389
+ OP_CISCO_ANYCONNECT
390
+ OP_COOKIE_EXCHANGE
391
+ OP_CRYPTOPRO_TLSEXT_BUG
392
+ OP_DONT_INSERT_EMPTY_FRAGMENTS
393
+ OP_ENABLE_MIDDLEBOX_COMPAT
394
+ OP_EPHEMERAL_RSA
395
+ OP_LEGACY_SERVER_CONNECT
396
+ OP_MICROSOFT_BIG_SSLV3_BUFFER
397
+ OP_MICROSOFT_SESS_ID_BUG
398
+ OP_MSIE_SSLV2_RSA_PADDING
399
+ OP_NETSCAPE_CA_DN_BUG
400
+ OP_NETSCAPE_CHALLENGE_BUG
401
+ OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
402
+ OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
403
+ OP_NON_EXPORT_FIRST
404
+ OP_NO_ANTI_REPLAY
405
+ OP_NO_CLIENT_RENEGOTIATION
406
+ OP_NO_COMPRESSION
407
+ OP_NO_ENCRYPT_THEN_MAC
408
+ OP_NO_QUERY_MTU
409
+ OP_NO_RENEGOTIATION
410
+ OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
411
+ OP_NO_SSL_MASK
412
+ OP_NO_SSLv2
413
+ OP_NO_SSLv3
414
+ OP_NO_TICKET
415
+ OP_NO_TLSv1
416
+ OP_NO_TLSv1_1
417
+ OP_NO_TLSv1_2
418
+ OP_NO_TLSv1_3
419
+ OP_PKCS1_CHECK_1
420
+ OP_PKCS1_CHECK_2
421
+ OP_PRIORITIZE_CHACHA
422
+ OP_SAFARI_ECDHE_ECDSA_BUG
423
+ OP_SINGLE_DH_USE
424
+ OP_SINGLE_ECDH_USE
425
+ OP_SSLEAY_080_CLIENT_DH_BUG
426
+ OP_SSLREF2_REUSE_CERT_TYPE_BUG
427
+ OP_TLSEXT_PADDING
428
+ OP_TLS_BLOCK_PADDING_BUG
429
+ OP_TLS_D5_BUG
430
+ OP_TLS_ROLLBACK_BUG
431
+ READING
432
+ RECEIVED_SHUTDOWN
433
+ RSA_3
434
+ RSA_F4
435
+ R_BAD_AUTHENTICATION_TYPE
436
+ R_BAD_CHECKSUM
437
+ R_BAD_MAC_DECODE
438
+ R_BAD_RESPONSE_ARGUMENT
439
+ R_BAD_SSL_FILETYPE
440
+ R_BAD_SSL_SESSION_ID_LENGTH
441
+ R_BAD_STATE
442
+ R_BAD_WRITE_RETRY
443
+ R_CHALLENGE_IS_DIFFERENT
444
+ R_CIPHER_TABLE_SRC_ERROR
445
+ R_INVALID_CHALLENGE_LENGTH
446
+ R_NO_CERTIFICATE_SET
447
+ R_NO_CERTIFICATE_SPECIFIED
448
+ R_NO_CIPHER_LIST
449
+ R_NO_CIPHER_MATCH
450
+ R_NO_PRIVATEKEY
451
+ R_NO_PUBLICKEY
452
+ R_NULL_SSL_CTX
453
+ R_PEER_DID_NOT_RETURN_A_CERTIFICATE
454
+ R_PEER_ERROR
455
+ R_PEER_ERROR_CERTIFICATE
456
+ R_PEER_ERROR_NO_CIPHER
457
+ R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE
458
+ R_PUBLIC_KEY_ENCRYPT_ERROR
459
+ R_PUBLIC_KEY_IS_NOT_RSA
460
+ R_READ_WRONG_PACKET_TYPE
461
+ R_SHORT_READ
462
+ R_SSL_SESSION_ID_IS_DIFFERENT
463
+ R_UNABLE_TO_EXTRACT_PUBLIC_KEY
464
+ R_UNKNOWN_REMOTE_ERROR_TYPE
465
+ R_UNKNOWN_STATE
466
+ R_X509_LIB
467
+ SENT_SHUTDOWN
468
+ SESSION_ASN1_VERSION
469
+ SESS_CACHE_BOTH
470
+ SESS_CACHE_CLIENT
471
+ SESS_CACHE_NO_AUTO_CLEAR
472
+ SESS_CACHE_NO_INTERNAL
473
+ SESS_CACHE_NO_INTERNAL_LOOKUP
474
+ SESS_CACHE_NO_INTERNAL_STORE
475
+ SESS_CACHE_OFF
476
+ SESS_CACHE_SERVER
477
+ SSL2_MT_CLIENT_CERTIFICATE
478
+ SSL2_MT_CLIENT_FINISHED
479
+ SSL2_MT_CLIENT_HELLO
480
+ SSL2_MT_CLIENT_MASTER_KEY
481
+ SSL2_MT_ERROR
482
+ SSL2_MT_REQUEST_CERTIFICATE
483
+ SSL2_MT_SERVER_FINISHED
484
+ SSL2_MT_SERVER_HELLO
485
+ SSL2_MT_SERVER_VERIFY
486
+ SSL2_VERSION
487
+ SSL3_MT_CCS
488
+ SSL3_MT_CERTIFICATE
489
+ SSL3_MT_CERTIFICATE_REQUEST
490
+ SSL3_MT_CERTIFICATE_STATUS
491
+ SSL3_MT_CERTIFICATE_URL
492
+ SSL3_MT_CERTIFICATE_VERIFY
493
+ SSL3_MT_CHANGE_CIPHER_SPEC
494
+ SSL3_MT_CLIENT_HELLO
495
+ SSL3_MT_CLIENT_KEY_EXCHANGE
496
+ SSL3_MT_ENCRYPTED_EXTENSIONS
497
+ SSL3_MT_END_OF_EARLY_DATA
498
+ SSL3_MT_FINISHED
499
+ SSL3_MT_HELLO_REQUEST
500
+ SSL3_MT_KEY_UPDATE
501
+ SSL3_MT_MESSAGE_HASH
502
+ SSL3_MT_NEWSESSION_TICKET
503
+ SSL3_MT_NEXT_PROTO
504
+ SSL3_MT_SERVER_DONE
505
+ SSL3_MT_SERVER_HELLO
506
+ SSL3_MT_SERVER_KEY_EXCHANGE
507
+ SSL3_MT_SUPPLEMENTAL_DATA
508
+ SSL3_RT_ALERT
509
+ SSL3_RT_APPLICATION_DATA
510
+ SSL3_RT_CHANGE_CIPHER_SPEC
511
+ SSL3_RT_HANDSHAKE
512
+ SSL3_RT_HEADER
513
+ SSL3_RT_INNER_CONTENT_TYPE
514
+ SSL3_VERSION
515
+ SSLEAY_BUILT_ON
516
+ SSLEAY_CFLAGS
517
+ SSLEAY_DIR
518
+ SSLEAY_PLATFORM
519
+ SSLEAY_VERSION
520
+ ST_ACCEPT
521
+ ST_BEFORE
522
+ ST_CONNECT
523
+ ST_INIT
524
+ ST_OK
525
+ ST_READ_BODY
526
+ ST_READ_HEADER
527
+ TLS1_1_VERSION
528
+ TLS1_2_VERSION
529
+ TLS1_3_VERSION
530
+ TLS1_VERSION
531
+ TLSEXT_STATUSTYPE_ocsp
532
+ VERIFY_CLIENT_ONCE
533
+ VERIFY_FAIL_IF_NO_PEER_CERT
534
+ VERIFY_NONE
535
+ VERIFY_PEER
536
+ VERIFY_POST_HANDSHAKE
537
+ V_OCSP_CERTSTATUS_GOOD
538
+ V_OCSP_CERTSTATUS_REVOKED
539
+ V_OCSP_CERTSTATUS_UNKNOWN
540
+ WRITING
541
+ X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT
542
+ X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS
543
+ X509_CHECK_FLAG_NEVER_CHECK_SUBJECT
544
+ X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS
545
+ X509_CHECK_FLAG_NO_WILDCARDS
546
+ X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS
547
+ X509_FILETYPE_ASN1
548
+ X509_FILETYPE_DEFAULT
549
+ X509_FILETYPE_PEM
550
+ X509_LOOKUP
551
+ X509_PURPOSE_ANY
552
+ X509_PURPOSE_CRL_SIGN
553
+ X509_PURPOSE_NS_SSL_SERVER
554
+ X509_PURPOSE_OCSP_HELPER
555
+ X509_PURPOSE_SMIME_ENCRYPT
556
+ X509_PURPOSE_SMIME_SIGN
557
+ X509_PURPOSE_SSL_CLIENT
558
+ X509_PURPOSE_SSL_SERVER
559
+ X509_PURPOSE_TIMESTAMP_SIGN
560
+ X509_TRUST_COMPAT
561
+ X509_TRUST_EMAIL
562
+ X509_TRUST_OBJECT_SIGN
563
+ X509_TRUST_OCSP_REQUEST
564
+ X509_TRUST_OCSP_SIGN
565
+ X509_TRUST_SSL_CLIENT
566
+ X509_TRUST_SSL_SERVER
567
+ X509_TRUST_TSA
568
+ X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH
569
+ X509_V_ERR_AKID_SKID_MISMATCH
570
+ X509_V_ERR_APPLICATION_VERIFICATION
571
+ X509_V_ERR_CA_KEY_TOO_SMALL
572
+ X509_V_ERR_CA_MD_TOO_WEAK
573
+ X509_V_ERR_CERT_CHAIN_TOO_LONG
574
+ X509_V_ERR_CERT_HAS_EXPIRED
575
+ X509_V_ERR_CERT_NOT_YET_VALID
576
+ X509_V_ERR_CERT_REJECTED
577
+ X509_V_ERR_CERT_REVOKED
578
+ X509_V_ERR_CERT_SIGNATURE_FAILURE
579
+ X509_V_ERR_CERT_UNTRUSTED
580
+ X509_V_ERR_CRL_HAS_EXPIRED
581
+ X509_V_ERR_CRL_NOT_YET_VALID
582
+ X509_V_ERR_CRL_PATH_VALIDATION_ERROR
583
+ X509_V_ERR_CRL_SIGNATURE_FAILURE
584
+ X509_V_ERR_DANE_NO_MATCH
585
+ X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
586
+ X509_V_ERR_DIFFERENT_CRL_SCOPE
587
+ X509_V_ERR_EE_KEY_TOO_SMALL
588
+ X509_V_ERR_EMAIL_MISMATCH
589
+ X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
590
+ X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
591
+ X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
592
+ X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
593
+ X509_V_ERR_EXCLUDED_VIOLATION
594
+ X509_V_ERR_HOSTNAME_MISMATCH
595
+ X509_V_ERR_INVALID_CA
596
+ X509_V_ERR_INVALID_CALL
597
+ X509_V_ERR_INVALID_EXTENSION
598
+ X509_V_ERR_INVALID_NON_CA
599
+ X509_V_ERR_INVALID_POLICY_EXTENSION
600
+ X509_V_ERR_INVALID_PURPOSE
601
+ X509_V_ERR_IP_ADDRESS_MISMATCH
602
+ X509_V_ERR_KEYUSAGE_NO_CERTSIGN
603
+ X509_V_ERR_KEYUSAGE_NO_CRL_SIGN
604
+ X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE
605
+ X509_V_ERR_NO_EXPLICIT_POLICY
606
+ X509_V_ERR_NO_VALID_SCTS
607
+ X509_V_ERR_OCSP_CERT_UNKNOWN
608
+ X509_V_ERR_OCSP_VERIFY_FAILED
609
+ X509_V_ERR_OCSP_VERIFY_NEEDED
610
+ X509_V_ERR_OUT_OF_MEM
611
+ X509_V_ERR_PATH_LENGTH_EXCEEDED
612
+ X509_V_ERR_PATH_LOOP
613
+ X509_V_ERR_PERMITTED_VIOLATION
614
+ X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED
615
+ X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED
616
+ X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION
617
+ X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
618
+ X509_V_ERR_STORE_LOOKUP
619
+ X509_V_ERR_SUBJECT_ISSUER_MISMATCH
620
+ X509_V_ERR_SUBTREE_MINMAX
621
+ X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256
622
+ X509_V_ERR_SUITE_B_INVALID_ALGORITHM
623
+ X509_V_ERR_SUITE_B_INVALID_CURVE
624
+ X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM
625
+ X509_V_ERR_SUITE_B_INVALID_VERSION
626
+ X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED
627
+ X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
628
+ X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
629
+ X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
630
+ X509_V_ERR_UNABLE_TO_GET_CRL
631
+ X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER
632
+ X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT
633
+ X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
634
+ X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
635
+ X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION
636
+ X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION
637
+ X509_V_ERR_UNNESTED_RESOURCE
638
+ X509_V_ERR_UNSPECIFIED
639
+ X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX
640
+ X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE
641
+ X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE
642
+ X509_V_ERR_UNSUPPORTED_NAME_SYNTAX
643
+ X509_V_FLAG_ALLOW_PROXY_CERTS
644
+ X509_V_FLAG_CB_ISSUER_CHECK
645
+ X509_V_FLAG_CHECK_SS_SIGNATURE
646
+ X509_V_FLAG_CRL_CHECK
647
+ X509_V_FLAG_CRL_CHECK_ALL
648
+ X509_V_FLAG_EXPLICIT_POLICY
649
+ X509_V_FLAG_EXTENDED_CRL_SUPPORT
650
+ X509_V_FLAG_IGNORE_CRITICAL
651
+ X509_V_FLAG_INHIBIT_ANY
652
+ X509_V_FLAG_INHIBIT_MAP
653
+ X509_V_FLAG_LEGACY_VERIFY
654
+ X509_V_FLAG_NOTIFY_POLICY
655
+ X509_V_FLAG_NO_ALT_CHAINS
656
+ X509_V_FLAG_NO_CHECK_TIME
657
+ X509_V_FLAG_PARTIAL_CHAIN
658
+ X509_V_FLAG_POLICY_CHECK
659
+ X509_V_FLAG_POLICY_MASK
660
+ X509_V_FLAG_SUITEB_128_LOS
661
+ X509_V_FLAG_SUITEB_128_LOS_ONLY
662
+ X509_V_FLAG_SUITEB_192_LOS
663
+ X509_V_FLAG_TRUSTED_FIRST
664
+ X509_V_FLAG_USE_CHECK_TIME
665
+ X509_V_FLAG_USE_DELTAS
666
+ X509_V_FLAG_X509_STRICT
667
+ X509_V_OK
668
+ XN_FLAG_COMPAT
669
+ XN_FLAG_DN_REV
670
+ XN_FLAG_DUMP_UNKNOWN_FIELDS
671
+ XN_FLAG_FN_ALIGN
672
+ XN_FLAG_FN_LN
673
+ XN_FLAG_FN_MASK
674
+ XN_FLAG_FN_NONE
675
+ XN_FLAG_FN_OID
676
+ XN_FLAG_FN_SN
677
+ XN_FLAG_MULTILINE
678
+ XN_FLAG_ONELINE
679
+ XN_FLAG_RFC2253
680
+ XN_FLAG_SEP_COMMA_PLUS
681
+ XN_FLAG_SEP_CPLUS_SPC
682
+ XN_FLAG_SEP_MASK
683
+ XN_FLAG_SEP_MULTILINE
684
+ XN_FLAG_SEP_SPLUS_SPC
685
+ XN_FLAG_SPC_EQ
686
+ );
687
+
688
+ my @functions = qw(
689
+ BIO_eof
690
+ BIO_f_ssl
691
+ BIO_free
692
+ BIO_new
693
+ BIO_new_file
694
+ BIO_pending
695
+ BIO_read
696
+ BIO_s_mem
697
+ BIO_wpending
698
+ BIO_write
699
+ CTX_free
700
+ CTX_get_cert_store
701
+ CTX_new
702
+ CTX_use_RSAPrivateKey_file
703
+ CTX_use_certificate_file
704
+ CTX_v23_new
705
+ CTX_v2_new
706
+ CTX_v3_new
707
+ ERR_error_string
708
+ ERR_get_error
709
+ ERR_load_RAND_strings
710
+ ERR_load_SSL_strings
711
+ PEM_read_bio_X509_CRL
712
+ RSA_free
713
+ RSA_generate_key
714
+ SESSION_free
715
+ SESSION_get_master_key
716
+ SESSION_new
717
+ SESSION_print
718
+ X509_NAME_get_text_by_NID
719
+ X509_NAME_oneline
720
+ X509_STORE_add_cert
721
+ X509_STORE_add_crl
722
+ X509_check_email
723
+ X509_check_host
724
+ X509_check_ip
725
+ X509_check_ip_asc
726
+ X509_free
727
+ X509_get_issuer_name
728
+ X509_get_subject_name
729
+ X509_load_cert_crl_file
730
+ X509_load_cert_file
731
+ X509_load_crl_file
732
+ accept
733
+ clear
734
+ connect
735
+ copy_session_id
736
+ d2i_SSL_SESSION
737
+ die_if_ssl_error
738
+ die_now
739
+ do_https
740
+ dump_peer_certificate
741
+ free
742
+ get_cipher
743
+ get_cipher_list
744
+ get_client_random
745
+ get_fd
746
+ get_http
747
+ get_http4
748
+ get_https
749
+ get_https3
750
+ get_https4
751
+ get_httpx
752
+ get_httpx4
753
+ get_peer_certificate
754
+ get_peer_cert_chain
755
+ get_rbio
756
+ get_read_ahead
757
+ get_server_random
758
+ get_shared_ciphers
759
+ get_time
760
+ get_timeout
761
+ get_wbio
762
+ i2d_SSL_SESSION
763
+ load_error_strings
764
+ make_form
765
+ make_headers
766
+ new
767
+ peek
768
+ pending
769
+ post_http
770
+ post_http4
771
+ post_https
772
+ post_https3
773
+ post_https4
774
+ post_httpx
775
+ post_httpx4
776
+ print_errs
777
+ read
778
+ rstate_string
779
+ rstate_string_long
780
+ set_bio
781
+ set_cert_and_key
782
+ set_cipher_list
783
+ set_fd
784
+ set_read_ahead
785
+ set_rfd
786
+ set_server_cert_and_key
787
+ set_session
788
+ set_time
789
+ set_timeout
790
+ set_verify
791
+ set_wfd
792
+ ssl_read_CRLF
793
+ ssl_read_all
794
+ ssl_read_until
795
+ ssl_write_CRLF
796
+ ssl_write_all
797
+ sslcat
798
+ state_string
799
+ state_string_long
800
+ tcp_read_CRLF
801
+ tcp_read_all
802
+ tcp_read_until
803
+ tcp_write_CRLF
804
+ tcp_write_all
805
+ tcpcat
806
+ tcpxcat
807
+ use_PrivateKey
808
+ use_PrivateKey_ASN1
809
+ use_PrivateKey_file
810
+ use_RSAPrivateKey
811
+ use_RSAPrivateKey_ASN1
812
+ use_RSAPrivateKey_file
813
+ use_certificate
814
+ use_certificate_ASN1
815
+ use_certificate_file
816
+ write
817
+ d2i_OCSP_RESPONSE
818
+ i2d_OCSP_RESPONSE
819
+ OCSP_RESPONSE_free
820
+ d2i_OCSP_REQUEST
821
+ i2d_OCSP_REQUEST
822
+ OCSP_REQUEST_free
823
+ OCSP_cert2ids
824
+ OCSP_ids2req
825
+ OCSP_response_status
826
+ OCSP_response_status_str
827
+ OCSP_response_verify
828
+ OCSP_response_results
829
+ );
830
+
831
+ @EXPORT_OK = ( @constants, @functions );
832
+
833
+ sub AUTOLOAD {
834
+ # This AUTOLOAD is used to 'autoload' constants from the constant()
835
+ # XS function. If a constant is not found then control is passed
836
+ # to the AUTOLOAD in AutoLoader.
837
+
838
+ my $constname;
839
+ ($constname = $AUTOLOAD) =~ s/.*:://;
840
+ my $val = constant($constname);
841
+ if ($! != 0) {
842
+ if ($! =~ /((Invalid)|(not valid))/i || $!{EINVAL}) {
843
+ $AutoLoader::AUTOLOAD = $AUTOLOAD;
844
+ goto &AutoLoader::AUTOLOAD;
845
+ }
846
+ else {
847
+ croak "Your vendor has not defined SSLeay macro $constname";
848
+ }
849
+ }
850
+ eval "sub $AUTOLOAD { $val }";
851
+ goto &$AUTOLOAD;
852
+ }
853
+
854
+ eval {
855
+ require XSLoader;
856
+ XSLoader::load('Net::SSLeay', $VERSION);
857
+ 1;
858
+ } or do {
859
+ require DynaLoader;
860
+ push @ISA, 'DynaLoader';
861
+ bootstrap Net::SSLeay $VERSION;
862
+ };
863
+
864
+ # Preloaded methods go here.
865
+
866
+ $CRLF = "\x0d\x0a"; # because \r\n is not fully portable
867
+
868
+ ### Print SSLeay error stack
869
+
870
+ sub print_errs {
871
+ my ($msg) = @_;
872
+ my ($count, $err, $errs, $e) = (0,0,'');
873
+ while ($err = ERR_get_error()) {
874
+ $count ++;
875
+ $e = "$msg $$: $count - " . ERR_error_string($err) . "\n";
876
+ $errs .= $e;
877
+ warn $e if $Net::SSLeay::trace;
878
+ }
879
+ return $errs;
880
+ }
881
+
882
+ # Death is conditional to SSLeay errors existing, i.e. this function checks
883
+ # for errors and only dies in affirmative.
884
+ # usage: Net::SSLeay::write($ssl, "foo") or die_if_ssl_error("SSL write ($!)");
885
+
886
+ sub die_if_ssl_error {
887
+ my ($msg) = @_;
888
+ die "$$: $msg\n" if print_errs($msg);
889
+ }
890
+
891
+ # Unconditional death. Used to print SSLeay errors before dying.
892
+ # usage: Net::SSLeay::connect($ssl) or die_now("Failed SSL connect ($!)");
893
+
894
+ sub die_now {
895
+ my ($msg) = @_;
896
+ print_errs($msg);
897
+ die "$$: $msg\n";
898
+ }
899
+
900
+ # Perl 5.6.* unicode support causes that length() no longer reliably
901
+ # reflects the byte length of a string. This eval is to fix that.
902
+ # Thanks to Sean Burke for the snippet.
903
+
904
+ BEGIN{
905
+ eval 'use bytes; sub blength ($) { defined $_[0] ? length $_[0] : 0 }';
906
+ $@ and eval ' sub blength ($) { defined $_[0] ? length $_[0] : 0 }' ;
907
+ }
908
+
909
+ # Autoload methods go after __END__, and are processed by the autosplit program.
910
+
911
+
912
+ 1;
913
+ __END__
914
+
915
+ ### Some methods that are macros in C
916
+
917
+ sub want_nothing { want(shift) == 1 }
918
+ sub want_read { want(shift) == 2 }
919
+ sub want_write { want(shift) == 3 }
920
+ sub want_X509_lookup { want(shift) == 4 }
921
+
922
+ ###
923
+ ### Open TCP stream to given host and port, looking up the details
924
+ ### from system databases or DNS.
925
+ ###
926
+
927
+ sub open_tcp_connection {
928
+ my ($dest_serv, $port) = @_;
929
+ my ($errs);
930
+
931
+ $port = getservbyname($port, 'tcp') unless $port =~ /^\d+$/;
932
+ my $dest_serv_ip = gethostbyname($dest_serv);
933
+ unless (defined($dest_serv_ip)) {
934
+ $errs = "$0 $$: open_tcp_connection: destination host not found:"
935
+ . " `$dest_serv' (port $port) ($!)\n";
936
+ warn $errs if $trace;
937
+ return wantarray ? (0, $errs) : 0;
938
+ }
939
+ my $sin = sockaddr_in($port, $dest_serv_ip);
940
+
941
+ warn "Opening connection to $dest_serv:$port (" .
942
+ inet_ntoa($dest_serv_ip) . ")" if $trace>2;
943
+
944
+ my $proto = &Socket::IPPROTO_TCP; # getprotobyname('tcp') not available on android
945
+ if (socket (SSLCAT_S, &PF_INET(), &SOCK_STREAM(), $proto)) {
946
+ warn "next connect" if $trace>3;
947
+ if (CORE::connect (SSLCAT_S, $sin)) {
948
+ my $old_out = select (SSLCAT_S); $| = 1; select ($old_out);
949
+ warn "connected to $dest_serv, $port" if $trace>3;
950
+ return wantarray ? (1, undef) : 1; # Success
951
+ }
952
+ }
953
+ $errs = "$0 $$: open_tcp_connection: failed `$dest_serv', $port ($!)\n";
954
+ warn $errs if $trace;
955
+ close SSLCAT_S;
956
+ return wantarray ? (0, $errs) : 0; # Fail
957
+ }
958
+
959
+ ### Open connection via standard web proxy, if one was defined
960
+ ### using set_proxy().
961
+
962
+ sub open_proxy_tcp_connection {
963
+ my ($dest_serv, $port) = @_;
964
+ return open_tcp_connection($dest_serv, $port) if !$proxyhost;
965
+
966
+ warn "Connect via proxy: $proxyhost:$proxyport" if $trace>2;
967
+ my ($ret, $errs) = open_tcp_connection($proxyhost, $proxyport);
968
+ return wantarray ? (0, $errs) : 0 if !$ret; # Connection fail
969
+
970
+ warn "Asking proxy to connect to $dest_serv:$port" if $trace>2;
971
+ #print SSLCAT_S "CONNECT $dest_serv:$port HTTP/1.0$proxyauth$CRLF$CRLF";
972
+ #my $line = <SSLCAT_S>; # *** bug? Mixing stdio with syscall read?
973
+ ($ret, $errs) =
974
+ tcp_write_all("CONNECT $dest_serv:$port HTTP/1.0$proxyauth$CRLF$CRLF");
975
+ return wantarray ? (0,$errs) : 0 if $errs;
976
+ ($line, $errs) = tcp_read_until($CRLF . $CRLF, 1024);
977
+ warn "Proxy response: $line" if $trace>2;
978
+ return wantarray ? (0,$errs) : 0 if $errs;
979
+ return wantarray ? (1,'') : 1; # Success
980
+ }
981
+
982
+ ###
983
+ ### read and write helpers that block
984
+ ###
985
+
986
+ sub debug_read {
987
+ my ($replyr, $gotr) = @_;
988
+ my $vm = $trace>2 && $linux_debug ?
989
+ (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown';
990
+ warn " got " . blength($$gotr) . ':'
991
+ . blength($$replyr) . " bytes (VM=$vm).\n" if $trace == 3;
992
+ warn " got `$$gotr' (" . blength($$gotr) . ':'
993
+ . blength($$replyr) . " bytes, VM=$vm)\n" if $trace>3;
994
+ }
995
+
996
+ sub ssl_read_all {
997
+ my ($ssl,$how_much) = @_;
998
+ $how_much = 2000000000 unless $how_much;
999
+ my ($got, $rv, $errs);
1000
+ my $reply = '';
1001
+
1002
+ while ($how_much > 0) {
1003
+ ($got, $rv) = Net::SSLeay::read($ssl,
1004
+ ($how_much > 32768) ? 32768 : $how_much
1005
+ );
1006
+ if (! defined $got) {
1007
+ my $err = Net::SSLeay::get_error($ssl, $rv);
1008
+ if ($err != Net::SSLeay::ERROR_WANT_READ() and
1009
+ $err != Net::SSLeay::ERROR_WANT_WRITE()) {
1010
+ $errs = print_errs('SSL_read');
1011
+ last;
1012
+ }
1013
+ next;
1014
+ }
1015
+ $how_much -= blength($got);
1016
+ debug_read(\$reply, \$got) if $trace>1;
1017
+ last if $got eq ''; # EOF
1018
+ $reply .= $got;
1019
+ }
1020
+
1021
+ return wantarray ? ($reply, $errs) : $reply;
1022
+ }
1023
+
1024
+ sub tcp_read_all {
1025
+ my ($how_much) = @_;
1026
+ $how_much = 2000000000 unless $how_much;
1027
+ my ($n, $got, $errs);
1028
+ my $reply = '';
1029
+
1030
+ my $bsize = 0x10000;
1031
+ while ($how_much > 0) {
1032
+ $n = sysread(SSLCAT_S,$got, (($bsize < $how_much) ? $bsize : $how_much));
1033
+ warn "Read error: $! ($n,$how_much)" unless defined $n;
1034
+ last if !$n; # EOF
1035
+ $how_much -= $n;
1036
+ debug_read(\$reply, \$got) if $trace>1;
1037
+ $reply .= $got;
1038
+ }
1039
+ return wantarray ? ($reply, $errs) : $reply;
1040
+ }
1041
+
1042
+ sub ssl_write_all {
1043
+ my $ssl = $_[0];
1044
+ my ($data_ref, $errs);
1045
+ if (ref $_[1]) {
1046
+ $data_ref = $_[1];
1047
+ } else {
1048
+ $data_ref = \$_[1];
1049
+ }
1050
+ my ($wrote, $written, $to_write) = (0,0, blength($$data_ref));
1051
+ my $vm = $trace>2 && $linux_debug ?
1052
+ (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown';
1053
+ warn " write_all VM at entry=$vm\n" if $trace>2;
1054
+ while ($to_write) {
1055
+ #sleep 1; # *** DEBUG
1056
+ warn "partial `$$data_ref'\n" if $trace>3;
1057
+ $wrote = write_partial($ssl, $written, $to_write, $$data_ref);
1058
+ if (defined $wrote && ($wrote > 0)) { # write_partial can return -1
1059
+ $written += $wrote;
1060
+ $to_write -= $wrote;
1061
+ } else {
1062
+ if (defined $wrote) {
1063
+ # check error conditions via SSL_get_error per man page
1064
+ if ( my $sslerr = get_error($ssl, $wrote) ) {
1065
+ my $errstr = ERR_error_string($sslerr);
1066
+ my $errname = '';
1067
+ SWITCH: {
1068
+ $sslerr == constant("ERROR_NONE") && do {
1069
+ # according to map page SSL_get_error(3ssl):
1070
+ # The TLS/SSL I/O operation completed.
1071
+ # This result code is returned if and only if ret > 0
1072
+ # so if we received it here complain...
1073
+ warn "ERROR_NONE unexpected with invalid return value!"
1074
+ if $trace;
1075
+ $errname = "SSL_ERROR_NONE";
1076
+ };
1077
+ $sslerr == constant("ERROR_WANT_READ") && do {
1078
+ # operation did not complete, call again later, so do not
1079
+ # set errname and empty err_que since this is a known
1080
+ # error that is expected but, we should continue to try
1081
+ # writing the rest of our data with same io call and params.
1082
+ warn "ERROR_WANT_READ (TLS/SSL Handshake, will continue)\n"
1083
+ if $trace;
1084
+ print_errs('SSL_write(want read)');
1085
+ last SWITCH;
1086
+ };
1087
+ $sslerr == constant("ERROR_WANT_WRITE") && do {
1088
+ # operation did not complete, call again later, so do not
1089
+ # set errname and empty err_que since this is a known
1090
+ # error that is expected but, we should continue to try
1091
+ # writing the rest of our data with same io call and params.
1092
+ warn "ERROR_WANT_WRITE (TLS/SSL Handshake, will continue)\n"
1093
+ if $trace;
1094
+ print_errs('SSL_write(want write)');
1095
+ last SWITCH;
1096
+ };
1097
+ $sslerr == constant("ERROR_ZERO_RETURN") && do {
1098
+ # valid protocol closure from other side, no longer able to
1099
+ # write, since there is no longer a session...
1100
+ warn "ERROR_ZERO_RETURN($wrote): TLS/SSLv3 Closure alert\n"
1101
+ if $trace;
1102
+ $errname = "SSL_ERROR_ZERO_RETURN";
1103
+ last SWITCH;
1104
+ };
1105
+ $sslerr == constant("ERROR_SSL") && do {
1106
+ # library/protocol error
1107
+ warn "ERROR_SSL($wrote): Library/Protocol error occured\n"
1108
+ if $trace;
1109
+ $errname = "SSL_ERROR_SSL";
1110
+ last SWITCH;
1111
+ };
1112
+ $sslerr == constant("ERROR_WANT_CONNECT") && do {
1113
+ # according to man page, should never happen on call to
1114
+ # SSL_write, so complain, but handle as known error type
1115
+ warn "ERROR_WANT_CONNECT: Unexpected error for SSL_write\n"
1116
+ if $trace;
1117
+ $errname = "SSL_ERROR_WANT_CONNECT";
1118
+ last SWITCH;
1119
+ };
1120
+ $sslerr == constant("ERROR_WANT_ACCEPT") && do {
1121
+ # according to man page, should never happen on call to
1122
+ # SSL_write, so complain, but handle as known error type
1123
+ warn "ERROR_WANT_ACCEPT: Unexpected error for SSL_write\n"
1124
+ if $trace;
1125
+ $errname = "SSL_ERROR_WANT_ACCEPT";
1126
+ last SWITCH;
1127
+ };
1128
+ $sslerr == constant("ERROR_WANT_X509_LOOKUP") && do {
1129
+ # operation did not complete: waiting on call back,
1130
+ # call again later, so do not set errname and empty err_que
1131
+ # since this is a known error that is expected but, we should
1132
+ # continue to try writing the rest of our data with same io
1133
+ # call parameter.
1134
+ warn "ERROR_WANT_X509_LOOKUP: (Cert Callback asked for in ".
1135
+ "SSL_write will contine)\n" if $trace;
1136
+ print_errs('SSL_write(want x509');
1137
+ last SWITCH;
1138
+ };
1139
+ $sslerr == constant("ERROR_SYSCALL") && do {
1140
+ # some IO error occured. According to man page:
1141
+ # Check retval, ERR, fallback to errno
1142
+ if ($wrote==0) { # EOF
1143
+ warn "ERROR_SYSCALL($wrote): EOF violates protocol.\n"
1144
+ if $trace;
1145
+ $errname = "SSL_ERROR_SYSCALL(EOF)";
1146
+ } else { # -1 underlying BIO error reported.
1147
+ # check error que for details, don't set errname since we
1148
+ # are directly appending to errs
1149
+ my $chkerrs = print_errs('SSL_write (syscall)');
1150
+ if ($chkerrs) {
1151
+ warn "ERROR_SYSCALL($wrote): Have errors\n" if $trace;
1152
+ $errs .= "ssl_write_all $$: 1 - ERROR_SYSCALL($wrote,".
1153
+ "$sslerr,$errstr,$!)\n$chkerrs";
1154
+ } else { # que was empty, use errno
1155
+ warn "ERROR_SYSCALL($wrote): errno($!)\n" if $trace;
1156
+ $errs .= "ssl_write_all $$: 1 - ERROR_SYSCALL($wrote,".
1157
+ "$sslerr) : $!\n";
1158
+ }
1159
+ }
1160
+ last SWITCH;
1161
+ };
1162
+ warn "Unhandled val $sslerr from SSL_get_error(SSL,$wrote)\n"
1163
+ if $trace;
1164
+ $errname = "SSL_ERROR_?($sslerr)";
1165
+ } # end of SWITCH block
1166
+ if ($errname) { # if we had an errname set add the error
1167
+ $errs .= "ssl_write_all $$: 1 - $errname($wrote,$sslerr,".
1168
+ "$errstr,$!)\n";
1169
+ }
1170
+ } # endif on have SSL_get_error val
1171
+ } # endif on $wrote defined
1172
+ } # endelse on $wrote > 0
1173
+ $vm = $trace>2 && $linux_debug ?
1174
+ (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown';
1175
+ warn " written so far $wrote:$written bytes (VM=$vm)\n" if $trace>2;
1176
+ # append remaining errors in que and report if errs exist
1177
+ $errs .= print_errs('SSL_write');
1178
+ return (wantarray ? (undef, $errs) : undef) if $errs;
1179
+ }
1180
+ return wantarray ? ($written, $errs) : $written;
1181
+ }
1182
+
1183
+ sub tcp_write_all {
1184
+ my ($data_ref, $errs);
1185
+ if (ref $_[0]) {
1186
+ $data_ref = $_[0];
1187
+ } else {
1188
+ $data_ref = \$_[0];
1189
+ }
1190
+ my ($wrote, $written, $to_write) = (0,0, blength($$data_ref));
1191
+ my $vm = $trace>2 && $linux_debug ?
1192
+ (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown';
1193
+ warn " write_all VM at entry=$vm to_write=$to_write\n" if $trace>2;
1194
+ while ($to_write) {
1195
+ warn "partial `$$data_ref'\n" if $trace>3;
1196
+ $wrote = syswrite(SSLCAT_S, $$data_ref, $to_write, $written);
1197
+ if (defined $wrote && ($wrote > 0)) { # write_partial can return -1
1198
+ $written += $wrote;
1199
+ $to_write -= $wrote;
1200
+ } elsif (!defined($wrote)) {
1201
+ warn "tcp_write_all: $!";
1202
+ return (wantarray ? (undef, "$!") : undef);
1203
+ }
1204
+ $vm = $trace>2 && $linux_debug ?
1205
+ (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown';
1206
+ warn " written so far $wrote:$written bytes (VM=$vm)\n" if $trace>2;
1207
+ }
1208
+ return wantarray ? ($written, '') : $written;
1209
+ }
1210
+
1211
+ ### from patch by Clinton Wong <clintdw@netcom.com>
1212
+
1213
+ # ssl_read_until($ssl [, $delimit [, $max_length]])
1214
+ # if $delimit missing, use $/ if it exists, otherwise use \n
1215
+ # read until delimiter reached, up to $max_length chars if defined
1216
+
1217
+ sub ssl_read_until ($;$$) {
1218
+ my ($ssl,$delim, $max_length) = @_;
1219
+
1220
+ # guess the delim string if missing
1221
+ if ( ! defined $delim ) {
1222
+ if ( defined $/ && length $/ ) { $delim = $/ }
1223
+ else { $delim = "\n" } # Note: \n,$/ value depends on the platform
1224
+ }
1225
+ my $len_delim = length $delim;
1226
+
1227
+ my ($got);
1228
+ my $reply = '';
1229
+
1230
+ # If we have OpenSSL 0.9.6a or later, we can use SSL_peek to
1231
+ # speed things up.
1232
+ # N.B. 0.9.6a has security problems, so the support for
1233
+ # anything earlier than 0.9.6e will be dropped soon.
1234
+ if (&Net::SSLeay::OPENSSL_VERSION_NUMBER >= 0x0090601f) {
1235
+ $max_length = 2000000000 unless (defined $max_length);
1236
+ my ($pending, $peek_length, $found, $done);
1237
+ while (blength($reply) < $max_length and !$done) {
1238
+ #Block if necessary until we get some data
1239
+ $got = Net::SSLeay::peek($ssl,1);
1240
+ last if print_errs('SSL_peek');
1241
+
1242
+ $pending = Net::SSLeay::pending($ssl) + blength($reply);
1243
+ $peek_length = ($pending > $max_length) ? $max_length : $pending;
1244
+ $peek_length -= blength($reply);
1245
+ $got = Net::SSLeay::peek($ssl, $peek_length);
1246
+ last if print_errs('SSL_peek');
1247
+ $peek_length = blength($got);
1248
+
1249
+ #$found = index($got, $delim); # Old and broken
1250
+
1251
+ # the delimiter may be split across two gets, so we prepend
1252
+ # a little from the last get onto this one before we check
1253
+ # for a match
1254
+ my $match;
1255
+ if(blength($reply) >= blength($delim) - 1) {
1256
+ #if what we've read so far is greater or equal
1257
+ #in length of what we need to prepatch
1258
+ $match = substr $reply, blength($reply) - blength($delim) + 1;
1259
+ } else {
1260
+ $match = $reply;
1261
+ }
1262
+
1263
+ $match .= $got;
1264
+ $found = index($match, $delim);
1265
+
1266
+ if ($found > -1) {
1267
+ #$got = Net::SSLeay::ssl_read_all($ssl, $found+$len_delim);
1268
+ #read up to the end of the delimiter
1269
+ $got = Net::SSLeay::ssl_read_all($ssl,
1270
+ $found + $len_delim
1271
+ - ((blength($match)) - (blength($got))));
1272
+ $done = 1;
1273
+ } else {
1274
+ $got = Net::SSLeay::ssl_read_all($ssl, $peek_length);
1275
+ $done = 1 if ($peek_length == $max_length - blength($reply));
1276
+ }
1277
+
1278
+ last if print_errs('SSL_read');
1279
+ debug_read(\$reply, \$got) if $trace>1;
1280
+ last if $got eq '';
1281
+ $reply .= $got;
1282
+ }
1283
+ } else {
1284
+ while (!defined $max_length || length $reply < $max_length) {
1285
+ $got = Net::SSLeay::ssl_read_all($ssl,1); # one by one
1286
+ last if print_errs('SSL_read');
1287
+ debug_read(\$reply, \$got) if $trace>1;
1288
+ last if $got eq '';
1289
+ $reply .= $got;
1290
+ last if $len_delim
1291
+ && substr($reply, blength($reply)-$len_delim) eq $delim;
1292
+ }
1293
+ }
1294
+ return $reply;
1295
+ }
1296
+
1297
+ sub tcp_read_until {
1298
+ my ($delim, $max_length) = @_;
1299
+
1300
+ # guess the delim string if missing
1301
+ if ( ! defined $delim ) {
1302
+ if ( defined $/ && length $/ ) { $delim = $/ }
1303
+ else { $delim = "\n" } # Note: \n,$/ value depends on the platform
1304
+ }
1305
+ my $len_delim = length $delim;
1306
+
1307
+ my ($n,$got);
1308
+ my $reply = '';
1309
+
1310
+ while (!defined $max_length || length $reply < $max_length) {
1311
+ $n = sysread(SSLCAT_S, $got, 1); # one by one
1312
+ warn "tcp_read_until: $!" if !defined $n;
1313
+ debug_read(\$reply, \$got) if $trace>1;
1314
+ last if !$n; # EOF
1315
+ $reply .= $got;
1316
+ last if $len_delim
1317
+ && substr($reply, blength($reply)-$len_delim) eq $delim;
1318
+ }
1319
+ return $reply;
1320
+ }
1321
+
1322
+ # ssl_read_CRLF($ssl [, $max_length])
1323
+ sub ssl_read_CRLF ($;$) { ssl_read_until($_[0], $CRLF, $_[1]) }
1324
+ sub tcp_read_CRLF { tcp_read_until($CRLF, $_[0]) }
1325
+
1326
+ # ssl_write_CRLF($ssl, $message) writes $message and appends CRLF
1327
+ sub ssl_write_CRLF ($$) {
1328
+ # the next line uses less memory but might use more network packets
1329
+ return ssl_write_all($_[0], $_[1]) + ssl_write_all($_[0], $CRLF);
1330
+
1331
+ # the next few lines do the same thing at the expense of memory, with
1332
+ # the chance that it will use less packets, since CRLF is in the original
1333
+ # message and won't be sent separately.
1334
+
1335
+ #my $data_ref;
1336
+ #if (ref $_[1]) { $data_ref = $_[1] }
1337
+ # else { $data_ref = \$_[1] }
1338
+ #my $message = $$data_ref . $CRLF;
1339
+ #return ssl_write_all($_[0], \$message);
1340
+ }
1341
+
1342
+ sub tcp_write_CRLF {
1343
+ # the next line uses less memory but might use more network packets
1344
+ return tcp_write_all($_[0]) + tcp_write_all($CRLF);
1345
+
1346
+ # the next few lines do the same thing at the expense of memory, with
1347
+ # the chance that it will use less packets, since CRLF is in the original
1348
+ # message and won't be sent separately.
1349
+
1350
+ #my $data_ref;
1351
+ #if (ref $_[1]) { $data_ref = $_[1] }
1352
+ # else { $data_ref = \$_[1] }
1353
+ #my $message = $$data_ref . $CRLF;
1354
+ #return tcp_write_all($_[0], \$message);
1355
+ }
1356
+
1357
+ ### Quickly print out with whom we're talking
1358
+
1359
+ sub dump_peer_certificate ($) {
1360
+ my ($ssl) = @_;
1361
+ my $cert = get_peer_certificate($ssl);
1362
+ return if print_errs('get_peer_certificate');
1363
+ print "no cert defined\n" if !defined($cert);
1364
+ # Cipher=NONE with empty cert fix
1365
+ if (!defined($cert) || ($cert == 0)) {
1366
+ warn "cert = `$cert'\n" if $trace;
1367
+ return "Subject Name: undefined\nIssuer Name: undefined\n";
1368
+ } else {
1369
+ my $x = 'Subject Name: '
1370
+ . X509_NAME_oneline(X509_get_subject_name($cert)) . "\n"
1371
+ . 'Issuer Name: '
1372
+ . X509_NAME_oneline(X509_get_issuer_name($cert)) . "\n";
1373
+ Net::SSLeay::X509_free($cert);
1374
+ return $x;
1375
+ }
1376
+ }
1377
+
1378
+ ### Arrange some randomness for eay PRNG
1379
+
1380
+ sub randomize (;$$$) {
1381
+ my ($rn_seed_file, $seed, $egd_path) = @_;
1382
+ my $rnsf = defined($rn_seed_file) && -r $rn_seed_file;
1383
+
1384
+ $egd_path = '';
1385
+ $egd_path = $ENV{'EGD_PATH'} if $ENV{'EGD_PATH'};
1386
+
1387
+ RAND_seed(rand() + $$); # Stir it with time and pid
1388
+
1389
+ unless ($rnsf || -r $Net::SSLeay::random_device || $seed || -S $egd_path) {
1390
+ my $poll_retval = Net::SSLeay::RAND_poll();
1391
+ warn "Random number generator not seeded!!!" if $trace && !$poll_retval;
1392
+ }
1393
+
1394
+ RAND_load_file($rn_seed_file, -s _) if $rnsf;
1395
+ RAND_seed($seed) if $seed;
1396
+ RAND_seed($ENV{RND_SEED}) if $ENV{RND_SEED};
1397
+ RAND_load_file($Net::SSLeay::random_device, $Net::SSLeay::how_random/8)
1398
+ if -r $Net::SSLeay::random_device;
1399
+ }
1400
+
1401
+ sub new_x_ctx {
1402
+ if ($ssl_version == 2) {
1403
+ unless (exists &Net::SSLeay::CTX_v2_new) {
1404
+ warn "ssl_version has been set to 2, but this version of OpenSSL has been compiled without SSLv2 support";
1405
+ return undef;
1406
+ }
1407
+ $ctx = CTX_v2_new();
1408
+ }
1409
+ elsif ($ssl_version == 3) { $ctx = CTX_v3_new(); }
1410
+ elsif ($ssl_version == 10) { $ctx = CTX_tlsv1_new(); }
1411
+ elsif ($ssl_version == 11) {
1412
+ unless (exists &Net::SSLeay::CTX_tlsv1_1_new) {
1413
+ warn "ssl_version has been set to 11, but this version of OpenSSL has been compiled without TLSv1.1 support";
1414
+ return undef;
1415
+ }
1416
+ $ctx = CTX_tlsv1_1_new;
1417
+ }
1418
+ elsif ($ssl_version == 12) {
1419
+ unless (exists &Net::SSLeay::CTX_tlsv1_2_new) {
1420
+ warn "ssl_version has been set to 12, but this version of OpenSSL has been compiled without TLSv1.2 support";
1421
+ return undef;
1422
+ }
1423
+ $ctx = CTX_tlsv1_2_new;
1424
+ }
1425
+ elsif ($ssl_version == 13) {
1426
+ unless (eval { Net::SSLeay::TLS1_3_VERSION(); } ) {
1427
+ warn "ssl_version has been set to 13, but this version of OpenSSL has been compiled without TLSv1.3 support";
1428
+ return undef;
1429
+ }
1430
+ $ctx = CTX_new();
1431
+ unless(Net::SSLeay::CTX_set_min_proto_version($ctx, Net::SSLeay::TLS1_3_VERSION())) {
1432
+ warn "CTX_set_min_proto failed for TLSv1.3";
1433
+ return undef;
1434
+ }
1435
+ unless(Net::SSLeay::CTX_set_max_proto_version($ctx, Net::SSLeay::TLS1_3_VERSION())) {
1436
+ warn "CTX_set_max_proto failed for TLSv1.3";
1437
+ return undef;
1438
+ }
1439
+ }
1440
+ else { $ctx = CTX_new(); }
1441
+ return $ctx;
1442
+ }
1443
+
1444
+ ###
1445
+ ### Standard initialisation. Initialise the ssl library in the usual way
1446
+ ### at most once. Override this if you need differnet initialisation
1447
+ ### SSLeay_add_ssl_algorithms is also protected against multiple runs in SSLeay.xs
1448
+ ### and is also mutex protected in threading perls
1449
+ ###
1450
+
1451
+ my $library_initialised;
1452
+ sub initialize
1453
+ {
1454
+ if (!$library_initialised)
1455
+ {
1456
+ load_error_strings(); # Some bloat, but I'm after ease of use
1457
+ SSLeay_add_ssl_algorithms(); # and debuggability.
1458
+ randomize();
1459
+ $library_initialised++;
1460
+ }
1461
+ }
1462
+
1463
+ ###
1464
+ ### Basic request - response primitive (don't use for https)
1465
+ ###
1466
+
1467
+ sub sslcat { # address, port, message, $crt, $key --> reply / (reply,errs,cert)
1468
+ my ($dest_serv, $port, $out_message, $crt_path, $key_path) = @_;
1469
+ my ($ctx, $ssl, $got, $errs, $written);
1470
+
1471
+ ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port);
1472
+ return (wantarray ? (undef, $errs) : undef) unless $got;
1473
+
1474
+ ### Do SSL negotiation stuff
1475
+
1476
+ warn "Creating SSL $ssl_version context...\n" if $trace>2;
1477
+ initialize(); # Will init at most once
1478
+
1479
+ $ctx = new_x_ctx();
1480
+ goto cleanup2 if $errs = print_errs('CTX_new') or !$ctx;
1481
+
1482
+ CTX_set_options($ctx, &OP_ALL);
1483
+ goto cleanup2 if $errs = print_errs('CTX_set_options');
1484
+
1485
+ warn "Cert `$crt_path' given without key" if $crt_path && !$key_path;
1486
+ set_cert_and_key($ctx, $crt_path, $key_path) if $crt_path;
1487
+
1488
+ warn "Creating SSL connection (context was '$ctx')...\n" if $trace>2;
1489
+ $ssl = new($ctx);
1490
+ goto cleanup if $errs = print_errs('SSL_new') or !$ssl;
1491
+
1492
+ warn "Setting fd (ctx $ctx, con $ssl)...\n" if $trace>2;
1493
+ set_fd($ssl, fileno(SSLCAT_S));
1494
+ goto cleanup if $errs = print_errs('set_fd');
1495
+
1496
+ warn "Entering SSL negotiation phase...\n" if $trace>2;
1497
+
1498
+ if ($trace>2) {
1499
+ my $i = 0;
1500
+ my $p = '';
1501
+ my $cipher_list = 'Cipher list: ';
1502
+ $p=Net::SSLeay::get_cipher_list($ssl,$i);
1503
+ $cipher_list .= $p if $p;
1504
+ do {
1505
+ $i++;
1506
+ $cipher_list .= ', ' . $p if $p;
1507
+ $p=Net::SSLeay::get_cipher_list($ssl,$i);
1508
+ } while $p;
1509
+ $cipher_list .= '\n';
1510
+ warn $cipher_list;
1511
+ }
1512
+
1513
+ $got = Net::SSLeay::connect($ssl);
1514
+ warn "SSLeay connect returned $got\n" if $trace>2;
1515
+ goto cleanup if $errs = print_errs('SSL_connect');
1516
+
1517
+ my $server_cert = get_peer_certificate($ssl);
1518
+ print_errs('get_peer_certificate');
1519
+ if ($trace>1) {
1520
+ warn "Cipher `" . get_cipher($ssl) . "'\n";
1521
+ print_errs('get_ciper');
1522
+ warn dump_peer_certificate($ssl);
1523
+ }
1524
+
1525
+ ### Connected. Exchange some data (doing repeated tries if necessary).
1526
+
1527
+ warn "sslcat $$: sending " . blength($out_message) . " bytes...\n"
1528
+ if $trace==3;
1529
+ warn "sslcat $$: sending `$out_message' (" . blength($out_message)
1530
+ . " bytes)...\n" if $trace>3;
1531
+ ($written, $errs) = ssl_write_all($ssl, $out_message);
1532
+ goto cleanup unless $written;
1533
+
1534
+ sleep $slowly if $slowly; # Closing too soon can abort broken servers
1535
+ Net::SSLeay::shutdown($ssl); # Useful starting with OpenSSL 1.1.1e
1536
+ CORE::shutdown SSLCAT_S, 1; # Half close --> No more output, send EOF to server
1537
+
1538
+ warn "waiting for reply...\n" if $trace>2;
1539
+ ($got, $errs) = ssl_read_all($ssl);
1540
+ warn "Got " . blength($got) . " bytes.\n" if $trace==3;
1541
+ warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3;
1542
+
1543
+ cleanup:
1544
+ free ($ssl);
1545
+ $errs .= print_errs('SSL_free');
1546
+ cleanup2:
1547
+ CTX_free ($ctx);
1548
+ $errs .= print_errs('CTX_free');
1549
+ close SSLCAT_S;
1550
+ return wantarray ? ($got, $errs, $server_cert) : $got;
1551
+ }
1552
+
1553
+ sub tcpcat { # address, port, message, $crt, $key --> reply / (reply,errs,cert)
1554
+ my ($dest_serv, $port, $out_message) = @_;
1555
+ my ($got, $errs, $written);
1556
+
1557
+ ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port);
1558
+ return (wantarray ? (undef, $errs) : undef) unless $got;
1559
+
1560
+ ### Connected. Exchange some data (doing repeated tries if necessary).
1561
+
1562
+ warn "tcpcat $$: sending " . blength($out_message) . " bytes...\n"
1563
+ if $trace==3;
1564
+ warn "tcpcat $$: sending `$out_message' (" . blength($out_message)
1565
+ . " bytes)...\n" if $trace>3;
1566
+ ($written, $errs) = tcp_write_all($out_message);
1567
+ goto cleanup unless $written;
1568
+
1569
+ sleep $slowly if $slowly; # Closing too soon can abort broken servers
1570
+ CORE::shutdown SSLCAT_S, 1; # Half close --> No more output, send EOF to server
1571
+
1572
+ warn "waiting for reply...\n" if $trace>2;
1573
+ ($got, $errs) = tcp_read_all();
1574
+ warn "Got " . blength($got) . " bytes.\n" if $trace==3;
1575
+ warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3;
1576
+
1577
+ cleanup:
1578
+ close SSLCAT_S;
1579
+ return wantarray ? ($got, $errs) : $got;
1580
+ }
1581
+
1582
+ sub tcpxcat {
1583
+ my ($usessl, $site, $port, $req, $crt_path, $key_path) = @_;
1584
+ if ($usessl) {
1585
+ return sslcat($site, $port, $req, $crt_path, $key_path);
1586
+ } else {
1587
+ return tcpcat($site, $port, $req);
1588
+ }
1589
+ }
1590
+
1591
+ ###
1592
+ ### Basic request - response primitive, this is different from sslcat
1593
+ ### because this does not shutdown the connection.
1594
+ ###
1595
+
1596
+ sub https_cat { # address, port, message --> returns reply / (reply,errs,cert)
1597
+ my ($dest_serv, $port, $out_message, $crt_path, $key_path) = @_;
1598
+ my ($ctx, $ssl, $got, $errs, $written);
1599
+
1600
+ ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port);
1601
+ return (wantarray ? (undef, $errs) : undef) unless $got;
1602
+
1603
+ ### Do SSL negotiation stuff
1604
+
1605
+ warn "Creating SSL $ssl_version context...\n" if $trace>2;
1606
+ initialize();
1607
+
1608
+ $ctx = new_x_ctx();
1609
+ goto cleanup2 if $errs = print_errs('CTX_new') or !$ctx;
1610
+
1611
+ CTX_set_options($ctx, &OP_ALL);
1612
+ goto cleanup2 if $errs = print_errs('CTX_set_options');
1613
+
1614
+ warn "Cert `$crt_path' given without key" if $crt_path && !$key_path;
1615
+ set_cert_and_key($ctx, $crt_path, $key_path) if $crt_path;
1616
+
1617
+ warn "Creating SSL connection (context was '$ctx')...\n" if $trace>2;
1618
+ $ssl = new($ctx);
1619
+ goto cleanup if $errs = print_errs('SSL_new') or !$ssl;
1620
+
1621
+ warn "Setting fd (ctx $ctx, con $ssl)...\n" if $trace>2;
1622
+ set_fd($ssl, fileno(SSLCAT_S));
1623
+ goto cleanup if $errs = print_errs('set_fd');
1624
+
1625
+ warn "Entering SSL negotiation phase...\n" if $trace>2;
1626
+
1627
+ if ($trace>2) {
1628
+ my $i = 0;
1629
+ my $p = '';
1630
+ my $cipher_list = 'Cipher list: ';
1631
+ $p=Net::SSLeay::get_cipher_list($ssl,$i);
1632
+ $cipher_list .= $p if $p;
1633
+ do {
1634
+ $i++;
1635
+ $cipher_list .= ', ' . $p if $p;
1636
+ $p=Net::SSLeay::get_cipher_list($ssl,$i);
1637
+ } while $p;
1638
+ $cipher_list .= '\n';
1639
+ warn $cipher_list;
1640
+ }
1641
+
1642
+ $got = Net::SSLeay::connect($ssl);
1643
+ warn "SSLeay connect failed" if $trace>2 && $got==0;
1644
+ goto cleanup if $errs = print_errs('SSL_connect');
1645
+
1646
+ my $server_cert = get_peer_certificate($ssl);
1647
+ print_errs('get_peer_certificate');
1648
+ if ($trace>1) {
1649
+ warn "Cipher `" . get_cipher($ssl) . "'\n";
1650
+ print_errs('get_ciper');
1651
+ warn dump_peer_certificate($ssl);
1652
+ }
1653
+
1654
+ ### Connected. Exchange some data (doing repeated tries if necessary).
1655
+
1656
+ warn "https_cat $$: sending " . blength($out_message) . " bytes...\n"
1657
+ if $trace==3;
1658
+ warn "https_cat $$: sending `$out_message' (" . blength($out_message)
1659
+ . " bytes)...\n" if $trace>3;
1660
+ ($written, $errs) = ssl_write_all($ssl, $out_message);
1661
+ goto cleanup unless $written;
1662
+
1663
+ warn "waiting for reply...\n" if $trace>2;
1664
+ ($got, $errs) = ssl_read_all($ssl);
1665
+ warn "Got " . blength($got) . " bytes.\n" if $trace==3;
1666
+ warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3;
1667
+
1668
+ cleanup:
1669
+ free ($ssl);
1670
+ $errs .= print_errs('SSL_free');
1671
+ cleanup2:
1672
+ CTX_free ($ctx);
1673
+ $errs .= print_errs('CTX_free');
1674
+ close SSLCAT_S;
1675
+ return wantarray ? ($got, $errs, $server_cert) : $got;
1676
+ }
1677
+
1678
+ sub http_cat { # address, port, message --> returns reply / (reply,errs,cert)
1679
+ my ($dest_serv, $port, $out_message) = @_;
1680
+ my ($got, $errs, $written);
1681
+
1682
+ ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port);
1683
+ return (wantarray ? (undef, $errs) : undef) unless $got;
1684
+
1685
+ ### Connected. Exchange some data (doing repeated tries if necessary).
1686
+
1687
+ warn "http_cat $$: sending " . blength($out_message) . " bytes...\n"
1688
+ if $trace==3;
1689
+ warn "http_cat $$: sending `$out_message' (" . blength($out_message)
1690
+ . " bytes)...\n" if $trace>3;
1691
+ ($written, $errs) = tcp_write_all($out_message);
1692
+ goto cleanup unless $written;
1693
+
1694
+ warn "waiting for reply...\n" if $trace>2;
1695
+ ($got, $errs) = tcp_read_all();
1696
+ warn "Got " . blength($got) . " bytes.\n" if $trace==3;
1697
+ warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3;
1698
+
1699
+ cleanup:
1700
+ close SSLCAT_S;
1701
+ return wantarray ? ($got, $errs) : $got;
1702
+ }
1703
+
1704
+ sub httpx_cat {
1705
+ my ($usessl, $site, $port, $req, $crt_path, $key_path) = @_;
1706
+ warn "httpx_cat: usessl=$usessl ($site:$port)" if $trace;
1707
+ if ($usessl) {
1708
+ return https_cat($site, $port, $req, $crt_path, $key_path);
1709
+ } else {
1710
+ return http_cat($site, $port, $req);
1711
+ }
1712
+ }
1713
+
1714
+ ###
1715
+ ### Easy set up of private key and certificate
1716
+ ###
1717
+
1718
+ sub set_cert_and_key ($$$) {
1719
+ my ($ctx, $cert_path, $key_path) = @_;
1720
+ my $errs = '';
1721
+ # Following will ask password unless private key is not encrypted
1722
+ CTX_use_PrivateKey_file( $ctx, $key_path, &FILETYPE_PEM ) == 1
1723
+ or $errs .= print_errs("private key `$key_path' ($!)");
1724
+ CTX_use_certificate_file ($ctx, $cert_path, &FILETYPE_PEM) == 1
1725
+ or $errs .= print_errs("certificate `$cert_path' ($!)");
1726
+ return wantarray ? (undef, $errs) : ($errs eq '');
1727
+ }
1728
+
1729
+ ### Old deprecated API
1730
+
1731
+ sub set_server_cert_and_key ($$$) { &set_cert_and_key }
1732
+
1733
+ ### Set up to use web proxy
1734
+
1735
+ sub set_proxy ($$;**) {
1736
+ ($proxyhost, $proxyport, $proxyuser, $proxypass) = @_;
1737
+ require MIME::Base64 if $proxyuser;
1738
+ $proxyauth = $proxyuser
1739
+ ? $CRLF . 'Proxy-authorization: Basic '
1740
+ . MIME::Base64::encode("$proxyuser:$proxypass", '')
1741
+ : '';
1742
+ }
1743
+
1744
+ ###
1745
+ ### Easy https manipulation routines
1746
+ ###
1747
+
1748
+ sub make_form {
1749
+ my (@fields) = @_;
1750
+ my $form;
1751
+ while (@fields) {
1752
+ my ($name, $data) = (shift(@fields), shift(@fields));
1753
+ $data =~ s/([^\w\-.\@\$ ])/sprintf("%%%2.2x",ord($1))/gse;
1754
+ $data =~ tr[ ][+];
1755
+ $form .= "$name=$data&";
1756
+ }
1757
+ chop $form;
1758
+ return $form;
1759
+ }
1760
+
1761
+ sub make_headers {
1762
+ my (@headers) = @_;
1763
+ my $headers;
1764
+ while (@headers) {
1765
+ my $header = shift(@headers);
1766
+ my $value = shift(@headers);
1767
+ $header =~ s/:$//;
1768
+ $value =~ s/\x0d?\x0a$//; # because we add it soon, see below
1769
+ $headers .= "$header: $value$CRLF";
1770
+ }
1771
+ return $headers;
1772
+ }
1773
+
1774
+ sub do_httpx3 {
1775
+ my ($method, $usessl, $site, $port, $path, $headers,
1776
+ $content, $mime_type, $crt_path, $key_path) = @_;
1777
+ my ($response, $page, $h,$v);
1778
+
1779
+ my $len = blength($content);
1780
+ if ($len) {
1781
+ $mime_type = "application/x-www-form-urlencoded" unless $mime_type;
1782
+ $content = "Content-Type: $mime_type$CRLF"
1783
+ . "Content-Length: $len$CRLF$CRLF$content";
1784
+ } else {
1785
+ $content = "$CRLF$CRLF";
1786
+ }
1787
+ my $req = "$method $path HTTP/1.0$CRLF";
1788
+ unless (defined $headers && $headers =~ /^Host:/m) {
1789
+ $req .= "Host: $site";
1790
+ unless (($port == 80 && !$usessl) || ($port == 443 && $usessl)) {
1791
+ $req .= ":$port";
1792
+ }
1793
+ $req .= $CRLF;
1794
+ }
1795
+ $req .= (defined $headers ? $headers : '') . "Accept: */*$CRLF$content";
1796
+
1797
+ warn "do_httpx3($method,$usessl,$site:$port)" if $trace;
1798
+ my ($http, $errs, $server_cert)
1799
+ = httpx_cat($usessl, $site, $port, $req, $crt_path, $key_path);
1800
+ return (undef, "HTTP/1.0 900 NET OR SSL ERROR$CRLF$CRLF$errs") if $errs;
1801
+
1802
+ $http = '' if !defined $http;
1803
+ ($headers, $page) = split /\s?\n\s?\n/, $http, 2;
1804
+ warn "headers >$headers< page >>$page<< http >>>$http<<<" if $trace>1;
1805
+ ($response, $headers) = split /\s?\n/, $headers, 2;
1806
+ return ($page, $response, $headers, $server_cert);
1807
+ }
1808
+
1809
+ sub do_https3 { splice(@_,1,0) = 1; do_httpx3; } # Legacy undocumented
1810
+
1811
+ ### do_https2() is a legacy version in the sense that it is unable
1812
+ ### to return all instances of duplicate headers.
1813
+
1814
+ sub do_httpx2 {
1815
+ my ($page, $response, $headers, $server_cert) = &do_httpx3;
1816
+ X509_free($server_cert) if defined $server_cert;
1817
+ return ($page, $response, defined $headers ?
1818
+ map( { ($h,$v)=/^(\S+)\:\s*(.*)$/; (uc($h),$v); }
1819
+ split(/\s?\n/, $headers)
1820
+ ) : ()
1821
+ );
1822
+ }
1823
+
1824
+ sub do_https2 { splice(@_,1,0) = 1; do_httpx2; } # Legacy undocumented
1825
+
1826
+ ### Returns headers as a hash where multiple instances of same header
1827
+ ### are handled correctly.
1828
+
1829
+ sub do_httpx4 {
1830
+ my ($page, $response, $headers, $server_cert) = &do_httpx3;
1831
+ my %hr = ();
1832
+ for my $hh (split /\s?\n/, $headers) {
1833
+ my ($h,$v) = ($hh =~ /^(\S+)\:\s*(.*)$/);
1834
+ push @{$hr{uc($h)}}, $v;
1835
+ }
1836
+ return ($page, $response, \%hr, $server_cert);
1837
+ }
1838
+
1839
+ sub do_https4 { splice(@_,1,0) = 1; do_httpx4; } # Legacy undocumented
1840
+
1841
+ # https
1842
+
1843
+ sub get_https { do_httpx2(GET => 1, @_) }
1844
+ sub post_https { do_httpx2(POST => 1, @_) }
1845
+ sub put_https { do_httpx2(PUT => 1, @_) }
1846
+ sub head_https { do_httpx2(HEAD => 1, @_) }
1847
+
1848
+ sub get_https3 { do_httpx3(GET => 1, @_) }
1849
+ sub post_https3 { do_httpx3(POST => 1, @_) }
1850
+ sub put_https3 { do_httpx3(PUT => 1, @_) }
1851
+ sub head_https3 { do_httpx3(HEAD => 1, @_) }
1852
+
1853
+ sub get_https4 { do_httpx4(GET => 1, @_) }
1854
+ sub post_https4 { do_httpx4(POST => 1, @_) }
1855
+ sub put_https4 { do_httpx4(PUT => 1, @_) }
1856
+ sub head_https4 { do_httpx4(HEAD => 1, @_) }
1857
+
1858
+ # http
1859
+
1860
+ sub get_http { do_httpx2(GET => 0, @_) }
1861
+ sub post_http { do_httpx2(POST => 0, @_) }
1862
+ sub put_http { do_httpx2(PUT => 0, @_) }
1863
+ sub head_http { do_httpx2(HEAD => 0, @_) }
1864
+
1865
+ sub get_http3 { do_httpx3(GET => 0, @_) }
1866
+ sub post_http3 { do_httpx3(POST => 0, @_) }
1867
+ sub put_http3 { do_httpx3(PUT => 0, @_) }
1868
+ sub head_http3 { do_httpx3(HEAD => 0, @_) }
1869
+
1870
+ sub get_http4 { do_httpx4(GET => 0, @_) }
1871
+ sub post_http4 { do_httpx4(POST => 0, @_) }
1872
+ sub put_http4 { do_httpx4(PUT => 0, @_) }
1873
+ sub head_http4 { do_httpx4(HEAD => 0, @_) }
1874
+
1875
+ # Either https or http
1876
+
1877
+ sub get_httpx { do_httpx2(GET => @_) }
1878
+ sub post_httpx { do_httpx2(POST => @_) }
1879
+ sub put_httpx { do_httpx2(PUT => @_) }
1880
+ sub head_httpx { do_httpx2(HEAD => @_) }
1881
+
1882
+ sub get_httpx3 { do_httpx3(GET => @_) }
1883
+ sub post_httpx3 { do_httpx3(POST => @_) }
1884
+ sub put_httpx3 { do_httpx3(PUT => @_) }
1885
+ sub head_httpx3 { do_httpx3(HEAD => @_) }
1886
+
1887
+ sub get_httpx4 { do_httpx4(GET => @_) }
1888
+ sub post_httpx4 { do_httpx4(POST => @_) }
1889
+ sub put_httpx4 { do_httpx4(PUT => @_) }
1890
+ sub head_httpx4 { do_httpx4(HEAD => @_) }
1891
+
1892
+ ### Legacy, don't use
1893
+ # ($page, $respone_or_err, %headers) = do_https(...);
1894
+
1895
+ sub do_https {
1896
+ my ($site, $port, $path, $method, $headers,
1897
+ $content, $mime_type, $crt_path, $key_path) = @_;
1898
+
1899
+ do_https2($method, $site, $port, $path, $headers,
1900
+ $content, $mime_type, $crt_path, $key_path);
1901
+ }
1902
+
1903
+ 1;
1904
+ __END__
1905
+