rugged 1.6.3 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rugged/rugged_allocator.c +0 -54
  3. data/lib/rugged/version.rb +1 -1
  4. data/vendor/libgit2/AUTHORS +1 -0
  5. data/vendor/libgit2/CMakeLists.txt +25 -17
  6. data/vendor/libgit2/COPYING +195 -1
  7. data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
  8. data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
  9. data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
  10. data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
  11. data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
  12. data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
  13. data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
  14. data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
  15. data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
  16. data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
  17. data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
  18. data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
  19. data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  20. data/vendor/libgit2/deps/llhttp/api.c +510 -0
  21. data/vendor/libgit2/deps/llhttp/http.c +170 -0
  22. data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
  23. data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
  24. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
  25. data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
  26. data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
  27. data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
  28. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
  29. data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
  30. data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
  31. data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
  32. data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
  33. data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
  34. data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
  35. data/vendor/libgit2/deps/pcre/LICENCE +5 -5
  36. data/vendor/libgit2/deps/pcre/pcre.h +2 -2
  37. data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
  38. data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
  39. data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
  40. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
  41. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
  42. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
  43. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
  44. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
  45. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
  46. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
  47. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
  48. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
  49. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
  50. data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
  51. data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
  52. data/vendor/libgit2/deps/zlib/LICENSE +22 -0
  53. data/vendor/libgit2/deps/zlib/adler32.c +5 -27
  54. data/vendor/libgit2/deps/zlib/crc32.c +94 -167
  55. data/vendor/libgit2/deps/zlib/deflate.c +358 -435
  56. data/vendor/libgit2/deps/zlib/deflate.h +41 -10
  57. data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
  58. data/vendor/libgit2/deps/zlib/infback.c +17 -30
  59. data/vendor/libgit2/deps/zlib/inffast.c +1 -4
  60. data/vendor/libgit2/deps/zlib/inffast.h +1 -1
  61. data/vendor/libgit2/deps/zlib/inflate.c +36 -102
  62. data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
  63. data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
  64. data/vendor/libgit2/deps/zlib/trees.c +287 -352
  65. data/vendor/libgit2/deps/zlib/zconf.h +23 -14
  66. data/vendor/libgit2/deps/zlib/zlib.h +202 -202
  67. data/vendor/libgit2/deps/zlib/zutil.c +18 -44
  68. data/vendor/libgit2/deps/zlib/zutil.h +13 -33
  69. data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
  70. data/vendor/libgit2/include/git2/apply.h +27 -6
  71. data/vendor/libgit2/include/git2/attr.h +17 -4
  72. data/vendor/libgit2/include/git2/blame.h +133 -28
  73. data/vendor/libgit2/include/git2/blob.h +71 -28
  74. data/vendor/libgit2/include/git2/branch.h +22 -15
  75. data/vendor/libgit2/include/git2/buffer.h +6 -4
  76. data/vendor/libgit2/include/git2/cert.h +2 -1
  77. data/vendor/libgit2/include/git2/checkout.h +83 -32
  78. data/vendor/libgit2/include/git2/cherrypick.h +10 -3
  79. data/vendor/libgit2/include/git2/clone.h +25 -9
  80. data/vendor/libgit2/include/git2/commit.h +132 -3
  81. data/vendor/libgit2/include/git2/common.h +138 -56
  82. data/vendor/libgit2/include/git2/config.h +93 -23
  83. data/vendor/libgit2/include/git2/credential.h +30 -2
  84. data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
  85. data/vendor/libgit2/include/git2/deprecated.h +133 -3
  86. data/vendor/libgit2/include/git2/describe.h +13 -1
  87. data/vendor/libgit2/include/git2/diff.h +77 -9
  88. data/vendor/libgit2/include/git2/email.h +9 -29
  89. data/vendor/libgit2/include/git2/errors.h +49 -74
  90. data/vendor/libgit2/include/git2/filter.h +14 -7
  91. data/vendor/libgit2/include/git2/global.h +8 -1
  92. data/vendor/libgit2/include/git2/graph.h +3 -2
  93. data/vendor/libgit2/include/git2/ignore.h +10 -0
  94. data/vendor/libgit2/include/git2/index.h +100 -6
  95. data/vendor/libgit2/include/git2/indexer.h +21 -4
  96. data/vendor/libgit2/include/git2/mailmap.h +7 -1
  97. data/vendor/libgit2/include/git2/merge.h +46 -1
  98. data/vendor/libgit2/include/git2/message.h +2 -2
  99. data/vendor/libgit2/include/git2/net.h +3 -1
  100. data/vendor/libgit2/include/git2/notes.h +9 -6
  101. data/vendor/libgit2/include/git2/object.h +9 -8
  102. data/vendor/libgit2/include/git2/odb.h +91 -49
  103. data/vendor/libgit2/include/git2/odb_backend.h +80 -52
  104. data/vendor/libgit2/include/git2/oid.h +24 -25
  105. data/vendor/libgit2/include/git2/oidarray.h +7 -1
  106. data/vendor/libgit2/include/git2/pack.h +13 -1
  107. data/vendor/libgit2/include/git2/patch.h +2 -3
  108. data/vendor/libgit2/include/git2/pathspec.h +9 -0
  109. data/vendor/libgit2/include/git2/proxy.h +10 -0
  110. data/vendor/libgit2/include/git2/rebase.h +9 -6
  111. data/vendor/libgit2/include/git2/refdb.h +2 -2
  112. data/vendor/libgit2/include/git2/reflog.h +3 -2
  113. data/vendor/libgit2/include/git2/refs.h +9 -6
  114. data/vendor/libgit2/include/git2/refspec.h +14 -4
  115. data/vendor/libgit2/include/git2/remote.h +112 -18
  116. data/vendor/libgit2/include/git2/repository.h +61 -15
  117. data/vendor/libgit2/include/git2/reset.h +16 -3
  118. data/vendor/libgit2/include/git2/revert.h +9 -4
  119. data/vendor/libgit2/include/git2/revparse.h +3 -3
  120. data/vendor/libgit2/include/git2/revwalk.h +3 -2
  121. data/vendor/libgit2/include/git2/signature.h +46 -1
  122. data/vendor/libgit2/include/git2/stash.h +17 -3
  123. data/vendor/libgit2/include/git2/status.h +10 -6
  124. data/vendor/libgit2/include/git2/stdint.h +87 -85
  125. data/vendor/libgit2/include/git2/strarray.h +2 -3
  126. data/vendor/libgit2/include/git2/submodule.h +20 -9
  127. data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
  128. data/vendor/libgit2/include/git2/sys/commit.h +77 -3
  129. data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
  130. data/vendor/libgit2/include/git2/sys/config.h +80 -4
  131. data/vendor/libgit2/include/git2/sys/credential.h +4 -3
  132. data/vendor/libgit2/include/git2/sys/diff.h +21 -1
  133. data/vendor/libgit2/include/git2/sys/email.h +7 -0
  134. data/vendor/libgit2/include/git2/sys/errors.h +76 -0
  135. data/vendor/libgit2/include/git2/sys/filter.h +66 -3
  136. data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
  137. data/vendor/libgit2/include/git2/sys/index.h +3 -2
  138. data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
  139. data/vendor/libgit2/include/git2/sys/merge.h +55 -7
  140. data/vendor/libgit2/include/git2/sys/midx.h +47 -4
  141. data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
  142. data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
  143. data/vendor/libgit2/include/git2/sys/path.h +12 -1
  144. data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
  145. data/vendor/libgit2/include/git2/sys/refs.h +3 -2
  146. data/vendor/libgit2/include/git2/sys/remote.h +8 -1
  147. data/vendor/libgit2/include/git2/sys/repository.h +63 -3
  148. data/vendor/libgit2/include/git2/sys/stream.h +25 -2
  149. data/vendor/libgit2/include/git2/sys/transport.h +44 -5
  150. data/vendor/libgit2/include/git2/tag.h +3 -1
  151. data/vendor/libgit2/include/git2/trace.h +9 -3
  152. data/vendor/libgit2/include/git2/transaction.h +3 -2
  153. data/vendor/libgit2/include/git2/transport.h +11 -3
  154. data/vendor/libgit2/include/git2/tree.h +16 -5
  155. data/vendor/libgit2/include/git2/types.h +19 -3
  156. data/vendor/libgit2/include/git2/version.h +44 -8
  157. data/vendor/libgit2/include/git2/worktree.h +19 -7
  158. data/vendor/libgit2/src/CMakeLists.txt +40 -15
  159. data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
  160. data/vendor/libgit2/src/cli/cmd.c +1 -1
  161. data/vendor/libgit2/src/cli/cmd.h +4 -0
  162. data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
  163. data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
  164. data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
  165. data/vendor/libgit2/src/cli/cmd_config.c +241 -0
  166. data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
  167. data/vendor/libgit2/src/cli/cmd_help.c +6 -7
  168. data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
  169. data/vendor/libgit2/src/cli/cmd_init.c +102 -0
  170. data/vendor/libgit2/src/cli/common.c +168 -0
  171. data/vendor/libgit2/src/cli/common.h +63 -0
  172. data/vendor/libgit2/src/cli/error.h +1 -1
  173. data/vendor/libgit2/src/cli/main.c +52 -24
  174. data/vendor/libgit2/src/cli/opt.c +29 -3
  175. data/vendor/libgit2/src/cli/opt.h +21 -3
  176. data/vendor/libgit2/src/cli/opt_usage.c +102 -33
  177. data/vendor/libgit2/src/cli/opt_usage.h +6 -1
  178. data/vendor/libgit2/src/cli/progress.c +60 -10
  179. data/vendor/libgit2/src/cli/progress.h +16 -4
  180. data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
  181. data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
  182. data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
  183. data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
  184. data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
  185. data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
  186. data/vendor/libgit2/src/libgit2/apply.c +14 -16
  187. data/vendor/libgit2/src/libgit2/attr.c +30 -13
  188. data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
  189. data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
  190. data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
  191. data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
  192. data/vendor/libgit2/src/libgit2/blame.c +152 -59
  193. data/vendor/libgit2/src/libgit2/blame.h +1 -0
  194. data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
  195. data/vendor/libgit2/src/libgit2/branch.c +2 -2
  196. data/vendor/libgit2/src/libgit2/cache.c +22 -17
  197. data/vendor/libgit2/src/libgit2/cache.h +7 -9
  198. data/vendor/libgit2/src/libgit2/checkout.c +34 -24
  199. data/vendor/libgit2/src/libgit2/checkout.h +0 -2
  200. data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
  201. data/vendor/libgit2/src/libgit2/clone.c +186 -164
  202. data/vendor/libgit2/src/libgit2/clone.h +4 -1
  203. data/vendor/libgit2/src/libgit2/commit.c +123 -9
  204. data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
  205. data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
  206. data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
  207. data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
  208. data/vendor/libgit2/src/libgit2/config.c +394 -300
  209. data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
  210. data/vendor/libgit2/src/libgit2/config.h +9 -4
  211. data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
  212. data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
  213. data/vendor/libgit2/src/libgit2/config_file.c +113 -96
  214. data/vendor/libgit2/src/libgit2/config_list.c +285 -0
  215. data/vendor/libgit2/src/libgit2/config_list.h +32 -0
  216. data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
  217. data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
  218. data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
  219. data/vendor/libgit2/src/libgit2/describe.c +34 -31
  220. data/vendor/libgit2/src/libgit2/diff.c +17 -8
  221. data/vendor/libgit2/src/libgit2/diff.h +6 -6
  222. data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
  223. data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
  224. data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
  225. data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
  226. data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
  227. data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
  228. data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
  229. data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
  230. data/vendor/libgit2/src/libgit2/email.c +5 -3
  231. data/vendor/libgit2/src/libgit2/fetch.c +39 -9
  232. data/vendor/libgit2/src/libgit2/fetch.h +0 -2
  233. data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
  234. data/vendor/libgit2/src/libgit2/filter.c +5 -5
  235. data/vendor/libgit2/src/libgit2/git2.rc +3 -3
  236. data/vendor/libgit2/src/libgit2/grafts.c +270 -0
  237. data/vendor/libgit2/src/libgit2/grafts.h +35 -0
  238. data/vendor/libgit2/src/libgit2/graph.c +1 -1
  239. data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
  240. data/vendor/libgit2/src/libgit2/ident.c +3 -3
  241. data/vendor/libgit2/src/libgit2/ignore.c +9 -5
  242. data/vendor/libgit2/src/libgit2/index.c +392 -208
  243. data/vendor/libgit2/src/libgit2/index.h +16 -3
  244. data/vendor/libgit2/src/libgit2/index_map.c +95 -0
  245. data/vendor/libgit2/src/libgit2/index_map.h +28 -0
  246. data/vendor/libgit2/src/libgit2/indexer.c +44 -41
  247. data/vendor/libgit2/src/libgit2/iterator.c +34 -13
  248. data/vendor/libgit2/src/libgit2/iterator.h +3 -0
  249. data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
  250. data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
  251. data/vendor/libgit2/src/libgit2/merge.c +56 -46
  252. data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
  253. data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
  254. data/vendor/libgit2/src/libgit2/midx.c +86 -44
  255. data/vendor/libgit2/src/libgit2/midx.h +13 -3
  256. data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
  257. data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
  258. data/vendor/libgit2/src/libgit2/notes.c +9 -8
  259. data/vendor/libgit2/src/libgit2/object.c +42 -16
  260. data/vendor/libgit2/src/libgit2/object.h +6 -0
  261. data/vendor/libgit2/src/libgit2/odb.c +16 -9
  262. data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
  263. data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
  264. data/vendor/libgit2/src/libgit2/oid.c +35 -2
  265. data/vendor/libgit2/src/libgit2/oid.h +11 -0
  266. data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
  267. data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
  268. data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
  269. data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
  270. data/vendor/libgit2/src/libgit2/pack.c +33 -27
  271. data/vendor/libgit2/src/libgit2/pack.h +15 -10
  272. data/vendor/libgit2/src/libgit2/parse.c +7 -4
  273. data/vendor/libgit2/src/libgit2/parse.h +1 -1
  274. data/vendor/libgit2/src/libgit2/patch.h +7 -1
  275. data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
  276. data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
  277. data/vendor/libgit2/src/libgit2/path.c +1 -1
  278. data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
  279. data/vendor/libgit2/src/libgit2/push.c +81 -30
  280. data/vendor/libgit2/src/libgit2/push.h +1 -0
  281. data/vendor/libgit2/src/libgit2/reader.c +1 -1
  282. data/vendor/libgit2/src/libgit2/rebase.c +72 -84
  283. data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
  284. data/vendor/libgit2/src/libgit2/reflog.c +1 -2
  285. data/vendor/libgit2/src/libgit2/reflog.h +2 -0
  286. data/vendor/libgit2/src/libgit2/refs.c +34 -8
  287. data/vendor/libgit2/src/libgit2/refs.h +6 -1
  288. data/vendor/libgit2/src/libgit2/refspec.c +28 -1
  289. data/vendor/libgit2/src/libgit2/refspec.h +8 -0
  290. data/vendor/libgit2/src/libgit2/remote.c +136 -67
  291. data/vendor/libgit2/src/libgit2/remote.h +1 -0
  292. data/vendor/libgit2/src/libgit2/repository.c +789 -330
  293. data/vendor/libgit2/src/libgit2/repository.h +22 -3
  294. data/vendor/libgit2/src/libgit2/reset.c +2 -2
  295. data/vendor/libgit2/src/libgit2/revert.c +9 -13
  296. data/vendor/libgit2/src/libgit2/revparse.c +6 -3
  297. data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
  298. data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
  299. data/vendor/libgit2/src/libgit2/settings.c +468 -0
  300. data/vendor/libgit2/src/libgit2/settings.h +6 -2
  301. data/vendor/libgit2/src/libgit2/signature.c +132 -15
  302. data/vendor/libgit2/src/libgit2/signature.h +0 -1
  303. data/vendor/libgit2/src/libgit2/stash.c +9 -8
  304. data/vendor/libgit2/src/libgit2/status.c +1 -1
  305. data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
  306. data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
  307. data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
  308. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
  309. data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
  310. data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
  311. data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
  312. data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
  313. data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
  314. data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
  315. data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
  316. data/vendor/libgit2/src/libgit2/submodule.c +106 -63
  317. data/vendor/libgit2/src/libgit2/submodule.h +9 -10
  318. data/vendor/libgit2/src/libgit2/tag.c +1 -1
  319. data/vendor/libgit2/src/libgit2/trailer.c +6 -6
  320. data/vendor/libgit2/src/libgit2/transaction.c +26 -20
  321. data/vendor/libgit2/src/libgit2/transaction.h +4 -1
  322. data/vendor/libgit2/src/libgit2/transport.c +4 -1
  323. data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
  324. data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
  325. data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
  326. data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
  327. data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
  328. data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
  329. data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
  330. data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
  331. data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
  332. data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
  333. data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
  334. data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
  335. data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
  336. data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
  337. data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
  338. data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
  339. data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
  340. data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
  341. data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
  342. data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
  343. data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
  344. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
  345. data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
  346. data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
  347. data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
  348. data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
  349. data/vendor/libgit2/src/libgit2/tree.c +35 -27
  350. data/vendor/libgit2/src/libgit2/tree.h +3 -2
  351. data/vendor/libgit2/src/libgit2/worktree.c +39 -27
  352. data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
  353. data/vendor/libgit2/src/util/alloc.c +69 -7
  354. data/vendor/libgit2/src/util/alloc.h +34 -9
  355. data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
  356. data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
  357. data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
  358. data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
  359. data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
  360. data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
  361. data/vendor/libgit2/src/util/array.h +24 -18
  362. data/vendor/libgit2/src/util/cc-compat.h +4 -0
  363. data/vendor/libgit2/src/util/ctype_compat.h +70 -0
  364. data/vendor/libgit2/src/util/date.c +22 -14
  365. data/vendor/libgit2/src/util/date.h +12 -0
  366. data/vendor/libgit2/src/util/errors.c +401 -0
  367. data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
  368. data/vendor/libgit2/src/util/filebuf.c +6 -1
  369. data/vendor/libgit2/src/util/filebuf.h +19 -6
  370. data/vendor/libgit2/src/util/fs_path.c +16 -5
  371. data/vendor/libgit2/src/util/fs_path.h +23 -0
  372. data/vendor/libgit2/src/util/futils.c +14 -10
  373. data/vendor/libgit2/src/util/futils.h +13 -4
  374. data/vendor/libgit2/src/util/git2_features.h.in +21 -4
  375. data/vendor/libgit2/src/util/git2_util.h +6 -0
  376. data/vendor/libgit2/src/util/hash/openssl.c +152 -0
  377. data/vendor/libgit2/src/util/hash/openssl.h +17 -1
  378. data/vendor/libgit2/src/util/hash/sha.h +4 -1
  379. data/vendor/libgit2/src/util/hashmap.h +424 -0
  380. data/vendor/libgit2/src/util/hashmap_str.h +43 -0
  381. data/vendor/libgit2/src/util/integer.h +3 -1
  382. data/vendor/libgit2/src/util/net.c +318 -161
  383. data/vendor/libgit2/src/util/net.h +27 -0
  384. data/vendor/libgit2/src/util/pool.c +1 -1
  385. data/vendor/libgit2/src/util/pool.h +5 -0
  386. data/vendor/libgit2/src/util/posix.c +54 -0
  387. data/vendor/libgit2/src/util/posix.h +22 -0
  388. data/vendor/libgit2/src/util/pqueue.h +1 -1
  389. data/vendor/libgit2/src/util/process.h +222 -0
  390. data/vendor/libgit2/src/util/rand.c +6 -10
  391. data/vendor/libgit2/src/util/regexp.c +1 -1
  392. data/vendor/libgit2/src/util/sortedcache.c +14 -13
  393. data/vendor/libgit2/src/util/sortedcache.h +3 -3
  394. data/vendor/libgit2/src/util/staticstr.h +66 -0
  395. data/vendor/libgit2/src/util/str.c +2 -2
  396. data/vendor/libgit2/src/util/strlist.c +108 -0
  397. data/vendor/libgit2/src/util/strlist.h +36 -0
  398. data/vendor/libgit2/src/util/unix/posix.h +0 -2
  399. data/vendor/libgit2/src/util/unix/process.c +629 -0
  400. data/vendor/libgit2/src/util/unix/realpath.c +23 -5
  401. data/vendor/libgit2/src/util/util.c +17 -12
  402. data/vendor/libgit2/src/util/util.h +28 -54
  403. data/vendor/libgit2/src/util/vector.c +3 -3
  404. data/vendor/libgit2/src/util/vector.h +2 -2
  405. data/vendor/libgit2/src/util/win32/error.c +1 -1
  406. data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
  407. data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
  408. data/vendor/libgit2/src/util/win32/process.c +506 -0
  409. data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
  410. data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
  411. data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
  412. metadata +72 -49
  413. data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
  414. data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
  415. data/vendor/libgit2/deps/http-parser/COPYING +0 -23
  416. data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
  417. data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
  418. data/vendor/libgit2/deps/zlib/COPYING +0 -27
  419. data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
  420. data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
  421. data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
  422. data/vendor/libgit2/src/libgit2/errors.c +0 -238
  423. data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
  424. data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
  425. data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
  426. data/vendor/libgit2/src/libgit2/netops.c +0 -124
  427. data/vendor/libgit2/src/libgit2/netops.h +0 -68
  428. data/vendor/libgit2/src/libgit2/offmap.c +0 -101
  429. data/vendor/libgit2/src/libgit2/offmap.h +0 -133
  430. data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
  431. data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
  432. data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
  433. data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
  434. data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
  435. data/vendor/libgit2/src/util/khash.h +0 -615
  436. data/vendor/libgit2/src/util/strmap.c +0 -100
  437. data/vendor/libgit2/src/util/strmap.h +0 -131
  438. /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
  439. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
  440. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
  441. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
  442. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
  443. /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -31,7 +31,7 @@ elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic")
