rugged 0.27.9 → 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.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +98 -54
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
- data/vendor/libgit2/cmake/Modules/FindmbedTLS.cmake +93 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +2 -0
- data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
- data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
- data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
- data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
- data/vendor/libgit2/deps/pcre/COPYING +5 -0
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
- data/vendor/libgit2/deps/pcre/config.h.in +57 -0
- data/vendor/libgit2/deps/pcre/pcre.h +641 -0
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
- data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
- data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
- data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
- data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
- data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
- data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
- data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
- data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
- data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
- data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
- data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
- data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
- data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
- data/vendor/libgit2/deps/pcre/ucp.h +224 -0
- data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/zlib/COPYING +27 -0
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2.h +5 -0
- data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
- data/vendor/libgit2/include/git2/apply.h +149 -0
- data/vendor/libgit2/include/git2/attr.h +38 -20
- data/vendor/libgit2/include/git2/blame.h +42 -25
- data/vendor/libgit2/include/git2/blob.h +45 -13
- data/vendor/libgit2/include/git2/branch.h +1 -1
- data/vendor/libgit2/include/git2/buffer.h +22 -16
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +65 -32
- data/vendor/libgit2/include/git2/cherrypick.h +9 -7
- data/vendor/libgit2/include/git2/clone.h +12 -10
- data/vendor/libgit2/include/git2/commit.h +53 -3
- data/vendor/libgit2/include/git2/common.h +60 -8
- data/vendor/libgit2/include/git2/config.h +30 -19
- data/vendor/libgit2/include/git2/cred.h +308 -0
- data/vendor/libgit2/include/git2/deprecated.h +493 -0
- data/vendor/libgit2/include/git2/describe.h +32 -9
- data/vendor/libgit2/include/git2/diff.h +208 -156
- data/vendor/libgit2/include/git2/errors.h +54 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/ignore.h +2 -2
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/mailmap.h +115 -0
- data/vendor/libgit2/include/git2/merge.h +35 -18
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +17 -29
- data/vendor/libgit2/include/git2/odb.h +12 -11
- data/vendor/libgit2/include/git2/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +14 -3
- data/vendor/libgit2/include/git2/proxy.h +14 -8
- data/vendor/libgit2/include/git2/rebase.h +53 -6
- data/vendor/libgit2/include/git2/refs.h +33 -15
- data/vendor/libgit2/include/git2/refspec.h +17 -0
- data/vendor/libgit2/include/git2/remote.h +123 -24
- data/vendor/libgit2/include/git2/repository.h +76 -39
- data/vendor/libgit2/include/git2/revert.h +6 -4
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +15 -12
- data/vendor/libgit2/include/git2/status.h +33 -20
- data/vendor/libgit2/include/git2/submodule.h +30 -12
- data/vendor/libgit2/include/git2/sys/alloc.h +101 -0
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/cred.h +90 -0
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/index.h +3 -0
- data/vendor/libgit2/include/git2/sys/mempack.h +35 -35
- data/vendor/libgit2/include/git2/sys/merge.h +9 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +64 -0
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
- data/vendor/libgit2/include/git2/sys/repository.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +92 -12
- data/vendor/libgit2/include/git2/sys/transport.h +129 -83
- data/vendor/libgit2/include/git2/tag.h +13 -4
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transaction.h +1 -0
- data/vendor/libgit2/include/git2/transport.h +11 -311
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +33 -111
- data/vendor/libgit2/include/git2/version.h +4 -4
- data/vendor/libgit2/include/git2/worktree.h +48 -13
- data/vendor/libgit2/src/CMakeLists.txt +96 -164
- data/vendor/libgit2/src/alloc.c +43 -0
- data/vendor/libgit2/src/alloc.h +40 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +119 -0
- data/vendor/libgit2/src/{streams/curl.h → allocators/stdalloc.h} +5 -5
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
- data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
- data/vendor/libgit2/src/annotated_commit.c +15 -8
- data/vendor/libgit2/src/apply.c +537 -31
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +81 -75
- data/vendor/libgit2/src/attr_file.c +207 -121
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +51 -53
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +47 -20
- data/vendor/libgit2/src/blame.h +2 -1
- data/vendor/libgit2/src/blame_git.c +37 -20
- data/vendor/libgit2/src/blob.c +128 -42
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +67 -43
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +69 -57
- data/vendor/libgit2/src/buffer.h +1 -1
- data/vendor/libgit2/src/cache.c +38 -45
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +20 -3
- data/vendor/libgit2/src/checkout.c +109 -90
- data/vendor/libgit2/src/cherrypick.c +15 -9
- data/vendor/libgit2/src/clone.c +49 -27
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +117 -49
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +30 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +27 -91
- data/vendor/libgit2/src/config.c +194 -176
- data/vendor/libgit2/src/config.h +8 -20
- data/vendor/libgit2/src/config_backend.h +96 -0
- data/vendor/libgit2/src/config_cache.c +41 -35
- data/vendor/libgit2/src/config_entries.c +229 -0
- data/vendor/libgit2/src/config_entries.h +24 -0
- data/vendor/libgit2/src/config_file.c +439 -753
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +114 -63
- data/vendor/libgit2/src/config_parse.h +17 -16
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -190
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +53 -68
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +47 -49
- data/vendor/libgit2/src/diff_file.c +19 -17
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +162 -106
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +42 -30
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +16 -16
- data/vendor/libgit2/src/diff_xdiff.c +15 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +11 -3
- data/vendor/libgit2/src/fetch.c +10 -5
- data/vendor/libgit2/src/fetchhead.c +17 -17
- data/vendor/libgit2/src/filebuf.c +32 -36
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +46 -38
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +80 -73
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +48 -63
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
- data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
- data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +46 -0
- data/vendor/libgit2/src/hash/sha1/mbedtls.h +19 -0
- data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
- data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
- data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hashsig.c +5 -5
- data/vendor/libgit2/src/idxmap.c +107 -61
- data/vendor/libgit2/src/idxmap.h +153 -31
- data/vendor/libgit2/src/ignore.c +43 -47
- data/vendor/libgit2/src/index.c +337 -232
- data/vendor/libgit2/src/index.h +17 -1
- data/vendor/libgit2/src/indexer.c +346 -175
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +142 -70
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/khash.h +3 -1
- data/vendor/libgit2/src/mailmap.c +485 -0
- data/vendor/libgit2/src/mailmap.h +35 -0
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +144 -100
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +24 -29
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +184 -0
- data/vendor/libgit2/src/net.h +36 -0
- data/vendor/libgit2/src/netops.c +55 -156
- data/vendor/libgit2/src/netops.h +3 -23
- data/vendor/libgit2/src/notes.c +16 -11
- data/vendor/libgit2/src/object.c +120 -69
- data/vendor/libgit2/src/object.h +22 -9
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +116 -93
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +62 -55
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +18 -14
- data/vendor/libgit2/src/offmap.c +53 -35
- data/vendor/libgit2/src/offmap.h +108 -21
- data/vendor/libgit2/src/oid.c +12 -7
- data/vendor/libgit2/src/oidmap.c +49 -47
- data/vendor/libgit2/src/oidmap.h +101 -24
- data/vendor/libgit2/src/pack-objects.c +88 -87
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +99 -101
- data/vendor/libgit2/src/pack.h +17 -19
- data/vendor/libgit2/src/parse.c +10 -0
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +4 -4
- data/vendor/libgit2/src/patch_generate.c +20 -20
- data/vendor/libgit2/src/patch_parse.c +151 -63
- data/vendor/libgit2/src/path.c +169 -125
- data/vendor/libgit2/src/path.h +3 -71
- data/vendor/libgit2/src/pathspec.c +19 -19
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +8 -3
- data/vendor/libgit2/src/push.c +37 -31
- data/vendor/libgit2/src/push.h +2 -1
- data/vendor/libgit2/src/reader.c +265 -0
- data/vendor/libgit2/src/reader.h +107 -0
- data/vendor/libgit2/src/rebase.c +115 -59
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +381 -254
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +118 -88
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +56 -37
- data/vendor/libgit2/src/refspec.h +1 -1
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +266 -215
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +280 -225
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +8 -8
- data/vendor/libgit2/src/revert.c +14 -9
- data/vendor/libgit2/src/revparse.c +47 -48
- data/vendor/libgit2/src/revwalk.c +120 -57
- data/vendor/libgit2/src/revwalk.h +22 -1
- data/vendor/libgit2/src/settings.c +47 -10
- data/vendor/libgit2/src/signature.c +11 -11
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +125 -99
- data/vendor/libgit2/src/status.c +28 -22
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +483 -0
- data/vendor/libgit2/src/streams/mbedtls.h +23 -0
- data/vendor/libgit2/src/streams/openssl.c +224 -114
- data/vendor/libgit2/src/streams/openssl.h +4 -108
- data/vendor/libgit2/src/streams/registry.c +118 -0
- data/vendor/libgit2/src/streams/registry.h +19 -0
- data/vendor/libgit2/src/streams/socket.c +55 -30
- data/vendor/libgit2/src/streams/stransport.c +57 -32
- data/vendor/libgit2/src/streams/stransport.h +5 -0
- data/vendor/libgit2/src/streams/tls.c +50 -19
- data/vendor/libgit2/src/streams/tls.h +12 -4
- data/vendor/libgit2/src/strmap.c +47 -74
- data/vendor/libgit2/src/strmap.h +108 -33
- data/vendor/libgit2/src/submodule.c +272 -216
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +29 -19
- data/vendor/libgit2/src/tag.c +41 -28
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +3 -3
- data/vendor/libgit2/src/trailer.c +52 -38
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +5 -5
- data/vendor/libgit2/src/transports/auth.c +15 -11
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +33 -18
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
- data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/transports/git.c +26 -31
- data/vendor/libgit2/src/transports/http.c +881 -348
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +35 -35
- data/vendor/libgit2/src/transports/smart.c +70 -47
- data/vendor/libgit2/src/transports/smart.h +3 -4
- data/vendor/libgit2/src/transports/smart_pkt.c +43 -40
- data/vendor/libgit2/src/transports/smart_protocol.c +96 -116
- data/vendor/libgit2/src/transports/ssh.c +77 -66
- data/vendor/libgit2/src/transports/winhttp.c +318 -314
- data/vendor/libgit2/src/tree-cache.c +19 -12
- data/vendor/libgit2/src/tree.c +103 -142
- data/vendor/libgit2/src/tree.h +1 -12
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +1 -11
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +70 -56
- data/vendor/libgit2/src/util.h +28 -156
- data/vendor/libgit2/src/vector.c +4 -4
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +3 -3
- data/vendor/libgit2/src/win32/map.c +9 -11
- data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
- data/vendor/libgit2/src/win32/path_w32.c +113 -9
- data/vendor/libgit2/src/win32/path_w32.h +18 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +70 -45
- data/vendor/libgit2/src/win32/precompiled.h +0 -2
- data/vendor/libgit2/src/win32/thread.c +5 -10
- data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +3 -2
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +26 -75
- data/vendor/libgit2/src/win32/w32_stack.c +6 -11
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +27 -64
- data/vendor/libgit2/src/win32/w32_util.h +5 -49
- data/vendor/libgit2/src/worktree.c +95 -60
- data/vendor/libgit2/src/worktree.h +2 -0
- data/vendor/libgit2/src/xdiff/xdiffi.c +7 -5
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +122 -33
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/config.h +0 -7
- data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
- data/vendor/libgit2/deps/regex/regex.c +0 -92
- data/vendor/libgit2/deps/regex/regex.h +0 -582
- data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
- data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
- data/vendor/libgit2/deps/regex/regexec.c +0 -4369
- data/vendor/libgit2/include/git2/inttypes.h +0 -309
- data/vendor/libgit2/include/git2/sys/time.h +0 -31
- data/vendor/libgit2/libgit2.pc.in +0 -13
- data/vendor/libgit2/src/config_file.h +0 -73
- data/vendor/libgit2/src/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
- data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
- data/vendor/libgit2/src/streams/curl.c +0 -385
@@ -4,8 +4,8 @@
|
|
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
|
-
#ifndef
|
8
|
-
#define
|
7
|
+
#ifndef INCLUDE_futils_h__
|
8
|
+
#define INCLUDE_futils_h__
|
9
9
|
|
10
10
|
#include "common.h"
|
11
11
|
|
@@ -255,7 +255,7 @@ extern int git_futils_truncate(const char *path, int mode);
|
|
255
255
|
/**
|
256
256
|
* Get the filesize in bytes of a file
|
257
257
|
*/
|
258
|
-
extern
|
258
|
+
extern int git_futils_filesize(uint64_t *out, git_file fd);
|
259
259
|
|
260
260
|
#define GIT_PERMS_IS_EXEC(MODE) (((MODE) & 0111) != 0)
|
261
261
|
#define GIT_PERMS_CANONICAL(MODE) (GIT_PERMS_IS_EXEC(MODE) ? 0755 : 0644)
|
@@ -290,7 +290,7 @@ extern mode_t git_futils_canonical_mode(mode_t raw_mode);
|
|
290
290
|
extern int git_futils_mmap_ro(
|
291
291
|
git_map *out,
|
292
292
|
git_file fd,
|
293
|
-
|
293
|
+
off64_t begin,
|
294
294
|
size_t len);
|
295
295
|
|
296
296
|
/**
|
@@ -330,7 +330,7 @@ extern int git_futils_fake_symlink(const char *new, const char *old);
|
|
330
330
|
*/
|
331
331
|
typedef struct {
|
332
332
|
struct timespec mtime;
|
333
|
-
|
333
|
+
uint64_t size;
|
334
334
|
unsigned int ino;
|
335
335
|
} git_futils_filestamp;
|
336
336
|
|
@@ -340,7 +340,7 @@ typedef struct {
|
|
340
340
|
* This function updates the file stamp to current data for the given path
|
341
341
|
* and returns 0 if the file is up-to-date relative to the prior setting,
|
342
342
|
* 1 if the file has been changed, or GIT_ENOTFOUND if the file doesn't
|
343
|
-
* exist. This will not call
|
343
|
+
* exist. This will not call git_error_set, so you must set the error if you
|
344
344
|
* plan to return an error.
|
345
345
|
*
|
346
346
|
* @param stamp File stamp to be checked
|
data/vendor/libgit2/src/global.c
CHANGED
@@ -7,11 +7,13 @@
|
|
7
7
|
|
8
8
|
#include "global.h"
|
9
9
|
|
10
|
+
#include "alloc.h"
|
10
11
|
#include "hash.h"
|
11
12
|
#include "sysdir.h"
|
12
13
|
#include "filter.h"
|
13
14
|
#include "merge_driver.h"
|
14
|
-
#include "streams/
|
15
|
+
#include "streams/registry.h"
|
16
|
+
#include "streams/mbedtls.h"
|
15
17
|
#include "streams/openssl.h"
|
16
18
|
#include "thread-utils.h"
|
17
19
|
#include "git2/global.h"
|
@@ -24,9 +26,23 @@
|
|
24
26
|
|
25
27
|
git_mutex git__mwindow_mutex;
|
26
28
|
|
27
|
-
|
29
|
+
typedef int (*git_global_init_fn)(void);
|
30
|
+
|
31
|
+
static git_global_init_fn git__init_callbacks[] = {
|
32
|
+
git_allocator_global_init,
|
33
|
+
git_hash_global_init,
|
34
|
+
git_sysdir_global_init,
|
35
|
+
git_filter_global_init,
|
36
|
+
git_merge_driver_global_init,
|
37
|
+
git_transport_ssh_global_init,
|
38
|
+
git_stream_registry_global_init,
|
39
|
+
git_openssl_stream_global_init,
|
40
|
+
git_mbedtls_stream_global_init,
|
41
|
+
git_mwindow_global_init
|
42
|
+
};
|
43
|
+
|
44
|
+
static git_global_shutdown_fn git__shutdown_callbacks[ARRAY_SIZE(git__init_callbacks)];
|
28
45
|
|
29
|
-
static git_global_shutdown_fn git__shutdown_callbacks[MAX_SHUTDOWN_CB];
|
30
46
|
static git_atomic git__n_shutdown_callbacks;
|
31
47
|
static git_atomic git__n_inits;
|
32
48
|
char *git__user_agent;
|
@@ -35,7 +51,7 @@ char *git__ssl_ciphers;
|
|
35
51
|
void git__on_shutdown(git_global_shutdown_fn callback)
|
36
52
|
{
|
37
53
|
int count = git_atomic_inc(&git__n_shutdown_callbacks);
|
38
|
-
assert(count <=
|
54
|
+
assert(count <= (int) ARRAY_SIZE(git__shutdown_callbacks) && count > 0);
|
39
55
|
git__shutdown_callbacks[count - 1] = callback;
|
40
56
|
}
|
41
57
|
|
@@ -50,6 +66,7 @@ static void git__global_state_cleanup(git_global_st *st)
|
|
50
66
|
|
51
67
|
static int init_common(void)
|
52
68
|
{
|
69
|
+
size_t i;
|
53
70
|
int ret;
|
54
71
|
|
55
72
|
/* Initialize the CRT debug allocator first, before our first malloc */
|
@@ -58,15 +75,10 @@ static int init_common(void)
|
|
58
75
|
git_win32__stack_init();
|
59
76
|
#endif
|
60
77
|
|
61
|
-
/* Initialize
|
62
|
-
|
63
|
-
(ret =
|
64
|
-
|
65
|
-
(ret = git_merge_driver_global_init()) == 0 &&
|
66
|
-
(ret = git_transport_ssh_global_init()) == 0 &&
|
67
|
-
(ret = git_openssl_stream_global_init()) == 0 &&
|
68
|
-
(ret = git_curl_stream_global_init()) == 0)
|
69
|
-
ret = git_mwindow_global_init();
|
78
|
+
/* Initialize subsystems that have global state */
|
79
|
+
for (i = 0; i < ARRAY_SIZE(git__init_callbacks); i++)
|
80
|
+
if ((ret = git__init_callbacks[i]()) != 0)
|
81
|
+
break;
|
70
82
|
|
71
83
|
GIT_MEMORY_BARRIER;
|
72
84
|
|
@@ -129,14 +141,21 @@ static void shutdown_common(void)
|
|
129
141
|
*/
|
130
142
|
#if defined(GIT_THREADS) && defined(GIT_WIN32)
|
131
143
|
|
132
|
-
static DWORD
|
144
|
+
static DWORD _fls_index;
|
133
145
|
static volatile LONG _mutex = 0;
|
134
146
|
|
147
|
+
static void WINAPI fls_free(void *st)
|
148
|
+
{
|
149
|
+
git__global_state_cleanup(st);
|
150
|
+
git__free(st);
|
151
|
+
}
|
152
|
+
|
135
153
|
static int synchronized_threads_init(void)
|
136
154
|
{
|
137
155
|
int error;
|
138
156
|
|
139
|
-
|
157
|
+
if ((_fls_index = FlsAlloc(fls_free)) == FLS_OUT_OF_INDEXES)
|
158
|
+
return -1;
|
140
159
|
|
141
160
|
git_threads_init();
|
142
161
|
|
@@ -178,9 +197,7 @@ int git_libgit2_shutdown(void)
|
|
178
197
|
if ((ret = git_atomic_dec(&git__n_inits)) == 0) {
|
179
198
|
shutdown_common();
|
180
199
|
|
181
|
-
|
182
|
-
|
183
|
-
TlsFree(_tls_index);
|
200
|
+
FlsFree(_fls_index);
|
184
201
|
git_mutex_free(&git__mwindow_mutex);
|
185
202
|
|
186
203
|
#if defined(GIT_MSVC_CRTDBG)
|
@@ -201,7 +218,7 @@ git_global_st *git__global_state(void)
|
|
201
218
|
|
202
219
|
assert(git_atomic_get(&git__n_inits) > 0);
|
203
220
|
|
204
|
-
if ((ptr =
|
221
|
+
if ((ptr = FlsGetValue(_fls_index)) != NULL)
|
205
222
|
return ptr;
|
206
223
|
|
207
224
|
ptr = git__calloc(1, sizeof(git_global_st));
|
@@ -210,43 +227,10 @@ git_global_st *git__global_state(void)
|
|
210
227
|
|
211
228
|
git_buf_init(&ptr->error_buf, 0);
|
212
229
|
|
213
|
-
|
230
|
+
FlsSetValue(_fls_index, ptr);
|
214
231
|
return ptr;
|
215
232
|
}
|
216
233
|
|
217
|
-
/**
|
218
|
-
* Free the TLS data associated with this thread.
|
219
|
-
* This should only be used by the thread as it
|
220
|
-
* is exiting.
|
221
|
-
*/
|
222
|
-
void git__free_tls_data(void)
|
223
|
-
{
|
224
|
-
void *ptr = TlsGetValue(_tls_index);
|
225
|
-
if (!ptr)
|
226
|
-
return;
|
227
|
-
|
228
|
-
git__global_state_cleanup(ptr);
|
229
|
-
git__free(ptr);
|
230
|
-
TlsSetValue(_tls_index, NULL);
|
231
|
-
}
|
232
|
-
|
233
|
-
BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpvReserved)
|
234
|
-
{
|
235
|
-
GIT_UNUSED(hInstDll);
|
236
|
-
GIT_UNUSED(lpvReserved);
|
237
|
-
|
238
|
-
/* This is how Windows lets us know our thread is being shut down */
|
239
|
-
if (fdwReason == DLL_THREAD_DETACH) {
|
240
|
-
git__free_tls_data();
|
241
|
-
}
|
242
|
-
|
243
|
-
/*
|
244
|
-
* Windows pays attention to this during library loading. We don't do anything
|
245
|
-
* so we trivially succeed.
|
246
|
-
*/
|
247
|
-
return TRUE;
|
248
|
-
}
|
249
|
-
|
250
234
|
#elif defined(GIT_THREADS) && defined(_POSIX_THREADS)
|
251
235
|
|
252
236
|
static pthread_key_t _tls_key;
|
@@ -274,10 +258,10 @@ int git_libgit2_init(void)
|
|
274
258
|
{
|
275
259
|
int ret, err;
|
276
260
|
|
277
|
-
ret = git_atomic_inc(&git__n_inits);
|
278
|
-
|
279
261
|
if ((err = pthread_mutex_lock(&_init_mutex)) != 0)
|
280
262
|
return err;
|
263
|
+
|
264
|
+
ret = git_atomic_inc(&git__n_inits);
|
281
265
|
err = pthread_once(&_once_init, init_once);
|
282
266
|
err |= pthread_mutex_unlock(&_init_mutex);
|
283
267
|
|
@@ -291,13 +275,13 @@ int git_libgit2_shutdown(void)
|
|
291
275
|
{
|
292
276
|
void *ptr = NULL;
|
293
277
|
pthread_once_t new_once = PTHREAD_ONCE_INIT;
|
294
|
-
int ret;
|
278
|
+
int error, ret;
|
295
279
|
|
296
|
-
if ((
|
297
|
-
return
|
280
|
+
if ((error = pthread_mutex_lock(&_init_mutex)) != 0)
|
281
|
+
return error;
|
298
282
|
|
299
|
-
if ((ret =
|
300
|
-
|
283
|
+
if ((ret = git_atomic_dec(&git__n_inits)) != 0)
|
284
|
+
goto out;
|
301
285
|
|
302
286
|
/* Shut down any subsystems that have global state */
|
303
287
|
shutdown_common();
|
@@ -312,10 +296,11 @@ int git_libgit2_shutdown(void)
|
|
312
296
|
git_mutex_free(&git__mwindow_mutex);
|
313
297
|
_once_init = new_once;
|
314
298
|
|
315
|
-
|
316
|
-
|
299
|
+
out:
|
300
|
+
if ((error = pthread_mutex_unlock(&_init_mutex)) != 0)
|
301
|
+
return error;
|
317
302
|
|
318
|
-
return
|
303
|
+
return ret;
|
319
304
|
}
|
320
305
|
|
321
306
|
git_global_st *git__global_state(void)
|
data/vendor/libgit2/src/global.h
CHANGED
@@ -35,8 +35,6 @@ typedef void (*git_global_shutdown_fn)(void);
|
|
35
35
|
|
36
36
|
extern void git__on_shutdown(git_global_shutdown_fn callback);
|
37
37
|
|
38
|
-
extern void git__free_tls_data(void);
|
39
|
-
|
40
38
|
extern const char *git_libgit2__user_agent(void);
|
41
39
|
extern const char *git_libgit2__ssl_ciphers(void);
|
42
40
|
|
data/vendor/libgit2/src/hash.c
CHANGED
@@ -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;
|
data/vendor/libgit2/src/hash.h
CHANGED
@@ -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,30 +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
|
-
#else
|
30
|
-
# include "hash/hash_generic.h"
|
31
|
-
#endif
|
32
|
-
|
33
15
|
typedef struct {
|
34
16
|
void *data;
|
35
17
|
size_t len;
|
36
18
|
} git_buf_vec;
|
37
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
|
+
|
38
39
|
int git_hash_init(git_hash_ctx *c);
|
39
40
|
int git_hash_update(git_hash_ctx *c, const void *data, size_t len);
|
40
41
|
int git_hash_final(git_oid *out, git_hash_ctx *c);
|
@@ -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
|
@@ -0,0 +1,48 @@
|
|
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
|
+
#include "collisiondetect.h"
|
9
|
+
|
10
|
+
int git_hash_sha1_global_init(void)
|
11
|
+
{
|
12
|
+
return 0;
|
13
|
+
}
|
14
|
+
|
15
|
+
int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
|
16
|
+
{
|
17
|
+
return git_hash_sha1_init(ctx);
|
18
|
+
}
|
19
|
+
|
20
|
+
void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
|
21
|
+
{
|
22
|
+
GIT_UNUSED(ctx);
|
23
|
+
}
|
24
|
+
|
25
|
+
int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
|
26
|
+
{
|
27
|
+
assert(ctx);
|
28
|
+
SHA1DCInit(&ctx->c);
|
29
|
+
return 0;
|
30
|
+
}
|
31
|
+
|
32
|
+
int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
|
33
|
+
{
|
34
|
+
assert(ctx);
|
35
|
+
SHA1DCUpdate(&ctx->c, data, len);
|
36
|
+
return 0;
|
37
|
+
}
|
38
|
+
|
39
|
+
int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
|
40
|
+
{
|
41
|
+
assert(ctx);
|
42
|
+
if (SHA1DCFinal(out->id, &ctx->c)) {
|
43
|
+
git_error_set(GIT_ERROR_SHA1, "SHA1 collision attack detected");
|
44
|
+
return -1;
|
45
|
+
}
|
46
|
+
|
47
|
+
return 0;
|
48
|
+
}
|