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
@@ -5,15 +5,25 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #include "hash_win32.h"
8
+ #include "win32.h"
9
9
 
10
10
  #include "global.h"
11
- #include "hash.h"
12
11
 
13
12
  #include <wincrypt.h>
14
13
  #include <strsafe.h>
15
14
 
16
- static struct git_hash_prov hash_prov = {0};
15
+ #define GIT_HASH_CNG_DLL_NAME "bcrypt.dll"
16
+
17
+ /* BCRYPT_SHA1_ALGORITHM */
18
+ #define GIT_HASH_CNG_HASH_TYPE L"SHA1"
19
+
20
+ /* BCRYPT_OBJECT_LENGTH */
21
+ #define GIT_HASH_CNG_HASH_OBJECT_LEN L"ObjectLength"
22
+
23
+ /* BCRYPT_HASH_REUSEABLE_FLAGS */
24
+ #define GIT_HASH_CNG_HASH_REUSABLE 0x00000020
25
+
26
+ static git_hash_prov hash_prov = {0};
17
27
 
18
28
  /* Hash initialization */
19
29
 
@@ -25,7 +35,7 @@ GIT_INLINE(int) hash_cng_prov_init(void)
25
35
 
26
36
  /* Only use CNG on Windows 2008 / Vista SP1 or better (Windows 6.0 SP1) */
27
37
  if (!git_has_win32_version(6, 0, 1)) {
28
- giterr_set(GITERR_SHA1, "CryptoNG is not supported on this platform");
38
+ git_error_set(GIT_ERROR_SHA1, "CryptoNG is not supported on this platform");
29
39
  return -1;
30
40
  }
31
41
 
@@ -35,7 +45,7 @@ GIT_INLINE(int) hash_cng_prov_init(void)
35
45
  StringCchCat(dll_path, MAX_PATH, "\\") < 0 ||
36
46
  StringCchCat(dll_path, MAX_PATH, GIT_HASH_CNG_DLL_NAME) < 0 ||
37
47
  (hash_prov.prov.cng.dll = LoadLibrary(dll_path)) == NULL) {
38
- giterr_set(GITERR_SHA1, "CryptoNG library could not be loaded");
48
+ git_error_set(GIT_ERROR_SHA1, "CryptoNG library could not be loaded");
39
49
  return -1;
40
50
  }
41
51
 
@@ -49,7 +59,7 @@ GIT_INLINE(int) hash_cng_prov_init(void)
49
59
  (hash_prov.prov.cng.close_algorithm_provider = (hash_win32_cng_close_algorithm_provider_fn)GetProcAddress(hash_prov.prov.cng.dll, "BCryptCloseAlgorithmProvider")) == NULL) {
50
60
  FreeLibrary(hash_prov.prov.cng.dll);
51
61
 
52
- giterr_set(GITERR_OS, "CryptoNG functions could not be loaded");
62
+ git_error_set(GIT_ERROR_OS, "CryptoNG functions could not be loaded");
53
63
  return -1;
54
64
  }
55
65
 
@@ -57,7 +67,7 @@ GIT_INLINE(int) hash_cng_prov_init(void)
57
67
  if (hash_prov.prov.cng.open_algorithm_provider(&hash_prov.prov.cng.handle, GIT_HASH_CNG_HASH_TYPE, NULL, GIT_HASH_CNG_HASH_REUSABLE) < 0) {
58
68
  FreeLibrary(hash_prov.prov.cng.dll);
59
69
 
60
- giterr_set(GITERR_OS, "algorithm provider could not be initialized");
70
+ git_error_set(GIT_ERROR_OS, "algorithm provider could not be initialized");
61
71
  return -1;
62
72
  }
63
73
 
@@ -66,7 +76,7 @@ GIT_INLINE(int) hash_cng_prov_init(void)
66
76
  hash_prov.prov.cng.close_algorithm_provider(hash_prov.prov.cng.handle, 0);
67
77
  FreeLibrary(hash_prov.prov.cng.dll);
68
78
 
69
- giterr_set(GITERR_OS, "algorithm handle could not be found");
79
+ git_error_set(GIT_ERROR_OS, "algorithm handle could not be found");
70
80
  return -1;