31
31
  elseif(USE_HTTPS STREQUAL "mbedTLS")
32
32
  add_definitions(-DCRYPT_MBEDTLS)
33
33
  include_directories(${MBEDTLS_INCLUDE_DIR})
34
- set(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c" "crypt_mbedtls.h")
34
+ set(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c" "crypt_mbedtls.h" "crypt_builtin_md4.c")
35
35
  else()
36
36
  message(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${USE_HTTPS}) for NTLM crypto")
37
37
  endif()
@@ -0,0 +1,311 @@
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
+ #include <stdlib.h>
10
+ #include <string.h>
11
+
12
+ #include "ntlm.h"
13
+ #include "crypt.h"
14
+
15
+ /*
16
+ * Below is the MD4 code from RFC 1320, with minor modifications
17
+ * to make it compile on a modern compiler. It is included since
18
+ * many system crypto libraries lack MD4, sensibly.
19
+ */
20
+
21
+ /* MD4C.C - RSA Data Security, Inc., MD4 message-digest algorithm
22
+ */
23
+
24
+ /* Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved.
25
+
26
+ License to copy and use this software is granted provided that it
27
+ is identified as the "RSA Data Security, Inc. MD4 Message-Digest
28
+ Algorithm" in all material mentioning or referencing this software
29
+ or this function.
30
+
31
+ License is also granted to make and use derivative works provided
32
+ that such works are identified as "derived from the RSA Data
33
+ Security, Inc. MD4 Message-Digest Algorithm" in all material
34
+ mentioning or referencing the derived work.
35
+
36
+ RSA Data Security, Inc. makes no representations concerning either
37
+ the merchantability of this software or the suitability of this
38
+ software for any particular purpose. It is provided "as is"
39
+ without express or implied warranty of any kind.
40
+
41
+ These notices must be retained in any copies of any part of this
42
+ documentation and/or software.
43
+ */
44
+
45
+ /* POINTER defines a generic pointer type */
46
+ typedef unsigned char *POINTER;
47
+
48
+ /* UINT2 defines a two byte word */
49
+ typedef uint16_t UINT2;
50
+
51
+ /* UINT4 defines a four byte word */
52
+ typedef uint32_t UINT4;
53
+
54
+ #define MD4_memcpy memcpy
55
+ #define MD4_memset memset
56
+
57
+ /* MD4 context. */
58
+ typedef struct {
59
+ UINT4 state[4]; /* state (ABCD) */
60
+ UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
61
+ unsigned char buffer[64]; /* input buffer */
62
+ } MD4_CTX;
63
+
64
+ /* Constants for MD4Transform routine.
65
+ */
66
+ #define S11 3
67
+ #define S12 7
68
+ #define S13 11
69
+ #define S14 19
70
+ #define S21 3
71
+ #define S22 5
72
+ #define S23 9
73
+ #define S24 13
74
+ #define S31 3
75
+ #define S32 9
76
+ #define S33 11
77
+ #define S34 15
78
+
79
+ static void MD4Transform(UINT4 [4], const unsigned char [64]);
80
+ static void Encode (unsigned char *, UINT4 *, unsigned int);
81
+ static void Decode (UINT4 *, const unsigned char *, unsigned int);
82
+
83
+ static unsigned char PADDING[64] = {
84
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
87
+ };
88
+
89
+ /* F, G and H are basic MD4 functions.
90
+ */
91
+ #define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
92
+ #define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z)))
93
+ #define H(x, y, z) ((x) ^ (y) ^ (z))
94
+
95
+ /* ROTATE_LEFT rotates x left n bits.
96
+ */
97
+ #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
98
+
99
+ /* FF, GG and HH are transformations for rounds 1, 2 and 3 */
100
+ /* Rotation is separate from addition to prevent recomputation */
101
+ #define FF(a, b, c, d, x, s) { \
102
+ (a) += F ((b), (c), (d)) + (x); \
103
+ (a) = ROTATE_LEFT ((a), (s)); \
104
+ }
105
+ #define GG(a, b, c, d, x, s) { \
106
+ (a) += G ((b), (c), (d)) + (x) + (UINT4)0x5a827999; \
107
+ (a) = ROTATE_LEFT ((a), (s)); \
108
+ }
109
+ #define HH(a, b, c, d, x, s) { \
110
+ (a) += H ((b), (c), (d)) + (x) + (UINT4)0x6ed9eba1; \
111
+ (a) = ROTATE_LEFT ((a), (s)); \
112
+ }
113
+
114
+ /* MD4 initialization. Begins an MD4 operation, writing a new context.
115
+ */
116
+ static void MD4Init (MD4_CTX *context)
117
+ {
118
+ context->count[0] = context->count[1] = 0;
119
+
120
+ /* Load magic initialization constants.
121
+ */
122
+ context->state[0] = 0x67452301;
123
+ context->state[1] = 0xefcdab89;
124
+ context->state[2] = 0x98badcfe;
125
+ context->state[3] = 0x10325476;
126
+ }
127
+
128
+ /* MD4 block update operation. Continues an MD4 message-digest
129
+ operation, processing another message block, and updating the
130
+ context.
131
+ */
132
+ static void MD4Update (MD4_CTX *context, const unsigned char *input, unsigned int inputLen)
133
+ {
134
+ unsigned int i, index, partLen;
135
+
136
+ /* Compute number of bytes mod 64 */
137
+ index = (unsigned int)((context->count[0] >> 3) & 0x3F);
138
+ /* Update number of bits */
139
+ if ((context->count[0] += ((UINT4)inputLen << 3))
140
+ < ((UINT4)inputLen << 3))
141
+ context->count[1]++;
142
+ context->count[1] += ((UINT4)inputLen >> 29);
143
+
144
+ partLen = 64 - index;
145
+
146
+ /* Transform as many times as possible.
147
+ */
148
+ if (inputLen >= partLen) {
149
+ MD4_memcpy
150
+ ((POINTER)&context->buffer[index], (POINTER)input, partLen);
151
+ MD4Transform (context->state, context->buffer);
152
+
153
+ for (i = partLen; i + 63 < inputLen; i += 64)
154
+ MD4Transform (context->state, &input[i]);
155
+
156
+ index = 0;
157
+ }
158
+ else
159
+ i = 0;
160
+
161
+ /* Buffer remaining input */
162
+ MD4_memcpy
163
+ ((POINTER)&context->buffer[index], (POINTER)&input[i],
164
+ inputLen-i);
165
+ }
166
+
167
+ /* MD4 finalization. Ends an MD4 message-digest operation, writing the
168
+ the message digest and zeroizing the context.
169
+ */
170
+ static void MD4Final (unsigned char digest[16], MD4_CTX *context)
171
+ {
172
+ unsigned char bits[8];
173
+ unsigned int index, padLen;
174
+
175
+ /* Save number of bits */
176
+ Encode (bits, context->count, 8);
177
+
178
+ /* Pad out to 56 mod 64.
179
+ */
180
+ index = (unsigned int)((context->count[0] >> 3) & 0x3f);
181
+ padLen = (index < 56) ? (56 - index) : (120 - index);
182
+ MD4Update (context, PADDING, padLen);
183
+
184
+ /* Append length (before padding) */
185
+ MD4Update (context, bits, 8);
186
+ /* Store state in digest */
187
+ Encode (digest, context->state, 16);
188
+
189
+ /* Zeroize sensitive information.
190
+ */
191
+ MD4_memset ((POINTER)context, 0, sizeof (*context));
192
+ }
193
+
194
+ /* MD4 basic transformation. Transforms state based on block.
195
+ */
196
+ static void MD4Transform (UINT4 state[4], const unsigned char block[64])
197
+ {
198
+ UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
199
+
200
+ Decode (x, block, 64);
201
+
202
+ /* Round 1 */
203
+ FF (a, b, c, d, x[ 0], S11); /* 1 */
204
+ FF (d, a, b, c, x[ 1], S12); /* 2 */
205
+ FF (c, d, a, b, x[ 2], S13); /* 3 */
206
+ FF (b, c, d, a, x[ 3], S14); /* 4 */
207
+ FF (a, b, c, d, x[ 4], S11); /* 5 */
208
+ FF (d, a, b, c, x[ 5], S12); /* 6 */
209
+ FF (c, d, a, b, x[ 6], S13); /* 7 */
210
+ FF (b, c, d, a, x[ 7], S14); /* 8 */
211
+ FF (a, b, c, d, x[ 8], S11); /* 9 */
212
+ FF (d, a, b, c, x[ 9], S12); /* 10 */
213
+ FF (c, d, a, b, x[10], S13); /* 11 */
214
+ FF (b, c, d, a, x[11], S14); /* 12 */
215
+ FF (a, b, c, d, x[12], S11); /* 13 */
216
+ FF (d, a, b, c, x[13], S12); /* 14 */
217
+ FF (c, d, a, b, x[14], S13); /* 15 */
218
+ FF (b, c, d, a, x[15], S14); /* 16 */
219
+
220
+ /* Round 2 */
221
+ GG (a, b, c, d, x[ 0], S21); /* 17 */
222
+ GG (d, a, b, c, x[ 4], S22); /* 18 */
223
+ GG (c, d, a, b, x[ 8], S23); /* 19 */
224
+ GG (b, c, d, a, x[12], S24); /* 20 */
225
+ GG (a, b, c, d, x[ 1], S21); /* 21 */
226
+ GG (d, a, b, c, x[ 5], S22); /* 22 */
227
+ GG (c, d, a, b, x[ 9], S23); /* 23 */
228
+ GG (b, c, d, a, x[13], S24); /* 24 */
229
+ GG (a, b, c, d, x[ 2], S21); /* 25 */
230
+ GG (d, a, b, c, x[ 6], S22); /* 26 */
231
+ GG (c, d, a, b, x[10], S23); /* 27 */
232
+ GG (b, c, d, a, x[14], S24); /* 28 */
233
+ GG (a, b, c, d, x[ 3], S21); /* 29 */
234
+ GG (d, a, b, c, x[ 7], S22); /* 30 */
235
+ GG (c, d, a, b, x[11], S23); /* 31 */
236
+ GG (b, c, d, a, x[15], S24); /* 32 */
237
+
238
+ /* Round 3 */
239
+ HH (a, b, c, d, x[ 0], S31); /* 33 */
240
+ HH (d, a, b, c, x[ 8], S32); /* 34 */
241
+ HH (c, d, a, b, x[ 4], S33); /* 35 */
242
+ HH (b, c, d, a, x[12], S34); /* 36 */
243
+ HH (a, b, c, d, x[ 2], S31); /* 37 */
244
+ HH (d, a, b, c, x[10], S32); /* 38 */
245
+ HH (c, d, a, b, x[ 6], S33); /* 39 */
246
+ HH (b, c, d, a, x[14], S34); /* 40 */
247
+ HH (a, b, c, d, x[ 1], S31); /* 41 */
248
+ HH (d, a, b, c, x[ 9], S32); /* 42 */
249
+ HH (c, d, a, b, x[ 5], S33); /* 43 */
250
+ HH (b, c, d, a, x[13], S34); /* 44 */
251
+ HH (a, b, c, d, x[ 3], S31); /* 45 */
252
+ HH (d, a, b, c, x[11], S32); /* 46 */
253
+ HH (c, d, a, b, x[ 7], S33); /* 47 */
254
+ HH (b, c, d, a, x[15], S34); /* 48 */
255
+
256
+ state[0] += a;
257
+ state[1] += b;
258
+ state[2] += c;
259
+ state[3] += d;
260
+
261
+ /* Zeroize sensitive information.
262
+ */
263
+ MD4_memset ((POINTER)x, 0, sizeof (x));
264
+ }
265
+
266
+ /* Encodes input (UINT4) into output (unsigned char). Assumes len is
267
+ a multiple of 4.
268
+ */
269
+ static void Encode (unsigned char *output, UINT4 *input, unsigned int len)
270
+ {
271
+ unsigned int i, j;
272
+
273
+ for (i = 0, j = 0; j < len; i++, j += 4) {
274
+ output[j] = (unsigned char)(input[i] & 0xff);
275
+ output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
276
+ output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
277
+ output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
278
+ }
279
+ }
280
+
281
+ /* Decodes input (unsigned char) into output (UINT4). Assumes len is
282
+ a multiple of 4.
283
+ */
284
+ static void Decode (UINT4 *output, const unsigned char *input, unsigned int len)
285
+ {
286
+ unsigned int i, j;
287
+
288
+ for (i = 0, j = 0; j < len; i++, j += 4)
289
+ output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
290
+ (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
291
+ }
292
+
293
+ bool ntlm_md4_digest(
294
+ unsigned char out[CRYPT_MD4_DIGESTSIZE],
295
+ ntlm_client *ntlm,
296
+ const unsigned char *in,
297
+ size_t in_len)
298
+ {
299
+ MD4_CTX ctx;
300
+
301
+ NTLM_UNUSED(ntlm);
302
+
303
+ if (in_len > UINT_MAX)
304
+ return false;
305
+
306
+ MD4Init(&ctx);
307
+ MD4Update(&ctx, in, (unsigned int)in_len);
308
+ MD4Final (out, &ctx);
309
+
310
+ return true;
311
+ }
@@ -59,11 +59,12 @@ bool ntlm_des_encrypt(
59
59
  ntlm_des_block *plaintext,
60
60
  ntlm_des_block *key)
61
61
  {
62
+ CCCryptorStatus result;
62
63
  size_t written;
63
64
 
64
65
  NTLM_UNUSED(ntlm);
65
66
 
66
- CCCryptorStatus result = CCCrypt(kCCEncrypt,
67
+ result = CCCrypt(kCCEncrypt,
67
68
  kCCAlgorithmDES, kCCOptionECBMode,
68
69
  key, sizeof(ntlm_des_block), NULL,
69
70
  plaintext, sizeof(ntlm_des_block),
@@ -12,7 +12,6 @@
12
12
  #include "mbedtls/ctr_drbg.h"
13
13
  #include "mbedtls/des.h"
14
14
  #include "mbedtls/entropy.h"
15
- #include "mbedtls/md4.h"
16
15
 
17
16
  #include "ntlm.h"
18
17
  #include "crypt.h"
@@ -88,25 +87,6 @@ done:
88
87
  return success;
89
88
  }
90
89
 
91
- bool ntlm_md4_digest(
92
- unsigned char out[CRYPT_MD4_DIGESTSIZE],
93
- ntlm_client *ntlm,
94
- const unsigned char *in,
95
- size_t in_len)
96
- {
97
- mbedtls_md4_context ctx;
98
-
99
- NTLM_UNUSED(ntlm);
100
-
101
- mbedtls_md4_init(&ctx);
102
- mbedtls_md4_starts(&ctx);
103
- mbedtls_md4_update(&ctx, in, in_len);
104
- mbedtls_md4_finish(&ctx, out);
105
- mbedtls_md4_free(&ctx);
106
-
107
- return true;
108
- }
109
-
110
90
  bool ntlm_hmac_md5_init(
111
91
  ntlm_client *ntlm,
112
92
  const unsigned char *key,
@@ -26,18 +26,18 @@
26
26
 
27
27
  #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(CRYPT_OPENSSL_DYNAMIC)
28
28
 
29
- static inline HMAC_CTX *HMAC_CTX_new(void)
29
+ NTLM_INLINE(HMAC_CTX *) HMAC_CTX_new(void)
30
30
  {
31
31
  return calloc(1, sizeof(HMAC_CTX));
32
32
  }
33
33
 
34
- static inline int HMAC_CTX_reset(HMAC_CTX *ctx)
34
+ NTLM_INLINE(int) HMAC_CTX_reset(HMAC_CTX *ctx)
35
35
  {
36
36
  ntlm_memzero(ctx, sizeof(HMAC_CTX));
37
37
  return 1;
38
38
  }
39
39
 
40
- static inline void HMAC_CTX_free(HMAC_CTX *ctx)
40
+ NTLM_INLINE(void) HMAC_CTX_free(HMAC_CTX *ctx)
41
41
  {
42
42
  free(ctx);
43
43
  }
@@ -48,7 +48,7 @@ static inline void HMAC_CTX_free(HMAC_CTX *ctx)
48
48
  (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x03050000fL) || \
49
49
  defined(CRYPT_OPENSSL_DYNAMIC)
50
50
 
51
- static inline void HMAC_CTX_cleanup(HMAC_CTX *ctx)
51
+ NTLM_INLINE(void) HMAC_CTX_cleanup(HMAC_CTX *ctx)
52
52
  {
53
53
  NTLM_UNUSED(ctx);
54
54
  }
@@ -43,7 +43,7 @@ static bool supports_unicode(ntlm_client *ntlm)
43
43
  false : true;
44
44
  }
45
45
 
46
- static inline bool increment_size(size_t *out, size_t incr)
46
+ NTLM_INLINE(bool) increment_size(size_t *out, size_t incr)
47
47
  {
48
48
  if (SIZE_MAX - *out < incr) {
49
49
  *out = (size_t)-1;
@@ -272,7 +272,7 @@ int ntlm_client_set_timestamp(ntlm_client *ntlm, uint64_t timestamp)
272
272
  return 0;
273
273
  }
274
274
 
275
- static inline bool write_buf(
275
+ NTLM_INLINE(bool) write_buf(
276
276
  ntlm_client *ntlm,
277
277
  ntlm_buf *out,
278
278
  const unsigned char *buf,
@@ -291,7 +291,7 @@ static inline bool write_buf(
291
291
  return true;
292
292
  }
293
293
 
294
- static inline bool write_byte(
294
+ NTLM_INLINE(bool) write_byte(
295
295
  ntlm_client *ntlm,
296
296
  ntlm_buf *out,
297
297
  uint8_t value)
@@ -305,7 +305,7 @@ static inline bool write_byte(
305
305
  return true;
306
306
  }
307
307
 
308
- static inline bool write_int16(
308
+ NTLM_INLINE(bool) write_int16(
309
309
  ntlm_client *ntlm,
310
310
  ntlm_buf *out,
311
311
  uint16_t value)
@@ -320,7 +320,7 @@ static inline bool write_int16(
320
320
  return true;
321
321
  }
322
322
 
323
- static inline bool write_int32(
323
+ NTLM_INLINE(bool) write_int32(
324
324
  ntlm_client *ntlm,
325
325
  ntlm_buf *out,
326
326
  uint32_t value)
@@ -337,7 +337,7 @@ static inline bool write_int32(
337
337
  return true;
338
338
  }
339
339
 
340
- static inline bool write_version(
340
+ NTLM_INLINE(bool) write_version(
341
341
  ntlm_client *ntlm,
342
342
  ntlm_buf *out,
343
343
  ntlm_version *version)
@@ -348,7 +348,7 @@ static inline bool write_version(
348
348
  write_int32(ntlm, out, version->reserved);
349
349
  }
350
350
 
351
- static inline bool write_bufinfo(
351
+ NTLM_INLINE(bool) write_bufinfo(
352
352
  ntlm_client *ntlm,
353
353
  ntlm_buf *out,
354
354
  size_t len,
@@ -369,7 +369,7 @@ static inline bool write_bufinfo(
369
369
  write_int32(ntlm, out, (uint32_t)offset);
370
370
  }
371
371
 
372
- static inline bool read_buf(
372
+ NTLM_INLINE(bool) read_buf(
373
373
  unsigned char *out,
374
374
  ntlm_client *ntlm,
375
375
  ntlm_buf *message,
@@ -386,7 +386,7 @@ static inline bool read_buf(
386
386
  return true;
387
387
  }
388
388
 
389
- static inline bool read_byte(
389
+ NTLM_INLINE(bool) read_byte(
390
390
  uint8_t *out,
391
391
  ntlm_client *ntlm,
392
392
  ntlm_buf *message)
@@ -400,7 +400,7 @@ static inline bool read_byte(
400
400
  return true;
401
401
  }
402
402
 
403
- static inline bool read_int16(
403
+ NTLM_INLINE(bool) read_int16(
404
404
  uint16_t *out,
405
405
  ntlm_client *ntlm,
406
406
  ntlm_buf *message)
@@ -418,7 +418,7 @@ static inline bool read_int16(
418
418
  return true;
419
419
  }
420
420
 
421
- static inline bool read_int32(
421
+ NTLM_INLINE(bool) read_int32(
422
422
  uint32_t *out,
423
423
  ntlm_client *ntlm,
424
424
  ntlm_buf *message)
@@ -438,7 +438,7 @@ static inline bool read_int32(
438
438
  return true;
439
439
  }
440
440
 
441
- static inline bool read_int64(
441
+ NTLM_INLINE(bool) read_int64(
442
442
  uint64_t *out,
443
443
  ntlm_client *ntlm,
444
444
  ntlm_buf *message)
@@ -462,7 +462,7 @@ static inline bool read_int64(
462
462
  return true;
463
463
  }
464
464
 
465
- static inline bool read_version(
465
+ NTLM_INLINE(bool) read_version(
466
466
  ntlm_version *out,
467
467
  ntlm_client *ntlm,
468
468
  ntlm_buf *message)
@@ -473,7 +473,7 @@ static inline bool read_version(
473
473
  read_int32(&out->reserved, ntlm, message);
474
474
  }
475
475
 
476
- static inline bool read_bufinfo(
476
+ NTLM_INLINE(bool) read_bufinfo(
477
477
  uint16_t *out_len,
478
478
  uint32_t *out_offset,
479
479
  ntlm_client *ntlm,
@@ -486,7 +486,7 @@ static inline bool read_bufinfo(
486
486
  read_int32(out_offset, ntlm, message);
487
487
  }
488
488
 
489
- static inline bool read_string_unicode(
489
+ NTLM_INLINE(bool) read_string_unicode(
490
490
  char **out,
491
491
  ntlm_client *ntlm,
492
492
  ntlm_buf *message,
@@ -504,7 +504,7 @@ static inline bool read_string_unicode(
504
504
  return ret;
505
505
  }
506
506
 
507
- static inline bool read_string_ascii(
507
+ NTLM_INLINE(bool) read_string_ascii(
508
508
  char **out,
509
509
  ntlm_client *ntlm,
510
510
  ntlm_buf *message,
@@ -526,7 +526,7 @@ static inline bool read_string_ascii(
526
526
  return true;
527
527
  }
528
528
 
529
- static inline bool read_string(
529
+ NTLM_INLINE(bool) read_string(
530
530
  char **out,
531
531
  ntlm_client *ntlm,
532
532
  ntlm_buf *message,
@@ -539,7 +539,7 @@ static inline bool read_string(
539
539
  return read_string_ascii(out, ntlm, message, string_len);
540
540
  }
541
541
 
542
- static inline bool read_target_info(
542
+ NTLM_INLINE(bool) read_target_info(
543
543
  char **server_out,
544
544
  char **domain_out,
545
545
  char **server_dns_out,
@@ -965,7 +965,7 @@ static void des_key_from_password(
965
965
  generate_odd_parity(out);
966
966
  }
967
967
 
968
- static inline bool generate_lm_hash(
968
+ NTLM_INLINE(bool) generate_lm_hash(
969
969
  ntlm_des_block out[2],
970
970
  ntlm_client *ntlm,
971
971
  const char *password)
@@ -988,9 +988,9 @@ static inline bool generate_lm_hash(
988
988
  keystr2_len = (password_len > 7) ? MIN(14, password_len) - 7 : 0;
989
989
 
990
990
  for (i = 0; i < keystr1_len; i++)
991
- keystr1[i] = (unsigned char)toupper(password[i]);
991
+ keystr1[i] = (unsigned char)toupper((unsigned char)password[i]);
992
992
  for (i = 0; i < keystr2_len; i++)
993
- keystr2[i] = (unsigned char)toupper(password[i+7]);
993
+ keystr2[i] = (unsigned char)toupper((unsigned char)password[i+7]);
994
994
 
995
995
  /* DES encrypt the LM constant using the password as the key */
996
996
  des_key_from_password(&key1, keystr1, keystr1_len);
@@ -12,6 +12,7 @@
12
12
  #include "ntlm.h"
13
13
  #include "unicode.h"
14
14
  #include "compat.h"
15
+ #include "util.h"
15
16
 
16
17
  typedef unsigned int UTF32; /* at least 32 bits */
17
18
  typedef unsigned short UTF16; /* at least 16 bits */
@@ -180,7 +181,7 @@ static ConversionResult ConvertUTF16toUTF8 (
180
181
  * definition of UTF-8 goes up to 4-byte sequences.
181
182
  */
182
183
 
183
- static inline bool isLegalUTF8(const UTF8 *source, int length) {
184
+ NTLM_INLINE(bool) isLegalUTF8(const UTF8 *source, int length) {
184
185
  UTF8 a;
185
186
  const UTF8 *srcptr = source+length;
186
187
  switch (length) {
@@ -288,7 +289,7 @@ typedef enum {
288
289
  unicode_builtin_utf16_to_8
289
290
  } unicode_builtin_encoding_direction;
290
291
 
291
- static inline bool unicode_builtin_encoding_convert(
292
+ NTLM_INLINE(bool) unicode_builtin_encoding_convert(
292
293
  char **converted,
293
294
  size_t *converted_len,
294
295
  ntlm_client *ntlm,
@@ -372,13 +373,13 @@ static inline bool unicode_builtin_encoding_convert(
372
373
  goto done;
373
374
  }
374
375
 
376
+ out_len = out_start - out;
377
+
375
378
  if ((new_out = realloc(out, out_size)) == NULL) {
376
379
  ntlm_client_set_errmsg(ntlm, "out of memory");
377
380
  goto done;
378
381
  }
379
382
 
380
- out_len = out_start - out;
381
-
382
383
  out = new_out;
383
384
  out_start = new_out + out_len;
384
385
  out_end = out + out_size;
@@ -14,6 +14,7 @@
14
14
  #include "ntlmclient.h"
15
15
  #include "unicode.h"
16
16
  #include "ntlm.h"
17
+ #include "util.h"
17
18
  #include "compat.h"
18
19
 
19
20
  typedef enum {
@@ -40,7 +41,7 @@ bool ntlm_unicode_init(ntlm_client *ntlm)
40
41
  return true;
41
42
  }
42
43
 
43
- static inline bool unicode_iconv_encoding_convert(
44
+ NTLM_INLINE(bool) unicode_iconv_encoding_convert(
44
45
  char **converted,
45
46
  size_t *converted_len,
46
47
  ntlm_client *ntlm,