rugged 0.27.7 → 0.27.10

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 (409) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/AUTHORS +1 -0
  4. data/vendor/libgit2/CMakeLists.txt +99 -51
  5. data/vendor/libgit2/COPYING +28 -0
  6. data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
  7. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
  8. data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
  9. data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
  10. data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
  11. data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
  12. data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
  13. data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
  14. data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
  15. data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
  16. data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
  17. data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
  18. data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
  19. data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
  20. data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
  21. data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
  22. data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
  23. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
  24. data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
  25. data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
  27. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
  28. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
  29. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
  30. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
  31. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
  32. data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
  33. data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
  34. data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
  35. data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
  36. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
  37. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
  38. data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
  39. data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
  40. data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
  41. data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
  42. data/vendor/libgit2/deps/pcre/COPYING +5 -0
  43. data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
  44. data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
  45. data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
  46. data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
  47. data/vendor/libgit2/deps/pcre/config.h.in +57 -0
  48. data/vendor/libgit2/deps/pcre/pcre.h +641 -0
  49. data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
  50. data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
  51. data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
  52. data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
  53. data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
  54. data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
  55. data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
  56. data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
  57. data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
  58. data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
  59. data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
  60. data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
  61. data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
  62. data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
  63. data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
  64. data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
  65. data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
  66. data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
  67. data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
  68. data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
  69. data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
  70. data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
  71. data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
  72. data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
  73. data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
  74. data/vendor/libgit2/deps/pcre/ucp.h +224 -0
  75. data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
  76. data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  77. data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
  78. data/vendor/libgit2/deps/zlib/COPYING +27 -0
  79. data/vendor/libgit2/deps/zlib/adler32.c +0 -7
  80. data/vendor/libgit2/deps/zlib/crc32.c +0 -7
  81. data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
  82. data/vendor/libgit2/include/git2/apply.h +149 -0
  83. data/vendor/libgit2/include/git2/attr.h +20 -13
  84. data/vendor/libgit2/include/git2/blame.h +4 -4
  85. data/vendor/libgit2/include/git2/blob.h +44 -12
  86. data/vendor/libgit2/include/git2/buffer.h +20 -26
  87. data/vendor/libgit2/include/git2/cert.h +135 -0
  88. data/vendor/libgit2/include/git2/checkout.h +53 -21
  89. data/vendor/libgit2/include/git2/cherrypick.h +3 -3
  90. data/vendor/libgit2/include/git2/clone.h +5 -5
  91. data/vendor/libgit2/include/git2/commit.h +25 -3
  92. data/vendor/libgit2/include/git2/common.h +35 -10
  93. data/vendor/libgit2/include/git2/config.h +29 -19
  94. data/vendor/libgit2/include/git2/cred.h +308 -0
  95. data/vendor/libgit2/include/git2/deprecated.h +493 -0
  96. data/vendor/libgit2/include/git2/describe.h +4 -4
  97. data/vendor/libgit2/include/git2/diff.h +177 -135
  98. data/vendor/libgit2/include/git2/errors.h +53 -46
  99. data/vendor/libgit2/include/git2/filter.h +8 -0
  100. data/vendor/libgit2/include/git2/index.h +74 -52
  101. data/vendor/libgit2/include/git2/indexer.h +76 -6
  102. data/vendor/libgit2/include/git2/merge.h +25 -10
  103. data/vendor/libgit2/include/git2/net.h +0 -5
  104. data/vendor/libgit2/include/git2/notes.h +1 -1
  105. data/vendor/libgit2/include/git2/object.h +17 -29
  106. data/vendor/libgit2/include/git2/odb.h +12 -11
  107. data/vendor/libgit2/include/git2/odb_backend.h +10 -9
  108. data/vendor/libgit2/include/git2/oid.h +2 -2
  109. data/vendor/libgit2/include/git2/pack.h +14 -3
  110. data/vendor/libgit2/include/git2/proxy.h +5 -3
  111. data/vendor/libgit2/include/git2/rebase.h +46 -2
  112. data/vendor/libgit2/include/git2/refs.h +34 -16
  113. data/vendor/libgit2/include/git2/remote.h +111 -14
  114. data/vendor/libgit2/include/git2/repository.h +69 -34
  115. data/vendor/libgit2/include/git2/revert.h +1 -1
  116. data/vendor/libgit2/include/git2/revwalk.h +7 -7
  117. data/vendor/libgit2/include/git2/signature.h +2 -2
  118. data/vendor/libgit2/include/git2/stash.h +5 -5
  119. data/vendor/libgit2/include/git2/status.h +26 -17
  120. data/vendor/libgit2/include/git2/submodule.h +23 -6
  121. data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
  122. data/vendor/libgit2/include/git2/sys/commit.h +1 -1
  123. data/vendor/libgit2/include/git2/sys/config.h +13 -13
  124. data/vendor/libgit2/include/git2/sys/cred.h +90 -0
  125. data/vendor/libgit2/include/git2/sys/filter.h +6 -6
  126. data/vendor/libgit2/include/git2/sys/merge.h +3 -3
  127. data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
  128. data/vendor/libgit2/include/git2/sys/path.h +14 -5
  129. data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
  130. data/vendor/libgit2/include/git2/sys/repository.h +5 -1
  131. data/vendor/libgit2/include/git2/sys/stream.h +92 -12
  132. data/vendor/libgit2/include/git2/sys/transport.h +129 -83
  133. data/vendor/libgit2/include/git2/tag.h +13 -4
  134. data/vendor/libgit2/include/git2/trace.h +2 -2
  135. data/vendor/libgit2/include/git2/transport.h +11 -311
  136. data/vendor/libgit2/include/git2/tree.h +4 -4
  137. data/vendor/libgit2/include/git2/types.h +25 -106
  138. data/vendor/libgit2/include/git2/version.h +3 -3
  139. data/vendor/libgit2/include/git2/worktree.h +5 -5
  140. data/vendor/libgit2/include/git2.h +4 -0
  141. data/vendor/libgit2/src/CMakeLists.txt +104 -235
  142. data/vendor/libgit2/src/alloc.c +14 -18
  143. data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
  144. data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
  145. data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
  146. data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
  147. data/vendor/libgit2/src/annotated_commit.c +18 -11
  148. data/vendor/libgit2/src/apply.c +535 -28
  149. data/vendor/libgit2/src/apply.h +3 -1
  150. data/vendor/libgit2/src/array.h +2 -2
  151. data/vendor/libgit2/src/attr.c +77 -71
  152. data/vendor/libgit2/src/attr_file.c +203 -117
  153. data/vendor/libgit2/src/attr_file.h +9 -9
  154. data/vendor/libgit2/src/attrcache.c +49 -51
  155. data/vendor/libgit2/src/attrcache.h +2 -1
  156. data/vendor/libgit2/src/blame.c +38 -18
  157. data/vendor/libgit2/src/blame.h +1 -1
  158. data/vendor/libgit2/src/blame_git.c +29 -15
  159. data/vendor/libgit2/src/blob.c +123 -37
  160. data/vendor/libgit2/src/blob.h +19 -2
  161. data/vendor/libgit2/src/branch.c +47 -23
  162. data/vendor/libgit2/src/buf_text.c +7 -6
  163. data/vendor/libgit2/src/buffer.c +60 -53
  164. data/vendor/libgit2/src/cache.c +38 -45
  165. data/vendor/libgit2/src/cache.h +3 -3
  166. data/vendor/libgit2/src/cc-compat.h +20 -3
  167. data/vendor/libgit2/src/checkout.c +77 -67
  168. data/vendor/libgit2/src/cherrypick.c +12 -6
  169. data/vendor/libgit2/src/clone.c +36 -14
  170. data/vendor/libgit2/src/clone.h +4 -0
  171. data/vendor/libgit2/src/commit.c +103 -48
  172. data/vendor/libgit2/src/commit.h +7 -0
  173. data/vendor/libgit2/src/commit_list.c +36 -78
  174. data/vendor/libgit2/src/commit_list.h +2 -2
  175. data/vendor/libgit2/src/common.h +24 -90
  176. data/vendor/libgit2/src/config.c +203 -176
  177. data/vendor/libgit2/src/config.h +8 -20
  178. data/vendor/libgit2/src/config_backend.h +96 -0
  179. data/vendor/libgit2/src/config_cache.c +41 -35
  180. data/vendor/libgit2/src/config_entries.c +229 -0
  181. data/vendor/libgit2/src/config_entries.h +24 -0
  182. data/vendor/libgit2/src/config_file.c +422 -680
  183. data/vendor/libgit2/src/config_mem.c +220 -0
  184. data/vendor/libgit2/src/config_parse.c +96 -68
  185. data/vendor/libgit2/src/config_parse.h +15 -14
  186. data/vendor/libgit2/src/config_snapshot.c +206 -0
  187. data/vendor/libgit2/src/crlf.c +219 -196
  188. data/vendor/libgit2/src/delta.c +25 -18
  189. data/vendor/libgit2/src/describe.c +42 -41
  190. data/vendor/libgit2/src/diff.c +52 -67
  191. data/vendor/libgit2/src/diff.h +2 -1
  192. data/vendor/libgit2/src/diff_driver.c +44 -46
  193. data/vendor/libgit2/src/diff_file.c +16 -14
  194. data/vendor/libgit2/src/diff_file.h +1 -1
  195. data/vendor/libgit2/src/diff_generate.c +158 -103
  196. data/vendor/libgit2/src/diff_generate.h +3 -3
  197. data/vendor/libgit2/src/diff_parse.c +4 -4
  198. data/vendor/libgit2/src/diff_print.c +34 -22
  199. data/vendor/libgit2/src/diff_stats.c +22 -7
  200. data/vendor/libgit2/src/diff_tform.c +18 -16
  201. data/vendor/libgit2/src/diff_xdiff.c +3 -3
  202. data/vendor/libgit2/src/errors.c +51 -39
  203. data/vendor/libgit2/src/errors.h +81 -0
  204. data/vendor/libgit2/src/features.h.in +9 -3
  205. data/vendor/libgit2/src/fetch.c +8 -3
  206. data/vendor/libgit2/src/fetchhead.c +12 -12
  207. data/vendor/libgit2/src/filebuf.c +28 -32
  208. data/vendor/libgit2/src/filebuf.h +2 -2
  209. data/vendor/libgit2/src/filter.c +47 -33
  210. data/vendor/libgit2/src/filter.h +0 -10
  211. data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
  212. data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
  213. data/vendor/libgit2/src/global.c +35 -55
  214. data/vendor/libgit2/src/global.h +0 -2
  215. data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
  216. data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
  217. data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
  218. data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
  219. data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
  220. data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
  221. data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
  222. data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
  223. data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
  224. data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
  225. data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
  226. data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
  227. data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
  228. data/vendor/libgit2/src/hash/sha1.h +38 -0
  229. data/vendor/libgit2/src/hash.c +61 -0
  230. data/vendor/libgit2/src/hash.h +20 -21
  231. data/vendor/libgit2/src/hashsig.c +5 -5
  232. data/vendor/libgit2/src/idxmap.c +107 -61
  233. data/vendor/libgit2/src/idxmap.h +153 -31
  234. data/vendor/libgit2/src/ignore.c +38 -42
  235. data/vendor/libgit2/src/index.c +264 -199
  236. data/vendor/libgit2/src/index.h +7 -1
  237. data/vendor/libgit2/src/indexer.c +338 -167
  238. data/vendor/libgit2/src/integer.h +71 -26
  239. data/vendor/libgit2/src/iterator.c +134 -62
  240. data/vendor/libgit2/src/iterator.h +15 -0
  241. data/vendor/libgit2/src/mailmap.c +8 -8
  242. data/vendor/libgit2/src/map.h +1 -1
  243. data/vendor/libgit2/src/merge.c +137 -93
  244. data/vendor/libgit2/src/merge_driver.c +11 -11
  245. data/vendor/libgit2/src/merge_file.c +2 -2
  246. data/vendor/libgit2/src/mwindow.c +24 -29
  247. data/vendor/libgit2/src/mwindow.h +4 -4
  248. data/vendor/libgit2/src/net.c +184 -0
  249. data/vendor/libgit2/src/net.h +36 -0
  250. data/vendor/libgit2/src/netops.c +55 -156
  251. data/vendor/libgit2/src/netops.h +3 -23
  252. data/vendor/libgit2/src/notes.c +14 -9
  253. data/vendor/libgit2/src/object.c +120 -69
  254. data/vendor/libgit2/src/object.h +22 -9
  255. data/vendor/libgit2/src/object_api.c +8 -8
  256. data/vendor/libgit2/src/odb.c +111 -88
  257. data/vendor/libgit2/src/odb.h +8 -7
  258. data/vendor/libgit2/src/odb_loose.c +58 -47
  259. data/vendor/libgit2/src/odb_mempack.c +21 -34
  260. data/vendor/libgit2/src/odb_pack.c +17 -13
  261. data/vendor/libgit2/src/offmap.c +53 -35
  262. data/vendor/libgit2/src/offmap.h +108 -21
  263. data/vendor/libgit2/src/oid.c +12 -7
  264. data/vendor/libgit2/src/oidmap.c +49 -47
  265. data/vendor/libgit2/src/oidmap.h +101 -24
  266. data/vendor/libgit2/src/pack-objects.c +87 -86
  267. data/vendor/libgit2/src/pack-objects.h +2 -8
  268. data/vendor/libgit2/src/pack.c +94 -96
  269. data/vendor/libgit2/src/pack.h +16 -18
  270. data/vendor/libgit2/src/parse.c +17 -4
  271. data/vendor/libgit2/src/parse.h +3 -3
  272. data/vendor/libgit2/src/patch.c +3 -3
  273. data/vendor/libgit2/src/patch_generate.c +18 -18
  274. data/vendor/libgit2/src/patch_parse.c +147 -79
  275. data/vendor/libgit2/src/path.c +207 -62
  276. data/vendor/libgit2/src/path.h +14 -0
  277. data/vendor/libgit2/src/pathspec.c +18 -18
  278. data/vendor/libgit2/src/pool.c +26 -22
  279. data/vendor/libgit2/src/pool.h +7 -7
  280. data/vendor/libgit2/src/posix.c +10 -10
  281. data/vendor/libgit2/src/posix.h +12 -1
  282. data/vendor/libgit2/src/proxy.c +8 -3
  283. data/vendor/libgit2/src/push.c +35 -29
  284. data/vendor/libgit2/src/push.h +2 -1
  285. data/vendor/libgit2/src/reader.c +265 -0
  286. data/vendor/libgit2/src/reader.h +107 -0
  287. data/vendor/libgit2/src/rebase.c +97 -38
  288. data/vendor/libgit2/src/refdb.c +15 -3
  289. data/vendor/libgit2/src/refdb_fs.c +318 -222
  290. data/vendor/libgit2/src/reflog.c +13 -15
  291. data/vendor/libgit2/src/refs.c +122 -89
  292. data/vendor/libgit2/src/refs.h +5 -3
  293. data/vendor/libgit2/src/refspec.c +27 -33
  294. data/vendor/libgit2/src/regexp.c +221 -0
  295. data/vendor/libgit2/src/regexp.h +97 -0
  296. data/vendor/libgit2/src/remote.c +229 -178
  297. data/vendor/libgit2/src/remote.h +11 -2
  298. data/vendor/libgit2/src/repository.c +227 -172
  299. data/vendor/libgit2/src/repository.h +52 -40
  300. data/vendor/libgit2/src/reset.c +7 -7
  301. data/vendor/libgit2/src/revert.c +11 -6
  302. data/vendor/libgit2/src/revparse.c +46 -46
  303. data/vendor/libgit2/src/revwalk.c +89 -54
  304. data/vendor/libgit2/src/revwalk.h +20 -0
  305. data/vendor/libgit2/src/settings.c +22 -9
  306. data/vendor/libgit2/src/signature.c +15 -13
  307. data/vendor/libgit2/src/sortedcache.c +22 -36
  308. data/vendor/libgit2/src/sortedcache.h +1 -1
  309. data/vendor/libgit2/src/stash.c +56 -76
  310. data/vendor/libgit2/src/status.c +27 -21
  311. data/vendor/libgit2/src/stream.h +17 -2
  312. data/vendor/libgit2/src/streams/mbedtls.c +100 -80
  313. data/vendor/libgit2/src/streams/mbedtls.h +5 -2
  314. data/vendor/libgit2/src/streams/openssl.c +93 -81
  315. data/vendor/libgit2/src/streams/openssl.h +5 -2
  316. data/vendor/libgit2/src/streams/registry.c +118 -0
  317. data/vendor/libgit2/src/streams/registry.h +19 -0
  318. data/vendor/libgit2/src/streams/socket.c +55 -30
  319. data/vendor/libgit2/src/streams/stransport.c +57 -32
  320. data/vendor/libgit2/src/streams/stransport.h +5 -0
  321. data/vendor/libgit2/src/streams/tls.c +48 -20
  322. data/vendor/libgit2/src/streams/tls.h +12 -4
  323. data/vendor/libgit2/src/strmap.c +47 -74
  324. data/vendor/libgit2/src/strmap.h +108 -33
  325. data/vendor/libgit2/src/submodule.c +190 -169
  326. data/vendor/libgit2/src/submodule.h +1 -1
  327. data/vendor/libgit2/src/sysdir.c +25 -15
  328. data/vendor/libgit2/src/tag.c +39 -26
  329. data/vendor/libgit2/src/tag.h +2 -1
  330. data/vendor/libgit2/src/trace.c +2 -2
  331. data/vendor/libgit2/src/trace.h +2 -2
  332. data/vendor/libgit2/src/trailer.c +46 -32
  333. data/vendor/libgit2/src/transaction.c +30 -29
  334. data/vendor/libgit2/src/transport.c +3 -3
  335. data/vendor/libgit2/src/transports/auth.c +14 -10
  336. data/vendor/libgit2/src/transports/auth.h +10 -3
  337. data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
  338. data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
  339. data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
  340. data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
  341. data/vendor/libgit2/src/transports/cred.c +24 -24
  342. data/vendor/libgit2/src/transports/git.c +25 -30
  343. data/vendor/libgit2/src/transports/http.c +871 -335
  344. data/vendor/libgit2/src/transports/http.h +2 -0
  345. data/vendor/libgit2/src/transports/local.c +28 -28
  346. data/vendor/libgit2/src/transports/smart.c +64 -46
  347. data/vendor/libgit2/src/transports/smart.h +5 -6
  348. data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
  349. data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
  350. data/vendor/libgit2/src/transports/ssh.c +76 -65
  351. data/vendor/libgit2/src/transports/winhttp.c +328 -319
  352. data/vendor/libgit2/src/tree-cache.c +21 -14
  353. data/vendor/libgit2/src/tree.c +119 -112
  354. data/vendor/libgit2/src/tree.h +1 -0
  355. data/vendor/libgit2/src/unix/map.c +3 -3
  356. data/vendor/libgit2/src/unix/posix.h +1 -11
  357. data/vendor/libgit2/src/userdiff.h +3 -1
  358. data/vendor/libgit2/src/util.c +154 -93
  359. data/vendor/libgit2/src/util.h +19 -23
  360. data/vendor/libgit2/src/vector.c +15 -10
  361. data/vendor/libgit2/src/wildmatch.c +320 -0
  362. data/vendor/libgit2/src/wildmatch.h +23 -0
  363. data/vendor/libgit2/src/win32/dir.c +3 -3
  364. data/vendor/libgit2/src/win32/findfile.c +1 -1
  365. data/vendor/libgit2/src/win32/map.c +9 -11
  366. data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
  367. data/vendor/libgit2/src/win32/path_w32.c +113 -9
  368. data/vendor/libgit2/src/win32/path_w32.h +18 -29
  369. data/vendor/libgit2/src/win32/posix.h +1 -4
  370. data/vendor/libgit2/src/win32/posix_w32.c +69 -44
  371. data/vendor/libgit2/src/win32/precompiled.h +0 -2
  372. data/vendor/libgit2/src/win32/thread.c +5 -10
  373. data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
  374. data/vendor/libgit2/src/win32/w32_common.h +39 -0
  375. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
  376. data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
  377. data/vendor/libgit2/src/win32/w32_stack.c +6 -11
  378. data/vendor/libgit2/src/win32/w32_stack.h +3 -3
  379. data/vendor/libgit2/src/win32/w32_util.c +27 -64
  380. data/vendor/libgit2/src/win32/w32_util.h +5 -49
  381. data/vendor/libgit2/src/worktree.c +44 -30
  382. data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
  383. data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
  384. data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
  385. data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
  386. data/vendor/libgit2/src/zstream.c +4 -4
  387. metadata +115 -38
  388. data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
  389. data/vendor/libgit2/deps/regex/config.h +0 -7
  390. data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
  391. data/vendor/libgit2/deps/regex/regex.c +0 -92
  392. data/vendor/libgit2/deps/regex/regex.h +0 -582
  393. data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
  394. data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
  395. data/vendor/libgit2/deps/regex/regexec.c +0 -4369
  396. data/vendor/libgit2/include/git2/inttypes.h +0 -309
  397. data/vendor/libgit2/include/git2/sys/time.h +0 -31
  398. data/vendor/libgit2/libgit2.pc.in +0 -13
  399. data/vendor/libgit2/src/config_file.h +0 -73
  400. data/vendor/libgit2/src/fnmatch.c +0 -248
  401. data/vendor/libgit2/src/fnmatch.h +0 -48
  402. data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
  403. data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
  404. data/vendor/libgit2/src/streams/curl.c +0 -385
  405. data/vendor/libgit2/src/streams/curl.h +0 -17
  406. /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
  407. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
  408. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
  409. /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