71
81
  }
72
82
 
@@ -86,7 +96,7 @@ GIT_INLINE(void) hash_cng_prov_shutdown(void)
86
96
  GIT_INLINE(int) hash_cryptoapi_prov_init()
87
97
  {
88
98
  if (!CryptAcquireContext(&hash_prov.prov.cryptoapi.handle, NULL, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
89
- giterr_set(GITERR_OS, "legacy hash context could not be started");
99
+ git_error_set(GIT_ERROR_OS, "legacy hash context could not be started");
90
100
  return -1;
91
101
  }
92
102
 
@@ -101,7 +111,7 @@ GIT_INLINE(void) hash_cryptoapi_prov_shutdown(void)
101
111
  hash_prov.type = INVALID;
102
112
  }
103
113
 
104
- static void git_hash_global_shutdown(void)
114
+ static void sha1_shutdown(void)
105
115
  {
106
116
  if (hash_prov.type == CNG)
107
117
  hash_cng_prov_shutdown();
@@ -109,7 +119,7 @@ static void git_hash_global_shutdown(void)
109
119
  hash_cryptoapi_prov_shutdown();
110
120
  }
111
121
 
112
- int git_hash_global_init(void)
122
+ int git_hash_sha1_global_init(void)
113
123
  {
114
124
  int error = 0;
115
125
 
@@ -119,29 +129,29 @@ int git_hash_global_init(void)
119
129
  if ((error = hash_cng_prov_init()) < 0)
120
130
  error = hash_cryptoapi_prov_init();
121
131
 
122
- git__on_shutdown(git_hash_global_shutdown);
132
+ git__on_shutdown(sha1_shutdown);
123
133
 
124
134
  return error;
125
135
  }
126
136
 
127
137
  /* CryptoAPI: available in Windows XP and newer */
128
138
 
129
- GIT_INLINE(int) hash_ctx_cryptoapi_init(git_hash_ctx *ctx)
139
+ GIT_INLINE(int) hash_ctx_cryptoapi_init(git_hash_sha1_ctx *ctx)
130
140
  {
131
141
  ctx->type = CRYPTOAPI;
132
142
  ctx->prov = &hash_prov;
133
143
 
134
- return git_hash_init(ctx);
144
+ return git_hash_sha1_init(ctx);
135
145
  }
136
146
 
137
- GIT_INLINE(int) hash_cryptoapi_init(git_hash_ctx *ctx)
147
+ GIT_INLINE(int) hash_cryptoapi_init(git_hash_sha1_ctx *ctx)
138
148
  {
139
149
  if (ctx->ctx.cryptoapi.valid)
140
150
  CryptDestroyHash(ctx->ctx.cryptoapi.hash_handle);
141
151
 
142
152
  if (!CryptCreateHash(ctx->prov->prov.cryptoapi.handle, CALG_SHA1, 0, 0, &ctx->ctx.cryptoapi.hash_handle)) {
143
153
  ctx->ctx.cryptoapi.valid = 0;
144
- giterr_set(GITERR_OS, "legacy hash implementation could not be created");
154
+ git_error_set(GIT_ERROR_OS, "legacy hash implementation could not be created");
145
155
  return -1;
146
156
  }
147
157
 
@@ -149,7 +159,7 @@ GIT_INLINE(int) hash_cryptoapi_init(git_hash_ctx *ctx)
149
159
  return 0;
150
160
  }
151
161
 
152
- GIT_INLINE(int) hash_cryptoapi_update(git_hash_ctx *ctx, const void *_data, size_t len)
162
+ GIT_INLINE(int) hash_cryptoapi_update(git_hash_sha1_ctx *ctx, const void *_data, size_t len)
153
163
  {
154
164
  const BYTE *data = (BYTE *)_data;
155
165
 
@@ -159,7 +169,7 @@ GIT_INLINE(int) hash_cryptoapi_update(git_hash_ctx *ctx, const void *_data, size
159
169
  DWORD chunk = (len > MAXDWORD) ? MAXDWORD : (DWORD)len;
160
170
 
161
171
  if (!CryptHashData(ctx->ctx.cryptoapi.hash_handle, data, chunk, 0)) {
162
- giterr_set(GITERR_OS, "legacy hash data could not be updated");
172
+ git_error_set(GIT_ERROR_OS, "legacy hash data could not be updated");
163
173
  return -1;
164
174
  }
165
175
 
@@ -170,7 +180,7 @@ GIT_INLINE(int) hash_cryptoapi_update(git_hash_ctx *ctx, const void *_data, size
170
180
  return 0;
171
181
  }
172
182
 
173
- GIT_INLINE(int) hash_cryptoapi_final(git_oid *out, git_hash_ctx *ctx)
183
+ GIT_INLINE(int) hash_cryptoapi_final(git_oid *out, git_hash_sha1_ctx *ctx)
174
184
  {
175
185
  DWORD len = 20;
176
186
  int error = 0;
@@ -178,7 +188,7 @@ GIT_INLINE(int) hash_cryptoapi_final(git_oid *out, git_hash_ctx *ctx)
178
188
  assert(ctx->ctx.cryptoapi.valid);
179
189
 
180
190
  if (!CryptGetHashParam(ctx->ctx.cryptoapi.hash_handle, HP_HASHVAL, out->id, &len, 0)) {
181
- giterr_set(GITERR_OS, "legacy hash data could not be finished");
191
+ git_error_set(GIT_ERROR_OS, "legacy hash data could not be finished");
182
192
  error = -1;
183
193
  }
184
194
 
@@ -188,7 +198,7 @@ GIT_INLINE(int) hash_cryptoapi_final(git_oid *out, git_hash_ctx *ctx)
188
198
  return error;
189
199
  }
190
200
 
191
- GIT_INLINE(void) hash_ctx_cryptoapi_cleanup(git_hash_ctx *ctx)
201
+ GIT_INLINE(void) hash_ctx_cryptoapi_cleanup(git_hash_sha1_ctx *ctx)
192
202
  {
193
203
  if (ctx->ctx.cryptoapi.valid)
194
204
  CryptDestroyHash(ctx->ctx.cryptoapi.hash_handle);
@@ -196,7 +206,7 @@ GIT_INLINE(void) hash_ctx_cryptoapi_cleanup(git_hash_ctx *ctx)
196
206
 
197
207
  /* CNG: Available in Windows Server 2008 and newer */
198
208
 
199
- GIT_INLINE(int) hash_ctx_cng_init(git_hash_ctx *ctx)
209
+ GIT_INLINE(int) hash_ctx_cng_init(git_hash_sha1_ctx *ctx)
200
210
  {
201
211
  if ((ctx->ctx.cng.hash_object = git__malloc(hash_prov.prov.cng.hash_object_size)) == NULL)
202
212
  return -1;
@@ -204,7 +214,7 @@ GIT_INLINE(int) hash_ctx_cng_init(git_hash_ctx *ctx)
204
214
  if (hash_prov.prov.cng.create_hash(hash_prov.prov.cng.handle, &ctx->ctx.cng.hash_handle, ctx->ctx.cng.hash_object, hash_prov.prov.cng.hash_object_size, NULL, 0, 0) < 0) {
205
215
  git__free(ctx->ctx.cng.hash_object);
206
216
 
207
- giterr_set(GITERR_OS, "hash implementation could not be created");
217
+ git_error_set(GIT_ERROR_OS, "hash implementation could not be created");
208
218
  return -1;
209
219
  }
210
220
 
@@ -214,7 +224,7 @@ GIT_INLINE(int) hash_ctx_cng_init(git_hash_ctx *ctx)
214
224
  return 0;
215
225
  }
216
226
 
217
- GIT_INLINE(int) hash_cng_init(git_hash_ctx *ctx)
227
+ GIT_INLINE(int) hash_cng_init(git_hash_sha1_ctx *ctx)
218
228
  {
219
229
  BYTE hash[GIT_OID_RAWSZ];
220
230
 
@@ -223,7 +233,7 @@ GIT_INLINE(int) hash_cng_init(git_hash_ctx *ctx)
223
233
 
224
234
  /* CNG needs to be finished to restart */
225
235
  if (ctx->prov->prov.cng.finish_hash(ctx->ctx.cng.hash_handle, hash, GIT_OID_RAWSZ, 0) < 0) {
226
- giterr_set(GITERR_OS, "hash implementation could not be finished");
236
+ git_error_set(GIT_ERROR_OS, "hash implementation could not be finished");
227
237
  return -1;
228
238
  }
229
239
 
@@ -232,7 +242,7 @@ GIT_INLINE(int) hash_cng_init(git_hash_ctx *ctx)
232
242
  return 0;
233
243
  }
234
244
 
235
- GIT_INLINE(int) hash_cng_update(git_hash_ctx *ctx, const void *_data, size_t len)
245
+ GIT_INLINE(int) hash_cng_update(git_hash_sha1_ctx *ctx, const void *_data, size_t len)
236
246
  {
237
247
  PBYTE data = (PBYTE)_data;
238
248
 
@@ -240,7 +250,7 @@ GIT_INLINE(int) hash_cng_update(git_hash_ctx *ctx, const void *_data, size_t len
240
250
  ULONG chunk = (len > ULONG_MAX) ? ULONG_MAX : (ULONG)len;
241
251
 
242
252
  if (ctx->prov->prov.cng.hash_data(ctx->ctx.cng.hash_handle, data, chunk, 0) < 0) {
243
- giterr_set(GITERR_OS, "hash could not be updated");
253
+ git_error_set(GIT_ERROR_OS, "hash could not be updated");
244
254
  return -1;
245
255
  }
246
256
 
@@ -251,10 +261,10 @@ GIT_INLINE(int) hash_cng_update(git_hash_ctx *ctx, const void *_data, size_t len
251
261
  return 0;
252
262
  }
253
263
 
254
- GIT_INLINE(int) hash_cng_final(git_oid *out, git_hash_ctx *ctx)
264
+ GIT_INLINE(int) hash_cng_final(git_oid *out, git_hash_sha1_ctx *ctx)
255
265
  {
256
266
  if (ctx->prov->prov.cng.finish_hash(ctx->ctx.cng.hash_handle, out->id, GIT_OID_RAWSZ, 0) < 0) {
257
- giterr_set(GITERR_OS, "hash could not be finished");
267
+ git_error_set(GIT_ERROR_OS, "hash could not be finished");
258
268
  return -1;
259
269
  }
260
270
 
@@ -263,7 +273,7 @@ GIT_INLINE(int) hash_cng_final(git_oid *out, git_hash_ctx *ctx)
263
273
  return 0;
264
274
  }
265
275
 
266
- GIT_INLINE(void) hash_ctx_cng_cleanup(git_hash_ctx *ctx)
276
+ GIT_INLINE(void) hash_ctx_cng_cleanup(git_hash_sha1_ctx *ctx)
267
277
  {
268
278
  ctx->prov->prov.cng.destroy_hash(ctx->ctx.cng.hash_handle);
269
279
  git__free(ctx->ctx.cng.hash_object);
@@ -271,7 +281,7 @@ GIT_INLINE(void) hash_ctx_cng_cleanup(git_hash_ctx *ctx)
271
281
 
272
282
  /* Indirection between CryptoAPI and CNG */
273
283
 
274
- int git_hash_ctx_init(git_hash_ctx *ctx)
284
+ int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
275
285
  {
276
286
  int error = 0;
277
287
 
@@ -282,33 +292,33 @@ int git_hash_ctx_init(git_hash_ctx *ctx)
282
292
  * initialized with git_libgit2_init. Otherwise, it must be initialized
283
293
  * at first use.
284
294
  */
285
- if (hash_prov.type == INVALID && (error = git_hash_global_init()) < 0)
295
+ if (hash_prov.type == INVALID && (error = git_hash_sha1_global_init()) < 0)
286
296
  return error;
287
297
 
288
- memset(ctx, 0x0, sizeof(git_hash_ctx));
298
+ memset(ctx, 0x0, sizeof(git_hash_sha1_ctx));
289
299
 
290
300
  return (hash_prov.type == CNG) ? hash_ctx_cng_init(ctx) : hash_ctx_cryptoapi_init(ctx);
291
301
  }
292
302
 
293
- int git_hash_init(git_hash_ctx *ctx)
303
+ int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
294
304
  {
295
305
  assert(ctx && ctx->type);
296
306
  return (ctx->type == CNG) ? hash_cng_init(ctx) : hash_cryptoapi_init(ctx);
297
307
  }
298
308
 
299
- int git_hash_update(git_hash_ctx *ctx, const void *data, size_t len)
309
+ int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
300
310
  {
301
311
  assert(ctx && ctx->type);
302
312
  return (ctx->type == CNG) ? hash_cng_update(ctx, data, len) : hash_cryptoapi_update(ctx, data, len);
303
313
  }
304
314
 
305
- int git_hash_final(git_oid *out, git_hash_ctx *ctx)
315
+ int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
306
316
  {
307
317
  assert(ctx && ctx->type);
308
318
  return (ctx->type == CNG) ? hash_cng_final(out, ctx) : hash_cryptoapi_final(out, ctx);
309
319
  }
310
320
 
311
- void git_hash_ctx_cleanup(git_hash_ctx *ctx)
321
+ void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
312
322
  {
313
323
  assert(ctx);
314
324
 
@@ -5,12 +5,10 @@
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
7
 
8
- #ifndef INCLUDE_hash_hash_win32_h__
9
- #define INCLUDE_hash_hash_win32_h__
8
+ #ifndef INCLUDE_hash_sha1_win32_h__
9
+ #define INCLUDE_hash_sha1_win32_h__
10
10
 
11
- #include "common.h"
12
-
13
- #include "hash.h"
11
+ #include "hash/sha1.h"
14
12
 
15
13
  #include <wincrypt.h>
16
14
  #include <strsafe.h>
@@ -36,17 +34,6 @@ struct hash_cryptoapi_prov {
36
34
  * would not exist when building in pre-Windows 2008 environments.
37
35
  */
38
36
 
39
- #define GIT_HASH_CNG_DLL_NAME "bcrypt.dll"
40
-
41
- /* BCRYPT_SHA1_ALGORITHM */
42
- #define GIT_HASH_CNG_HASH_TYPE L"SHA1"
43
-
44
- /* BCRYPT_OBJECT_LENGTH */
45
- #define GIT_HASH_CNG_HASH_OBJECT_LEN L"ObjectLength"
46
-
47
- /* BCRYPT_HASH_REUSEABLE_FLAGS */
48
- #define GIT_HASH_CNG_HASH_REUSABLE 0x00000020
49
-
50
37
  /* Function declarations for CNG */
51
38
  typedef NTSTATUS (WINAPI *hash_win32_cng_open_algorithm_provider_fn)(
52
39
  HANDLE /* BCRYPT_ALG_HANDLE */ *phAlgorithm,
@@ -106,14 +93,14 @@ struct hash_cng_prov {
106
93
  DWORD hash_object_size;
107
94
  };
108
95
 
109
- struct git_hash_prov {
96
+ typedef struct {
110
97
  enum hash_win32_prov_type type;
111
98
 
112
99
  union {
113
100
  struct hash_cryptoapi_prov cryptoapi;
114
101
  struct hash_cng_prov cng;
115
102
  } prov;
116
- };
103
+ } git_hash_prov;
117
104
 
118
105
  /* Hash contexts */
119
106
 
@@ -128,7 +115,7 @@ struct hash_cng_ctx {
128
115
  PBYTE hash_object;
129
116
  };
130
117
 
131
- struct git_hash_ctx {
118
+ struct git_hash_sha1_ctx {
132
119
  enum hash_win32_prov_type type;
133
120
  git_hash_prov *prov;
134
121
 
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright (C) the libgit2 contributors. All rights reserved.
3
+ *
4
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
5
+ * a Linking Exception. For full terms see the included COPYING file.
6
+ */
7
+
8
+ #ifndef INCLUDE_hash_sha1_h__
9
+ #define INCLUDE_hash_sha1_h__
10
+
11
+ #include "common.h"
12
+
13
+ typedef struct git_hash_sha1_ctx git_hash_sha1_ctx;
14
+
15
+ #if defined(GIT_SHA1_COLLISIONDETECT)
16
+ # include "sha1/collisiondetect.h"
17
+ #elif defined(GIT_SHA1_COMMON_CRYPTO)
18
+ # include "sha1/common_crypto.h"
19
+ #elif defined(GIT_SHA1_OPENSSL)
20
+ # include "sha1/openssl.h"
21
+ #elif defined(GIT_SHA1_WIN32)
22
+ # include "sha1/win32.h"
23
+ #elif defined(GIT_SHA1_MBEDTLS)
24
+ # include "sha1/mbedtls.h"
25
+ #else
26
+ # include "sha1/generic.h"
27
+ #endif
28
+
29
+ int git_hash_sha1_global_init(void);
30
+
31
+ int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx);
32
+ void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx);
33
+
34
+ int git_hash_sha1_init(git_hash_sha1_ctx *c);
35
+ int git_hash_sha1_update(git_hash_sha1_ctx *c, const void *data, size_t len);
36
+ int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *c);
37
+
38
+ #endif
@@ -7,6 +7,67 @@
7
7
 
8
8
  #include "hash.h"
9
9
 
10
+ int git_hash_global_init(void)
11
+ {
12
+ return git_hash_sha1_global_init();
13
+ }
14
+
15
+ int git_hash_ctx_init(git_hash_ctx *ctx)
16
+ {
17
+ int error;
18
+
19
+ if ((error = git_hash_sha1_ctx_init(&ctx->sha1)) < 0)
20
+ return error;
21
+
22
+ ctx->algo = GIT_HASH_ALGO_SHA1;
23
+
24
+ return 0;
25
+ }
26
+
27
+ void git_hash_ctx_cleanup(git_hash_ctx *ctx)
28
+ {
29
+ switch (ctx->algo) {
30
+ case GIT_HASH_ALGO_SHA1:
31
+ git_hash_sha1_ctx_cleanup(&ctx->sha1);
32
+ return;
33
+ default:
34
+ assert(0);
35
+ }
36
+ }
37
+
38
+ int git_hash_init(git_hash_ctx *ctx)
39
+ {
40
+ switch (ctx->algo) {
41
+ case GIT_HASH_ALGO_SHA1:
42
+ return git_hash_sha1_init(&ctx->sha1);
43
+ default:
44
+ assert(0);
45
+ return -1;
46
+ }
47
+ }
48
+
49
+ int git_hash_update(git_hash_ctx *ctx, const void *data, size_t len)
50
+ {
51
+ switch (ctx->algo) {
52
+ case GIT_HASH_ALGO_SHA1:
53
+ return git_hash_sha1_update(&ctx->sha1, data, len);
54
+ default:
55
+ assert(0);
56
+ return -1;
57
+ }
58
+ }
59
+
60
+ int git_hash_final(git_oid *out, git_hash_ctx *ctx)
61
+ {
62
+ switch (ctx->algo) {
63
+ case GIT_HASH_ALGO_SHA1:
64
+ return git_hash_sha1_final(out, &ctx->sha1);
65
+ default:
66
+ assert(0);
67
+ return -1;
68
+ }
69
+ }
70
+
10
71
  int git_hash_buf(git_oid *out, const void *data, size_t len)
11
72
  {
12
73
  git_hash_ctx ctx;
@@ -4,6 +4,7 @@
4
4
  * This file is part of libgit2, distributed under the GNU GPL v2 with
5
5
  * a Linking Exception. For full terms see the included COPYING file.
6
6
  */
7
+
7
8
  #ifndef INCLUDE_hash_h__
8
9
  #define INCLUDE_hash_h__
9
10
 
@@ -11,32 +12,30 @@
11
12
 
12
13
  #include "git2/oid.h"
13
14
 
14
- typedef struct git_hash_prov git_hash_prov;
15
- typedef struct git_hash_ctx git_hash_ctx;
16
-
17
- int git_hash_global_init(void);
18
- int git_hash_ctx_init(git_hash_ctx *ctx);
19
- void git_hash_ctx_cleanup(git_hash_ctx *ctx);
20
-
21
- #if defined(GIT_SHA1_COLLISIONDETECT)
22
- # include "hash/hash_collisiondetect.h"
23
- #elif defined(GIT_SHA1_COMMON_CRYPTO)
24
- # include "hash/hash_common_crypto.h"
25
- #elif defined(GIT_SHA1_OPENSSL)
26
- # include "hash/hash_openssl.h"
27
- #elif defined(GIT_SHA1_WIN32)
28
- # include "hash/hash_win32.h"
29
- #elif defined(GIT_SHA1_MBEDTLS)
30
- # include "hash/hash_mbedtls.h"
31
- #else
32
- # include "hash/hash_generic.h"
33
- #endif
34
-
35
15
  typedef struct {
36
16
  void *data;
37
17
  size_t len;
38
18
  } git_buf_vec;
39
19
 
20
+ typedef enum {
21
+ GIT_HASH_ALGO_UNKNOWN = 0,
22
+ GIT_HASH_ALGO_SHA1,
23
+ } git_hash_algo_t;
24
+
25
+ #include "hash/sha1.h"
26
+
27
+ typedef struct git_hash_ctx {
28
+ union {
29
+ git_hash_sha1_ctx sha1;
30
+ };
31
+ git_hash_algo_t algo;
32
+ } git_hash_ctx;
33
+
34
+ int git_hash_global_init(void);
35
+
36
+ int git_hash_ctx_init(git_hash_ctx *ctx);
37
+ void git_hash_ctx_cleanup(git_hash_ctx *ctx);
38
+
40
39
  int git_hash_init(git_hash_ctx *c);
41
40
  int git_hash_update(git_hash_ctx *c, const void *data, size_t len);
42
41
  int git_hash_final(git_oid *out, git_hash_ctx *c);
@@ -8,7 +8,7 @@
8
8
  #include "common.h"
9
9
 
10
10
  #include "git2/sys/hashsig.h"
11
- #include "fileops.h"
11
+ #include "futils.h"
12
12
  #include "util.h"
13
13
 
14
14
  typedef uint32_t hashsig_t;
@@ -216,7 +216,7 @@ static int hashsig_finalize_hashes(git_hashsig *sig)
216
216
  {
217
217
  if (sig->mins.size < HASHSIG_HEAP_MIN_SIZE &&
218
218
  !(sig->opt & GIT_HASHSIG_ALLOW_SMALL_FILES)) {
219
- giterr_set(GITERR_INVALID,
219
+ git_error_set(GIT_ERROR_INVALID,
220
220
  "file too small for similarity signature calculation");
221
221
  return GIT_EBUFS;
222
222
  }
@@ -249,7 +249,7 @@ int git_hashsig_create(
249
249
  int error;
250
250
  hashsig_in_progress prog;
251
251
  git_hashsig *sig = hashsig_alloc(opts);
252
- GITERR_CHECK_ALLOC(sig);
252
+ GIT_ERROR_CHECK_ALLOC(sig);
253
253
 
254
254
  hashsig_in_progress_init(&prog, sig);
255
255
 
@@ -276,7 +276,7 @@ int git_hashsig_create_fromfile(
276
276
  int error = 0, fd;
277
277
  hashsig_in_progress prog;
278
278
  git_hashsig *sig = hashsig_alloc(opts);
279
- GITERR_CHECK_ALLOC(sig);
279
+ GIT_ERROR_CHECK_ALLOC(sig);
280
280
 
281
281
  if ((fd = git_futils_open_ro(path)) < 0) {
282
282
  git__free(sig);
@@ -288,7 +288,7 @@ int git_hashsig_create_fromfile(
288
288
  while (!error) {
289
289
  if ((buflen = p_read(fd, buf, sizeof(buf))) <= 0) {
290
290
  if ((error = (int)buflen) < 0)
291
- giterr_set(GITERR_OS,
291
+ git_error_set(GIT_ERROR_OS,
292
292
  "read error on '%s' calculating similarity hashes", path);
293
293
  break;
294
294
  }