@@ -0,0 +1,174 @@
1
+ /*
2
+ * Copyright (c) Edward Thomson. All rights reserved.
3
+ *
4
+ * This file is part of ntlmclient, distributed under the MIT license.
5
+ * For full terms and copyright information, and for third-party
6
+ * copyright information, see the included LICENSE.txt file.
7
+ */
8
+
9
+ #ifndef PRIVATE_NTLM_H__
10
+ #define PRIVATE_NTLM_H__
11
+
12
+ #include "ntlmclient.h"
13
+ #include "unicode.h"
14
+ #include "crypt.h"
15
+ #include "compat.h"
16
+
17
+ #define NTLM_LM_RESPONSE_LEN 24
18
+ #define NTLM_NTLM_RESPONSE_LEN 24
19
+ #define NTLM_NTLM_HASH_LEN 16
20
+ #define NTLM_NTLM2_HASH_LEN 16
21
+
22
+ #define NTLM_SIGNATURE { 'N', 'T', 'L', 'M', 'S', 'S', 'P', 0x00 }
23
+
24
+ #define NTLM_LM_PLAINTEXT { 0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25 }
25
+
26
+ typedef enum {
27
+ NTLM_STATE_NEGOTIATE = 0,
28
+ NTLM_STATE_CHALLENGE = 1,
29
+ NTLM_STATE_RESPONSE = 2,
30
+ NTLM_STATE_ERROR = 3,
31
+ NTLM_STATE_COMPLETE = 4,
32
+ } ntlm_state;
33
+
34
+ typedef struct {
35
+ unsigned char *buf;
36
+ size_t pos;
37
+ size_t len;
38
+ } ntlm_buf;
39
+
40
+ typedef struct {
41
+ uint8_t major;
42
+ uint8_t minor;
43
+ uint16_t build;
44
+ uint32_t reserved;
45
+ } ntlm_version;
46
+
47
+ typedef struct {
48
+ uint32_t flags;
49
+ uint64_t nonce;
50
+ ntlm_version target_version;
51
+
52
+ /* The unparsed target information from the server */
53
+ unsigned char *target_info;
54
+ size_t target_info_len;
55
+
56
+ /* The target information parsed into usable strings */
57
+ char *target;
58
+ char *target_server;
59
+ char *target_domain;
60
+ char *target_server_dns;
61
+ char *target_domain_dns;
62
+ } ntlm_challenge;
63
+
64
+ struct ntlm_client {
65
+ ntlm_client_flags flags;
66
+
67
+ ntlm_state state;
68
+
69
+ /* crypto contexts */
70
+ ntlm_hmac_ctx *hmac_ctx;
71
+ ntlm_unicode_ctx *unicode_ctx;
72
+
73
+ /* error message as set by the library */
74
+ const char *errmsg;
75
+
76
+ char *hostname;
77
+ char *hostdomain;
78
+ ntlm_version host_version;
79
+
80
+ char *target;
81
+
82
+ char *username;
83
+ char *username_upper;
84
+ char *userdomain;
85
+ char *password;
86
+
87
+ /* strings as converted to utf16 */
88
+ char *target_utf16;
89
+ char *username_utf16;
90
+ char *username_upper_utf16;
91
+ char *userdomain_utf16;
92
+ char *hostname_utf16;
93
+ char *password_utf16;
94
+
95
+ /* timestamp and nonce; only for debugging */
96
+ uint64_t nonce;
97
+ uint64_t timestamp;
98
+
99
+ size_t username_utf16_len;
100
+ size_t username_upper_utf16_len;
101
+ size_t userdomain_utf16_len;
102
+ size_t hostname_utf16_len;
103
+ size_t password_utf16_len;
104
+ size_t target_utf16_len;
105
+
106
+ unsigned char lm_response[NTLM_LM_RESPONSE_LEN];
107
+ size_t lm_response_len;
108
+
109
+ unsigned char ntlm_response[NTLM_NTLM_RESPONSE_LEN];
110
+ size_t ntlm_response_len;
111
+
112
+ unsigned char *ntlm2_response;
113
+ size_t ntlm2_response_len;
114
+
115
+ ntlm_buf negotiate;
116
+ ntlm_challenge challenge;
117
+ ntlm_buf response;
118
+ };
119
+
120
+ typedef enum {
121
+ NTLM_ENABLE_HOSTVERSION = (1 << 31),
122
+ } ntlm_client_internal_flags;
123
+
124
+ typedef enum {
125
+ NTLM_TARGET_INFO_END = 0,
126
+ NTLM_TARGET_INFO_SERVER = 1,
127
+ NTLM_TARGET_INFO_DOMAIN = 2,
128
+ NTLM_TARGET_INFO_SERVER_DNS = 3,
129
+ NTLM_TARGET_INFO_DOMAIN_DNS = 4,
130
+ } ntlm_target_info_type_t;
131
+
132
+ typedef enum {
133
+ /* Unicode strings are supported in security buffers */
134
+ NTLM_NEGOTIATE_UNICODE = 0x00000001,
135
+
136
+ /* OEM (ANSI) strings are supported in security buffers */
137
+ NTLM_NEGOTIATE_OEM = 0x00000002,
138
+
139
+ /* Request the target realm from the server */
140
+ NTLM_NEGOTIATE_REQUEST_TARGET = 0x00000004,
141
+
142
+ /* NTLM authentication is supported */
143
+ NTLM_NEGOTIATE_NTLM = 0x00000200,
144
+
145
+ /* Negotiate domain name */
146
+ NTLM_NEGOTIATE_DOMAIN_SUPPLIED = 0x00001000,
147
+
148
+ /* Negotiate workstation (client) name */
149
+ NTLM_NEGOTIATE_WORKSTATION_SUPPLIED = 0x00002000,
150
+
151
+ /* Indicates that a local context is available */
152
+ NTLM_NEGOTIATE_LOCAL_CALL = 0x00004000,
153
+
154
+ /* Request a dummy signature */
155
+ NTLM_NEGOTIATE_ALWAYS_SIGN = 0x00008000,
156
+
157
+ /* Target (server) is a domain */
158
+ NTLM_NEGOTIATE_TYPE_DOMAIN = 0x00010000,
159
+
160
+ /* NTLM2 signing and sealing is supported */
161
+ NTLM_NEGOTIATE_NTLM2_SIGN_AND_SEAL = 0x00080000,
162
+
163
+ /* A target information block is included */
164
+ NTLM_NEGOTIATE_TARGET_INFO = 0x00800000,
165
+
166
+ /* Version information should be provided */
167
+ NTLM_NEGOTIATE_VERSION = 0x01000000,
168
+ } ntlm_negotiate_t;
169
+
170
+ extern int ntlm_client_set_nonce(ntlm_client *ntlm, uint64_t nonce);
171
+ extern int ntlm_client_set_timestamp(ntlm_client *ntlm, uint64_t timestamp);
172
+ extern void ntlm_client_set_errmsg(ntlm_client *ntlm, const char *errmsg);
173
+
174
+ #endif /* PRIVATE_NTLM_H__ */
@@ -0,0 +1,320 @@
1
+ /*
2
+ * Copyright (c) Edward Thomson. All rights reserved.
3
+ *
4
+ * This file is part of ntlmclient, distributed under the MIT license.
5
+ * For full terms and copyright information, and for third-party
6
+ * copyright information, see the included LICENSE.txt file.
7
+ */
8
+ #ifndef INCLUDE_NTLMCLIENT_H__
9
+ #define INCLUDE_NTLMCLIENT_H__
10
+
11
+ #include <stdlib.h>
12
+ #include <stdint.h>
13
+
14
+ #ifdef __cplusplus
15
+ extern "C" {
16
+ #endif
17
+
18
+ #define NTLM_CLIENT_VERSION "0.0.1"
19
+ #define NTLM_CLIENT_VERSION_MAJOR 0
20
+ #define NTLM_CLIENT_VERSION_MINOR 0
21
+ #define NTLM_CLIENT_VERSION_TEENY 1
22
+
23
+ typedef struct ntlm_client ntlm_client;
24
+
25
+ /*
26
+ * Flags for initializing the `ntlm_client` context. A combination of
27
+ * these flags can be provided to `ntlm_client_init`.
28
+ */
29
+ typedef enum {
30
+ /** Default settings for the `ntlm_client`. */
31
+ NTLM_CLIENT_DEFAULTS = 0,
32
+
33
+ /**
34
+ * Disable Unicode negotiation. By default, strings are converted
35
+ * into UTF-16 when supplied to the remote host, but if this flag
36
+ * is specified, localizable strings (like username and password)
37
+ * will only be sent to the server as they were provided to the
38
+ * library. Since the NTLM protocol does not deliver the locale
39
+ * information, these will be interpreted by the remote host in
40
+ * whatever locale is configured, and likely be corrupted unless
41
+ * you limit yourself to ASCII.
42
+ *
43
+ * You are discouraged from setting this flag.
44
+ */
45
+ NTLM_CLIENT_DISABLE_UNICODE = (1 << 0),
46
+
47
+ /*
48
+ * Enable LM ("Lan Manager") authentication support. By default,
49
+ * LM authentication is disabled, since most remote servers have
50
+ * disabled support for it, and because it is both trivially
51
+ * brute-forced _and_ subject to rainbow table lookups. If this
52
+ * flag is enabled, LM is still not used unless NTLM2 support is
53
+ * also disabled.
54
+ *
55
+ * You are discouraged from setting this flag.
56
+ */
57
+ NTLM_CLIENT_ENABLE_LM = (1 << 1),
58
+
59
+ /*
60
+ * Enable NTLM ("Lan Manager") authentication support. By default,
61
+ * NTLM authentication is disabled, since most remote servers have
62
+ * disabled support for it, due to its weakness. If this flag is
63
+ * enabled, NTLM is still not used unless NTLM2 support is also
64
+ * disabled.
65
+ *
66
+ * You are discouraged from setting this flag.
67
+ */
68
+ NTLM_CLIENT_ENABLE_NTLM = (1 << 2),
69
+
70
+ /*
71
+ * Disable NTLM2 authentication support. By default, _only_ NTLM2
72
+ * support is enabled, since most remote servers will only support
73
+ * it due to its (relative) lack of weakness. If this flag is
74
+ * set, either NTLM or LM (or both) must be explicitly enabled or
75
+ * there will be no mechanisms available to use.
76
+ *
77
+ * You are discouraged from setting this flag.
78
+ */
79
+ NTLM_CLIENT_DISABLE_NTLM2 = (1 << 3),
80
+
81
+ /*
82
+ * Request the target's name. By default, you are expected to
83
+ * provide the name of the target you are authenticating to (eg,
84
+ * the remote hostname). If set, the remote host will provide
85
+ * its idea of its hostname in the challenge message. You may
86
+ * then set the authentication target based on it.
87
+ */
88
+ NTLM_CLIENT_DISABLE_REQUEST_TARGET = (1 << 4),
89
+ } ntlm_client_flags;
90
+
91
+
92
+ /** Declare a public function exported for application use. */
93
+ #if __GNUC__ >= 4 && !defined(NTLM_STATIC)
94
+ # define NTLM_EXTERN(type) extern \
95
+ __attribute__((visibility("default"))) \
96
+ type
97
+ #elif defined(_MSC_VER) && !defined(NTLM_STATIC)
98
+ # define NTLM_EXTERN(type) __declspec(dllexport) type
99
+ #else
100
+ # define NTLM_EXTERN(type) extern type
101
+ #endif
102
+
103
+ /**
104
+ * Initializes an `ntlm_client` context, which can begin sending
105
+ * and receiving NTLM authentication messages.
106
+ *
107
+ * @param flags the `ntlm_client_flag_t`s to use for negotiation.
108
+ * @return the `ntlm_client` context, or `NULL` if out-of-memory.
109
+ */
110
+ NTLM_EXTERN(ntlm_client *) ntlm_client_init(ntlm_client_flags flags);
111
+
112
+ /**
113
+ * Gets the error message for the most recent error that occurred. If
114
+ * a function returns an error, more details can be retrieved with this
115
+ * function. The string returned is a constant string; it should not
116
+ * be freed.
117
+ *
118
+ * @return a constant string containing the error message.
119
+ */
120
+ NTLM_EXTERN(const char *) ntlm_client_errmsg(ntlm_client *ntlm);
121
+
122
+ /**
123
+ * Sets the local hostname and domain. These strings should be in
124
+ * ASCII. They will be provided to the remote host during the
125
+ * negotiation phase.
126
+ *
127
+ * @param ntlm the `ntlm_client` context to configure
128
+ * @param hostname the hostname of the local machine
129
+ * @param domain the domain of the local machine
130
+ * @return 0 on success, non-zero on failure
131
+ */
132
+ NTLM_EXTERN(int) ntlm_client_set_hostname(
133
+ ntlm_client *ntlm,
134
+ const char *hostname,
135
+ const char *domain);
136
+
137
+ /**
138
+ * Sets the local operating system version. These numbers are expected
139
+ * to correspond to Windows operating system versions; for example
140
+ * major version 6, minor version 2, build 9200 would correspond to
141
+ * Windows 8 (aka "NT 6.2").
142
+ *
143
+ * It is not likely that you need to set the local version.
144
+ *
145
+ * @param ntlm the `ntlm_client` context to configure
146
+ * @param major the major version number of the local operating system
147
+ * @param minor the minor version number of the local operating system
148
+ * @param build the build number of the local operating system
149
+ * @return 0 on success, non-zero on failure
150
+ */
151
+ NTLM_EXTERN(int) ntlm_client_set_version(
152
+ ntlm_client *ntlm,
153
+ uint8_t major,
154
+ uint8_t minor,
155
+ uint16_t build);
156
+
157
+ /**
158
+ * Sets the username and password to authenticate with to the remote
159
+ * host. Username and password may be specified in UTF-8 but the
160
+ * domain should be in ASCII. These will not be sent to the remote host
161
+ * but will instead be used to compute the LM, NTLM or NTLM2 responses,
162
+ * which will be provided to the remote host during the response phase.
163
+ *
164
+ * @param ntlm the `ntlm_client` context to configure
165
+ * @param username the username to authenticate with
166
+ * @param domain the domain of the user authenticating
167
+ * @param password the password to authenticate with
168
+ * @return 0 on success, non-zero on failure
169
+ */
170
+ NTLM_EXTERN(int) ntlm_client_set_credentials(
171
+ ntlm_client *ntlm,
172
+ const char *username,
173
+ const char *domain,
174
+ const char *password);
175
+
176
+ /**
177
+ * Sets the authentication target, your idea of the remote host's
178
+ * name. The target should be provided as ASCII. It will be
179
+ * provided to the remote host during the response phase.
180
+ *
181
+ * @param ntlm the `ntlm_client` context to configure
182
+ * @param target the name of the authentication target
183
+ * @return 0 on success, non-zero on failure
184
+ */
185
+ NTLM_EXTERN(int) ntlm_client_set_target(
186
+ ntlm_client *ntlm,
187
+ const char *target);
188
+
189
+ /**
190
+ * Gets the remote host's nonce, as it was provided in the challenge
191
+ * message. This is an opaque 8 byte value that is used to compute
192
+ * the LM, NTLM and NTLM2 responses.
193
+ *
194
+ * @param ntlm the `ntlm_client` context to query
195
+ * @return the challenge from the remote host
196
+ */
197
+ NTLM_EXTERN(uint64_t) ntlm_client_challenge_nonce(
198
+ ntlm_client *ntlm);
199
+
200
+ /**
201
+ * Gets the remote hosts's target name, which can be used as the
202
+ * authentication target. This will be given as it was provided
203
+ * in the challenge message.
204
+ *
205
+ * @param ntlm the `ntlm_client` context to query
206
+ * @return the remote host's target name
207
+ */
208
+ NTLM_EXTERN(const char *) ntlm_client_target(ntlm_client *ntlm);
209
+
210
+ /**
211
+ * Gets the remote hosts's name, which is generally its short name.
212
+ * This will be given as it was provided in the challenge message.
213
+ *
214
+ * @param ntlm the `ntlm_client` context to query
215
+ * @return the remote host's server name
216
+ */
217
+ NTLM_EXTERN(const char *) ntlm_client_target_server(ntlm_client *ntlm);
218
+
219
+ /**
220
+ * Gets the remote hosts's domain, which is generally the short or
221
+ * NT-style domain name. This will be given as it was provided in
222
+ * the challenge message.
223
+ *
224
+ * @param ntlm the `ntlm_client` context to query
225
+ * @return the remote host's domain
226
+ */
227
+ NTLM_EXTERN(const char *) ntlm_client_target_domain(ntlm_client *ntlm);
228
+
229
+ /**
230
+ * Gets the remote hosts's DNS name, which is generally the long-style
231
+ * Active Directory or fully-qualified hostname. This will be given
232
+ * as it was provided in the challenge message.
233
+ *
234
+ * @param ntlm the `ntlm_client` context to query
235
+ * @return the remote host's DNS name
236
+ */
237
+ NTLM_EXTERN(const char *) ntlm_client_target_server_dns(ntlm_client *ntlm);
238
+
239
+ /**
240
+ * Gets the remote hosts's DNS domain, which is generally the long-style
241
+ * Active Directory or fully-qualified domain name. This will be given
242
+ * as it was provided in the challenge message.
243
+ *
244
+ * @param ntlm the `ntlm_client` context to query
245
+ * @return the remote host's DNS domain
246
+ */
247
+ NTLM_EXTERN(const char *) ntlm_client_target_domain_dns(ntlm_client *ntlm);
248
+
249
+ /**
250
+ * Computes a negotiation message (aka a "Type 1" message) to begin
251
+ * NTLM authentication with the server. The local hostname should be
252
+ * set before calling this function (if necessary). This message
253
+ * should be delivered to the server to indicate a willingness to begin
254
+ * NTLM authentication. This buffer should not be freed by the caller.
255
+ *
256
+ * @param out a pointer to the negotiation message
257
+ * @param out_len a pointer to the length of the negotiation message
258
+ * @param ntlm the `ntlm_client` context
259
+ * @return 0 on success, non-zero on failure
260
+ */
261
+ NTLM_EXTERN(int) ntlm_client_negotiate(
262
+ const unsigned char **out,
263
+ size_t *out_len,
264
+ ntlm_client *ntlm);
265
+
266
+ /**
267
+ * Parses a challenge message (aka a "Type 2" message) from the server.
268
+ * This must be called in order to calculate the response to the
269
+ * authentication.
270
+ *
271
+ * @param ntlm the `ntlm_client` context
272
+ * @param message the challenge message from the server
273
+ * @param message_len the length of the challenge message
274
+ * @return 0 on success, non-zero on failure
275
+ */
276
+ NTLM_EXTERN(int) ntlm_client_set_challenge(
277
+ ntlm_client *ntlm,
278
+ const unsigned char *message,
279
+ size_t message_len);
280
+
281
+ /**
282
+ * Computes a response message (aka a "Type 3" message) to complete
283
+ * NTLM authentication with the server. The credentials should be
284
+ * set before calling this function. This message should be delivered
285
+ * to the server to complete authentication. This buffer should not
286
+ * be freed by the caller.
287
+ *
288
+ * @param out a pointer to the response message
289
+ * @param out_len a pointer to the length of the response message
290
+ * @param ntlm the `ntlm_client` context
291
+ * @return 0 on success, non-zero on failure
292
+ */
293
+ NTLM_EXTERN(int) ntlm_client_response(
294
+ const unsigned char **out,
295
+ size_t *out_len,
296
+ ntlm_client *ntlm);
297
+
298
+ /**
299
+ * Resets an `ntlm_client` context completely, so that authentication
300
+ * may be retried. You must set _all_ parameters again, including the
301
+ * target, username, password, etc. Once these values are configured
302
+ * again, the negotiation can begin.
303
+ *
304
+ * @param ntlm the `ntlm_client` context to reset
305
+ */
306
+ NTLM_EXTERN(void) ntlm_client_reset(ntlm_client *ntlm);
307
+
308
+ /**
309
+ * Frees an `ntlm_client` context. This should be done to free memory
310
+ * belonging to the context. The context cannot be reused.
311
+ *
312
+ * @param ntlm the `ntlm_client` context to free
313
+ */
314
+ NTLM_EXTERN(void) ntlm_client_free(ntlm_client *ntlm);
315
+
316
+ #ifdef __cplusplus
317
+ }
318
+ #endif
319
+
320
+ #endif /* INCLUDE_NTLMCLIENT_H__ */
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (c) Edward Thomson. All rights reserved.
3
+ *
4
+ * This file is part of ntlmclient, distributed under the MIT license.
5
+ * For full terms and copyright information, and for third-party
6
+ * copyright information, see the included LICENSE.txt file.
7
+ */
8
+
9
+ #ifndef PRIVATE_UNICODE_H__
10
+ #define PRIVATE_UNICODE_H__
11
+
12
+ #include "compat.h"
13
+
14
+ #define NTLM_UNICODE_MAX_LEN 2048
15
+
16
+ typedef struct ntlm_unicode_ctx ntlm_unicode_ctx;
17
+
18
+ extern ntlm_unicode_ctx *ntlm_unicode_ctx_init(ntlm_client *ntlm);
19
+
20
+ bool ntlm_unicode_utf8_to_16(
21
+ char **converted,
22
+ size_t *converted_len,
23
+ ntlm_unicode_ctx *ctx,
24
+ const char *string,
25
+ size_t string_len);
26
+
27
+ bool ntlm_unicode_utf16_to_8(
28
+ char **converted,
29
+ size_t *converted_len,
30
+ ntlm_unicode_ctx *ctx,
31
+ const char *string,
32
+ size_t string_len);
33
+
34
+ extern void ntlm_unicode_ctx_free(ntlm_unicode_ctx *ctx);
35
+
36
+ #endif /* PRIVATE_UNICODE_H__ */