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.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_allocator.c +0 -54
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +25 -17
- data/vendor/libgit2/COPYING +195 -1
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/{FindIconv.cmake → FindIntlIconv.cmake} +6 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +4 -4
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +23 -8
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +34 -6
- data/vendor/libgit2/cmake/SelectHashes.cmake +32 -11
- data/vendor/libgit2/cmake/SelectRegex.cmake +6 -1
- data/vendor/libgit2/cmake/SelectSSH.cmake +22 -17
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +4 -0
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +21 -21
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/git-xdiff.h +4 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.c +19 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.c +3 -3
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xhistogram.c +7 -18
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xmerge.c +22 -20
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xpatience.c +21 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.c +13 -30
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.c +18 -1
- data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +5 -27
- data/vendor/libgit2/deps/zlib/crc32.c +94 -167
- data/vendor/libgit2/deps/zlib/deflate.c +358 -435
- data/vendor/libgit2/deps/zlib/deflate.h +41 -10
- data/vendor/libgit2/deps/zlib/gzguts.h +13 -18
- data/vendor/libgit2/deps/zlib/infback.c +17 -30
- data/vendor/libgit2/deps/zlib/inffast.c +1 -4
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +36 -102
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +287 -352
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +202 -202
- data/vendor/libgit2/deps/zlib/zutil.c +18 -44
- data/vendor/libgit2/deps/zlib/zutil.h +13 -33
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +27 -6
- data/vendor/libgit2/include/git2/attr.h +17 -4
- data/vendor/libgit2/include/git2/blame.h +133 -28
- data/vendor/libgit2/include/git2/blob.h +71 -28
- data/vendor/libgit2/include/git2/branch.h +22 -15
- data/vendor/libgit2/include/git2/buffer.h +6 -4
- data/vendor/libgit2/include/git2/cert.h +2 -1
- data/vendor/libgit2/include/git2/checkout.h +83 -32
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +25 -9
- data/vendor/libgit2/include/git2/commit.h +132 -3
- data/vendor/libgit2/include/git2/common.h +138 -56
- data/vendor/libgit2/include/git2/config.h +93 -23
- data/vendor/libgit2/include/git2/credential.h +30 -2
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +133 -3
- data/vendor/libgit2/include/git2/describe.h +13 -1
- data/vendor/libgit2/include/git2/diff.h +77 -9
- data/vendor/libgit2/include/git2/email.h +9 -29
- data/vendor/libgit2/include/git2/errors.h +49 -74
- data/vendor/libgit2/include/git2/filter.h +14 -7
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +3 -2
- data/vendor/libgit2/include/git2/ignore.h +10 -0
- data/vendor/libgit2/include/git2/index.h +100 -6
- data/vendor/libgit2/include/git2/indexer.h +21 -4
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +46 -1
- data/vendor/libgit2/include/git2/message.h +2 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +9 -8
- data/vendor/libgit2/include/git2/odb.h +91 -49
- data/vendor/libgit2/include/git2/odb_backend.h +80 -52
- data/vendor/libgit2/include/git2/oid.h +24 -25
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +13 -1
- data/vendor/libgit2/include/git2/patch.h +2 -3
- data/vendor/libgit2/include/git2/pathspec.h +9 -0
- data/vendor/libgit2/include/git2/proxy.h +10 -0
- data/vendor/libgit2/include/git2/rebase.h +9 -6
- data/vendor/libgit2/include/git2/refdb.h +2 -2
- data/vendor/libgit2/include/git2/reflog.h +3 -2
- data/vendor/libgit2/include/git2/refs.h +9 -6
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +112 -18
- data/vendor/libgit2/include/git2/repository.h +61 -15
- data/vendor/libgit2/include/git2/reset.h +16 -3
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +3 -3
- data/vendor/libgit2/include/git2/revwalk.h +3 -2
- data/vendor/libgit2/include/git2/signature.h +46 -1
- data/vendor/libgit2/include/git2/stash.h +17 -3
- data/vendor/libgit2/include/git2/status.h +10 -6
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -3
- data/vendor/libgit2/include/git2/submodule.h +20 -9
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +109 -58
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -3
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +8 -1
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +25 -2
- data/vendor/libgit2/include/git2/sys/transport.h +44 -5
- data/vendor/libgit2/include/git2/tag.h +3 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +16 -5
- data/vendor/libgit2/include/git2/types.h +19 -3
- data/vendor/libgit2/include/git2/version.h +44 -8
- data/vendor/libgit2/include/git2/worktree.h +19 -7
- data/vendor/libgit2/src/CMakeLists.txt +40 -15
- data/vendor/libgit2/src/cli/CMakeLists.txt +2 -2
- data/vendor/libgit2/src/cli/cmd.c +1 -1
- data/vendor/libgit2/src/cli/cmd.h +4 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +6 -8
- data/vendor/libgit2/src/cli/cmd_clone.c +27 -13
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +6 -8
- data/vendor/libgit2/src/cli/cmd_help.c +6 -7
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +1 -1
- data/vendor/libgit2/src/cli/main.c +52 -24
- data/vendor/libgit2/src/cli/opt.c +29 -3
- data/vendor/libgit2/src/cli/opt.h +21 -3
- data/vendor/libgit2/src/cli/opt_usage.c +102 -33
- data/vendor/libgit2/src/cli/opt_usage.h +6 -1
- data/vendor/libgit2/src/cli/progress.c +60 -10
- data/vendor/libgit2/src/cli/progress.h +16 -4
- data/vendor/libgit2/src/cli/unix/sighandler.c +2 -1
- data/vendor/libgit2/src/cli/win32/precompiled.h +1 -1
- data/vendor/libgit2/src/cli/win32/sighandler.c +1 -1
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +27 -27
- data/vendor/libgit2/src/libgit2/annotated_commit.c +2 -2
- data/vendor/libgit2/src/libgit2/annotated_commit.h +1 -1
- data/vendor/libgit2/src/libgit2/apply.c +14 -16
- data/vendor/libgit2/src/libgit2/attr.c +30 -13
- data/vendor/libgit2/src/libgit2/attr_file.c +7 -2
- data/vendor/libgit2/src/libgit2/attr_file.h +2 -0
- data/vendor/libgit2/src/libgit2/attrcache.c +69 -33
- data/vendor/libgit2/src/libgit2/attrcache.h +5 -9
- data/vendor/libgit2/src/libgit2/blame.c +152 -59
- data/vendor/libgit2/src/libgit2/blame.h +1 -0
- data/vendor/libgit2/src/libgit2/blame_git.c +0 -1
- data/vendor/libgit2/src/libgit2/branch.c +2 -2
- data/vendor/libgit2/src/libgit2/cache.c +22 -17
- data/vendor/libgit2/src/libgit2/cache.h +7 -9
- data/vendor/libgit2/src/libgit2/checkout.c +34 -24
- data/vendor/libgit2/src/libgit2/checkout.h +0 -2
- data/vendor/libgit2/src/libgit2/cherrypick.c +4 -5
- data/vendor/libgit2/src/libgit2/clone.c +186 -164
- data/vendor/libgit2/src/libgit2/clone.h +4 -1
- data/vendor/libgit2/src/libgit2/commit.c +123 -9
- data/vendor/libgit2/src/libgit2/commit_graph.c +166 -88
- data/vendor/libgit2/src/libgit2/commit_graph.h +21 -6
- data/vendor/libgit2/src/libgit2/commit_list.c +12 -5
- data/vendor/libgit2/src/libgit2/commit_list.h +1 -0
- data/vendor/libgit2/src/libgit2/config.c +394 -300
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/libgit2/config.h +9 -4
- data/vendor/libgit2/src/libgit2/config_backend.h +8 -10
- data/vendor/libgit2/src/libgit2/config_cache.c +4 -5
- data/vendor/libgit2/src/libgit2/config_file.c +113 -96
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +194 -40
- data/vendor/libgit2/src/libgit2/config_parse.c +10 -9
- data/vendor/libgit2/src/libgit2/config_snapshot.c +24 -31
- data/vendor/libgit2/src/libgit2/describe.c +34 -31
- data/vendor/libgit2/src/libgit2/diff.c +17 -8
- data/vendor/libgit2/src/libgit2/diff.h +6 -6
- data/vendor/libgit2/src/libgit2/diff_driver.c +12 -19
- data/vendor/libgit2/src/libgit2/diff_driver.h +2 -2
- data/vendor/libgit2/src/libgit2/diff_file.c +7 -7
- data/vendor/libgit2/src/libgit2/diff_generate.c +39 -18
- data/vendor/libgit2/src/libgit2/diff_parse.c +22 -6
- data/vendor/libgit2/src/libgit2/diff_print.c +88 -13
- data/vendor/libgit2/src/libgit2/diff_tform.c +40 -12
- data/vendor/libgit2/src/libgit2/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/libgit2/email.c +5 -3
- data/vendor/libgit2/src/libgit2/fetch.c +39 -9
- data/vendor/libgit2/src/libgit2/fetch.h +0 -2
- data/vendor/libgit2/src/libgit2/fetchhead.c +11 -9
- data/vendor/libgit2/src/libgit2/filter.c +5 -5
- data/vendor/libgit2/src/libgit2/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/libgit2/graph.c +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/libgit2/ident.c +3 -3
- data/vendor/libgit2/src/libgit2/ignore.c +9 -5
- data/vendor/libgit2/src/libgit2/index.c +392 -208
- data/vendor/libgit2/src/libgit2/index.h +16 -3
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/libgit2/indexer.c +44 -41
- data/vendor/libgit2/src/libgit2/iterator.c +34 -13
- data/vendor/libgit2/src/libgit2/iterator.h +3 -0
- data/vendor/libgit2/src/libgit2/libgit2.c +155 -331
- data/vendor/libgit2/src/libgit2/mailmap.c +1 -1
- data/vendor/libgit2/src/libgit2/merge.c +56 -46
- data/vendor/libgit2/src/libgit2/merge_driver.c +2 -2
- data/vendor/libgit2/src/libgit2/merge_file.c +0 -2
- data/vendor/libgit2/src/libgit2/midx.c +86 -44
- data/vendor/libgit2/src/libgit2/midx.h +13 -3
- data/vendor/libgit2/src/libgit2/mwindow.c +38 -45
- data/vendor/libgit2/src/libgit2/mwindow.h +4 -0
- data/vendor/libgit2/src/libgit2/notes.c +9 -8
- data/vendor/libgit2/src/libgit2/object.c +42 -16
- data/vendor/libgit2/src/libgit2/object.h +6 -0
- data/vendor/libgit2/src/libgit2/odb.c +16 -9
- data/vendor/libgit2/src/libgit2/odb_mempack.c +49 -17
- data/vendor/libgit2/src/libgit2/odb_pack.c +28 -7
- data/vendor/libgit2/src/libgit2/oid.c +35 -2
- data/vendor/libgit2/src/libgit2/oid.h +11 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +49 -3
- data/vendor/libgit2/src/libgit2/oidarray.h +5 -1
- data/vendor/libgit2/src/libgit2/pack-objects.c +77 -43
- data/vendor/libgit2/src/libgit2/pack-objects.h +17 -6
- data/vendor/libgit2/src/libgit2/pack.c +33 -27
- data/vendor/libgit2/src/libgit2/pack.h +15 -10
- data/vendor/libgit2/src/libgit2/parse.c +7 -4
- data/vendor/libgit2/src/libgit2/parse.h +1 -1
- data/vendor/libgit2/src/libgit2/patch.h +7 -1
- data/vendor/libgit2/src/libgit2/patch_generate.c +24 -5
- data/vendor/libgit2/src/libgit2/patch_parse.c +18 -10
- data/vendor/libgit2/src/libgit2/path.c +1 -1
- data/vendor/libgit2/src/libgit2/pathspec.c +1 -1
- data/vendor/libgit2/src/libgit2/push.c +81 -30
- data/vendor/libgit2/src/libgit2/push.h +1 -0
- data/vendor/libgit2/src/libgit2/reader.c +1 -1
- data/vendor/libgit2/src/libgit2/rebase.c +72 -84
- data/vendor/libgit2/src/libgit2/refdb_fs.c +146 -70
- data/vendor/libgit2/src/libgit2/reflog.c +1 -2
- data/vendor/libgit2/src/libgit2/reflog.h +2 -0
- data/vendor/libgit2/src/libgit2/refs.c +34 -8
- data/vendor/libgit2/src/libgit2/refs.h +6 -1
- data/vendor/libgit2/src/libgit2/refspec.c +28 -1
- data/vendor/libgit2/src/libgit2/refspec.h +8 -0
- data/vendor/libgit2/src/libgit2/remote.c +136 -67
- data/vendor/libgit2/src/libgit2/remote.h +1 -0
- data/vendor/libgit2/src/libgit2/repository.c +789 -330
- data/vendor/libgit2/src/libgit2/repository.h +22 -3
- data/vendor/libgit2/src/libgit2/reset.c +2 -2
- data/vendor/libgit2/src/libgit2/revert.c +9 -13
- data/vendor/libgit2/src/libgit2/revparse.c +6 -3
- data/vendor/libgit2/src/libgit2/revwalk.c +36 -11
- data/vendor/libgit2/src/libgit2/revwalk.h +3 -3
- data/vendor/libgit2/src/libgit2/settings.c +468 -0
- data/vendor/libgit2/src/libgit2/settings.h +6 -2
- data/vendor/libgit2/src/libgit2/signature.c +132 -15
- data/vendor/libgit2/src/libgit2/signature.h +0 -1
- data/vendor/libgit2/src/libgit2/stash.c +9 -8
- data/vendor/libgit2/src/libgit2/status.c +1 -1
- data/vendor/libgit2/src/libgit2/streams/mbedtls.c +54 -61
- data/vendor/libgit2/src/libgit2/streams/openssl.c +40 -23
- data/vendor/libgit2/src/libgit2/streams/openssl.h +2 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.c +4 -0
- data/vendor/libgit2/src/libgit2/streams/openssl_dynamic.h +3 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +237 -51
- data/vendor/libgit2/src/libgit2/streams/socket.h +3 -1
- data/vendor/libgit2/src/libgit2/streams/stransport.c +79 -19
- data/vendor/libgit2/src/libgit2/streams/tls.c +5 -0
- data/vendor/libgit2/src/libgit2/submodule.c +106 -63
- data/vendor/libgit2/src/libgit2/submodule.h +9 -10
- data/vendor/libgit2/src/libgit2/tag.c +1 -1
- data/vendor/libgit2/src/libgit2/trailer.c +6 -6
- data/vendor/libgit2/src/libgit2/transaction.c +26 -20
- data/vendor/libgit2/src/libgit2/transaction.h +4 -1
- data/vendor/libgit2/src/libgit2/transport.c +4 -1
- data/vendor/libgit2/src/libgit2/transports/auth.h +1 -2
- data/vendor/libgit2/src/libgit2/transports/{auth_negotiate.c → auth_gssapi.c} +32 -32
- data/vendor/libgit2/src/libgit2/transports/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/auth_ntlm.h +1 -1
- data/vendor/libgit2/src/libgit2/transports/{auth_ntlm.c → auth_ntlmclient.c} +12 -12
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/libgit2/transports/credential.c +1 -1
- data/vendor/libgit2/src/libgit2/transports/git.c +7 -8
- data/vendor/libgit2/src/libgit2/transports/http.c +8 -4
- data/vendor/libgit2/src/libgit2/transports/http.h +0 -10
- data/vendor/libgit2/src/libgit2/transports/httpclient.c +117 -72
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/libgit2/transports/local.c +21 -11
- data/vendor/libgit2/src/libgit2/transports/smart.c +50 -32
- data/vendor/libgit2/src/libgit2/transports/smart.h +26 -9
- data/vendor/libgit2/src/libgit2/transports/smart_pkt.c +139 -18
- data/vendor/libgit2/src/libgit2/transports/smart_protocol.c +209 -57
- data/vendor/libgit2/src/libgit2/transports/ssh.c +41 -1103
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.c +1126 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/libgit2/transports/winhttp.c +48 -21
- data/vendor/libgit2/src/libgit2/tree-cache.c +26 -16
- data/vendor/libgit2/src/libgit2/tree-cache.h +5 -3
- data/vendor/libgit2/src/libgit2/tree.c +35 -27
- data/vendor/libgit2/src/libgit2/tree.h +3 -2
- data/vendor/libgit2/src/libgit2/worktree.c +39 -27
- data/vendor/libgit2/src/util/CMakeLists.txt +4 -6
- data/vendor/libgit2/src/util/alloc.c +69 -7
- data/vendor/libgit2/src/util/alloc.h +34 -9
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/{cli/cli.h → util/allocators/debugalloc.h} +6 -9
- data/vendor/libgit2/src/util/allocators/failalloc.c +0 -60
- data/vendor/libgit2/src/util/allocators/failalloc.h +0 -6
- data/vendor/libgit2/src/util/allocators/stdalloc.c +2 -115
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +0 -68
- data/vendor/libgit2/src/util/array.h +24 -18
- data/vendor/libgit2/src/util/cc-compat.h +4 -0
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/util/date.c +22 -14
- data/vendor/libgit2/src/util/date.h +12 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{libgit2 → util}/errors.h +21 -17
- data/vendor/libgit2/src/util/filebuf.c +6 -1
- data/vendor/libgit2/src/util/filebuf.h +19 -6
- data/vendor/libgit2/src/util/fs_path.c +16 -5
- data/vendor/libgit2/src/util/fs_path.h +23 -0
- data/vendor/libgit2/src/util/futils.c +14 -10
- data/vendor/libgit2/src/util/futils.h +13 -4
- data/vendor/libgit2/src/util/git2_features.h.in +21 -4
- data/vendor/libgit2/src/util/git2_util.h +6 -0
- data/vendor/libgit2/src/util/hash/openssl.c +152 -0
- data/vendor/libgit2/src/util/hash/openssl.h +17 -1
- data/vendor/libgit2/src/util/hash/sha.h +4 -1
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/util/integer.h +3 -1
- data/vendor/libgit2/src/util/net.c +318 -161
- data/vendor/libgit2/src/util/net.h +27 -0
- data/vendor/libgit2/src/util/pool.c +1 -1
- data/vendor/libgit2/src/util/pool.h +5 -0
- data/vendor/libgit2/src/util/posix.c +54 -0
- data/vendor/libgit2/src/util/posix.h +22 -0
- data/vendor/libgit2/src/util/pqueue.h +1 -1
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +6 -10
- data/vendor/libgit2/src/util/regexp.c +1 -1
- data/vendor/libgit2/src/util/sortedcache.c +14 -13
- data/vendor/libgit2/src/util/sortedcache.h +3 -3
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/util/str.c +2 -2
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/util/unix/posix.h +0 -2
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/util/unix/realpath.c +23 -5
- data/vendor/libgit2/src/util/util.c +17 -12
- data/vendor/libgit2/src/util/util.h +28 -54
- data/vendor/libgit2/src/util/vector.c +3 -3
- data/vendor/libgit2/src/util/vector.h +2 -2
- data/vendor/libgit2/src/util/win32/error.c +1 -1
- data/vendor/libgit2/src/util/win32/path_w32.c +8 -8
- data/vendor/libgit2/src/util/win32/posix_w32.c +30 -7
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/util/win32/utf-conv.c +73 -75
- data/vendor/libgit2/src/util/win32/utf-conv.h +81 -14
- data/vendor/libgit2/src/util/win32/w32_util.c +1 -1
- metadata +72 -49
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +0 -17
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/libgit2/config_entries.c +0 -237
- data/vendor/libgit2/src/libgit2/config_entries.h +0 -24
- data/vendor/libgit2/src/libgit2/errors.c +0 -238
- data/vendor/libgit2/src/libgit2/idxmap.c +0 -157
- data/vendor/libgit2/src/libgit2/idxmap.h +0 -177
- data/vendor/libgit2/src/libgit2/libgit2.h +0 -15
- data/vendor/libgit2/src/libgit2/netops.c +0 -124
- data/vendor/libgit2/src/libgit2/netops.h +0 -68
- data/vendor/libgit2/src/libgit2/offmap.c +0 -101
- data/vendor/libgit2/src/libgit2/offmap.h +0 -133
- data/vendor/libgit2/src/libgit2/oidmap.c +0 -107
- data/vendor/libgit2/src/libgit2/oidmap.h +0 -128
- data/vendor/libgit2/src/libgit2/threadstate.c +0 -84
- data/vendor/libgit2/src/libgit2/threadstate.h +0 -24
- data/vendor/libgit2/src/libgit2/transports/ssh.h +0 -14
- data/vendor/libgit2/src/util/khash.h +0 -615
- data/vendor/libgit2/src/util/strmap.c +0 -100
- data/vendor/libgit2/src/util/strmap.h +0 -131
- /data/vendor/libgit2/cmake/{FindHTTPParser.cmake → FindHTTP_Parser.cmake} +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xdiff.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xinclude.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src/libgit2 → deps}/xdiff/xtypes.h +0 -0
@@ -17,13 +17,14 @@
|
|
17
17
|
# define GIT_FILEBUF_THREADS
|
18
18
|
#endif
|
19
19
|
|
20
|
-
#define
|
21
|
-
#define
|
20
|
+
#define GIT_FILEBUF_HASH_SHA1 (1 << 0)
|
21
|
+
#define GIT_FILEBUF_HASH_SHA256 (1 << 1)
|
22
|
+
#define GIT_FILEBUF_APPEND (1 << 2)
|
22
23
|
#define GIT_FILEBUF_CREATE_LEADING_DIRS (1 << 3)
|
23
|
-
#define GIT_FILEBUF_TEMPORARY
|
24
|
-
#define GIT_FILEBUF_DO_NOT_BUFFER
|
25
|
-
#define GIT_FILEBUF_FSYNC
|
26
|
-
#define GIT_FILEBUF_DEFLATE_SHIFT
|
24
|
+
#define GIT_FILEBUF_TEMPORARY (1 << 4)
|
25
|
+
#define GIT_FILEBUF_DO_NOT_BUFFER (1 << 5)
|
26
|
+
#define GIT_FILEBUF_FSYNC (1 << 6)
|
27
|
+
#define GIT_FILEBUF_DEFLATE_SHIFT (7)
|
27
28
|
|
28
29
|
#define GIT_FILELOCK_EXTENSION ".lock\0"
|
29
30
|
#define GIT_FILELOCK_EXTLENGTH 6
|
@@ -91,4 +92,16 @@ int git_filebuf_hash(unsigned char *out, git_filebuf *file);
|
|
91
92
|
int git_filebuf_flush(git_filebuf *file);
|
92
93
|
int git_filebuf_stats(time_t *mtime, size_t *size, git_filebuf *file);
|
93
94
|
|
95
|
+
GIT_INLINE(int) git_filebuf_hash_flags(git_hash_algorithm_t algorithm)
|
96
|
+
{
|
97
|
+
switch (algorithm) {
|
98
|
+
case GIT_HASH_ALGORITHM_SHA1:
|
99
|
+
return GIT_FILEBUF_HASH_SHA1;
|
100
|
+
case GIT_HASH_ALGORITHM_SHA256:
|
101
|
+
return GIT_FILEBUF_HASH_SHA256;
|
102
|
+
default:
|
103
|
+
return 0;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
94
107
|
#endif
|
@@ -419,6 +419,16 @@ int git_fs_path_to_dir(git_str *path)
|
|
419
419
|
return git_str_oom(path) ? -1 : 0;
|
420
420
|
}
|
421
421
|
|
422
|
+
size_t git_fs_path_dirlen(const char *path)
|
423
|
+
{
|
424
|
+
size_t len = strlen(path);
|
425
|
+
|
426
|
+
while (len > 1 && path[len - 1] == '/')
|
427
|
+
len--;
|
428
|
+
|
429
|
+
return len;
|
430
|
+
}
|
431
|
+
|
422
432
|
void git_fs_path_string_to_dir(char *path, size_t size)
|
423
433
|
{
|
424
434
|
size_t end = strlen(path);
|
@@ -1938,12 +1948,13 @@ static int sudo_uid_lookup(uid_t *out)
|
|
1938
1948
|
{
|
1939
1949
|
git_str uid_str = GIT_STR_INIT;
|
1940
1950
|
int64_t uid;
|
1941
|
-
int error;
|
1951
|
+
int error = -1;
|
1942
1952
|
|
1943
|
-
if (
|
1944
|
-
|
1945
|
-
|
1953
|
+
if (git__getenv(&uid_str, "SUDO_UID") == 0 &&
|
1954
|
+
git__strntol64(&uid, uid_str.ptr, uid_str.size, NULL, 10) == 0 &&
|
1955
|
+
uid == (int64_t)((uid_t)uid)) {
|
1946
1956
|
*out = (uid_t)uid;
|
1957
|
+
error = 0;
|
1947
1958
|
}
|
1948
1959
|
|
1949
1960
|
git_str_dispose(&uid_str);
|
@@ -2015,7 +2026,7 @@ int git_fs_path_find_executable(git_str *fullpath, const char *executable)
|
|
2015
2026
|
git_win32_path fullpath_w, executable_w;
|
2016
2027
|
int error;
|
2017
2028
|
|
2018
|
-
if (
|
2029
|
+
if (git_utf8_to_16(executable_w, GIT_WIN_PATH_MAX, executable) < 0)
|
2019
2030
|
return -1;
|
2020
2031
|
|
2021
2032
|
error = git_win32_path_find_executable(fullpath_w, executable_w);
|
@@ -86,6 +86,29 @@ extern int git_fs_path_to_dir(git_str *path);
|
|
86
86
|
*/
|
87
87
|
extern void git_fs_path_string_to_dir(char *path, size_t size);
|
88
88
|
|
89
|
+
/**
|
90
|
+
* Provides the length of the given path string with no trailing
|
91
|
+
* slashes.
|
92
|
+
*/
|
93
|
+
size_t git_fs_path_dirlen(const char *path);
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Returns nonzero if the given path is a filesystem root; on Windows, this
|
97
|
+
* means a drive letter (eg `A:/`, `C:\`). On POSIX this is `/`.
|
98
|
+
*/
|
99
|
+
GIT_INLINE(int) git_fs_path_is_root(const char *name)
|
100
|
+
{
|
101
|
+
#ifdef GIT_WIN32
|
102
|
+
if (((name[0] >= 'A' && name[0] <= 'Z') || (name[0] >= 'a' && name[0] <= 'z')) &&
|
103
|
+
name[1] == ':' &&
|
104
|
+
(name[2] == '/' || name[2] == '\\') &&
|
105
|
+
name[3] == '\0')
|
106
|
+
return 1;
|
107
|
+
#endif
|
108
|
+
|
109
|
+
return (name[0] == '/' && name[1] == '\0');
|
110
|
+
}
|
111
|
+
|
89
112
|
/**
|
90
113
|
* Taken from git.git; returns nonzero if the given path is "." or "..".
|
91
114
|
*/
|
@@ -8,9 +8,9 @@
|
|
8
8
|
#include "futils.h"
|
9
9
|
|
10
10
|
#include "runtime.h"
|
11
|
-
#include "strmap.h"
|
12
11
|
#include "hash.h"
|
13
12
|
#include "rand.h"
|
13
|
+
#include "hashmap_str.h"
|
14
14
|
|
15
15
|
#include <ctype.h>
|
16
16
|
|
@@ -221,14 +221,14 @@ int git_futils_readbuffer_fd_full(git_str *buf, git_file fd)
|
|
221
221
|
int git_futils_readbuffer_updated(
|
222
222
|
git_str *out,
|
223
223
|
const char *path,
|
224
|
-
unsigned char checksum[
|
224
|
+
unsigned char checksum[GIT_HASH_SHA256_SIZE],
|
225
225
|
int *updated)
|
226
226
|
{
|
227
227
|
int error;
|
228
228
|
git_file fd;
|
229
229
|
struct stat st;
|
230
230
|
git_str buf = GIT_STR_INIT;
|
231
|
-
unsigned char checksum_new[
|
231
|
+
unsigned char checksum_new[GIT_HASH_SHA256_SIZE];
|
232
232
|
|
233
233
|
GIT_ASSERT_ARG(out);
|
234
234
|
GIT_ASSERT_ARG(path && *path);
|
@@ -261,7 +261,10 @@ int git_futils_readbuffer_updated(
|
|
261
261
|
p_close(fd);
|
262
262
|
|
263
263
|
if (checksum) {
|
264
|
-
|
264
|
+
error = git_hash_buf(checksum_new, buf.ptr,
|
265
|
+
buf.size, GIT_HASH_ALGORITHM_SHA256);
|
266
|
+
|
267
|
+
if (error < 0) {
|
265
268
|
git_str_dispose(&buf);
|
266
269
|
return error;
|
267
270
|
}
|
@@ -269,7 +272,7 @@ int git_futils_readbuffer_updated(
|
|
269
272
|
/*
|
270
273
|
* If we were given a checksum, we only want to use it if it's different
|
271
274
|
*/
|
272
|
-
if (!memcmp(checksum, checksum_new,
|
275
|
+
if (!memcmp(checksum, checksum_new, GIT_HASH_SHA256_SIZE)) {
|
273
276
|
git_str_dispose(&buf);
|
274
277
|
if (updated)
|
275
278
|
*updated = 0;
|
@@ -277,7 +280,7 @@ int git_futils_readbuffer_updated(
|
|
277
280
|
return 0;
|
278
281
|
}
|
279
282
|
|
280
|
-
memcpy(checksum, checksum_new,
|
283
|
+
memcpy(checksum, checksum_new, GIT_HASH_SHA256_SIZE);
|
281
284
|
}
|
282
285
|
|
283
286
|
/*
|
@@ -650,7 +653,8 @@ int git_futils_mkdir_relative(
|
|
650
653
|
*tail = '\0';
|
651
654
|
st.st_mode = 0;
|
652
655
|
|
653
|
-
if (opts->
|
656
|
+
if (opts->cache_pathset &&
|
657
|
+
git_hashset_str_contains(opts->cache_pathset, make_path.ptr))
|
654
658
|
continue;
|
655
659
|
|
656
660
|
/* See what's going on with this path component */
|
@@ -685,17 +689,17 @@ retry_lstat:
|
|
685
689
|
make_path.ptr, &st, (lastch == '\0'), mode, flags, opts)) < 0)
|
686
690
|
goto done;
|
687
691
|
|
688
|
-
if (opts->
|
692
|
+
if (opts->cache_pathset && opts->cache_pool) {
|
689
693
|
char *cache_path;
|
690
694
|
size_t alloc_size;
|
691
695
|
|
692
696
|
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_size, make_path.size, 1);
|
693
|
-
cache_path = git_pool_malloc(opts->
|
697
|
+
cache_path = git_pool_malloc(opts->cache_pool, alloc_size);
|
694
698
|
GIT_ERROR_CHECK_ALLOC(cache_path);
|
695
699
|
|
696
700
|
memcpy(cache_path, make_path.ptr, make_path.size + 1);
|
697
701
|
|
698
|
-
if ((error =
|
702
|
+
if ((error = git_hashset_str_add(opts->cache_pathset, cache_path)) < 0)
|
699
703
|
goto done;
|
700
704
|
}
|
701
705
|
}
|
@@ -13,8 +13,8 @@
|
|
13
13
|
#include "posix.h"
|
14
14
|
#include "fs_path.h"
|
15
15
|
#include "pool.h"
|
16
|
-
#include "strmap.h"
|
17
16
|
#include "hash.h"
|
17
|
+
#include "hashmap_str.h"
|
18
18
|
|
19
19
|
/**
|
20
20
|
* Filebuffer methods
|
@@ -25,7 +25,7 @@ extern int git_futils_readbuffer(git_str *obj, const char *path);
|
|
25
25
|
extern int git_futils_readbuffer_updated(
|
26
26
|
git_str *obj,
|
27
27
|
const char *path,
|
28
|
-
unsigned char checksum[
|
28
|
+
unsigned char checksum[GIT_HASH_SHA256_SIZE],
|
29
29
|
int *updated);
|
30
30
|
extern int git_futils_readbuffer_fd_full(git_str *obj, git_file fd);
|
31
31
|
extern int git_futils_readbuffer_fd(git_str *obj, git_file fd, size_t len);
|
@@ -109,8 +109,17 @@ struct git_futils_mkdir_perfdata
|
|
109
109
|
|
110
110
|
struct git_futils_mkdir_options
|
111
111
|
{
|
112
|
-
|
113
|
-
|
112
|
+
/*
|
113
|
+
* Callers can optionally pass an allocation pool and a
|
114
|
+
* hashset of strings; mkdir will populate these with the
|
115
|
+
* path(s) it creates; this can be useful for repeated calls
|
116
|
+
* to mkdir. This will reduce I/O by avoiding testing for the
|
117
|
+
* existence of intermediate directories that it knows already
|
118
|
+
* exist (because it created them).
|
119
|
+
*/
|
120
|
+
git_pool *cache_pool;
|
121
|
+
git_hashset_str *cache_pathset;
|
122
|
+
|
114
123
|
struct git_futils_mkdir_perfdata perfdata;
|
115
124
|
};
|
116
125
|
|
@@ -24,12 +24,15 @@
|
|
24
24
|
#cmakedefine GIT_REGEX_PCRE2
|
25
25
|
#cmakedefine GIT_REGEX_BUILTIN 1
|
26
26
|
|
27
|
-
#cmakedefine
|
28
|
-
#cmakedefine
|
29
|
-
#cmakedefine
|
27
|
+
#cmakedefine GIT_QSORT_BSD
|
28
|
+
#cmakedefine GIT_QSORT_GNU
|
29
|
+
#cmakedefine GIT_QSORT_C11
|
30
|
+
#cmakedefine GIT_QSORT_MSC
|
30
31
|
|
31
32
|
#cmakedefine GIT_SSH 1
|
32
|
-
#cmakedefine
|
33
|
+
#cmakedefine GIT_SSH_EXEC 1
|
34
|
+
#cmakedefine GIT_SSH_LIBSSH2 1
|
35
|
+
#cmakedefine GIT_SSH_LIBSSH2_MEMORY_CREDENTIALS 1
|
33
36
|
|
34
37
|
#cmakedefine GIT_NTLM 1
|
35
38
|
#cmakedefine GIT_GSSAPI 1
|
@@ -41,11 +44,17 @@
|
|
41
44
|
#cmakedefine GIT_OPENSSL_DYNAMIC 1
|
42
45
|
#cmakedefine GIT_SECURE_TRANSPORT 1
|
43
46
|
#cmakedefine GIT_MBEDTLS 1
|
47
|
+
#cmakedefine GIT_SCHANNEL 1
|
48
|
+
|
49
|
+
#cmakedefine GIT_HTTPPARSER_HTTPPARSER 1
|
50
|
+
#cmakedefine GIT_HTTPPARSER_LLHTTP 1
|
51
|
+
#cmakedefine GIT_HTTPPARSER_BUILTIN 1
|
44
52
|
|
45
53
|
#cmakedefine GIT_SHA1_COLLISIONDETECT 1
|
46
54
|
#cmakedefine GIT_SHA1_WIN32 1
|
47
55
|
#cmakedefine GIT_SHA1_COMMON_CRYPTO 1
|
48
56
|
#cmakedefine GIT_SHA1_OPENSSL 1
|
57
|
+
#cmakedefine GIT_SHA1_OPENSSL_FIPS 1
|
49
58
|
#cmakedefine GIT_SHA1_OPENSSL_DYNAMIC 1
|
50
59
|
#cmakedefine GIT_SHA1_MBEDTLS 1
|
51
60
|
|
@@ -53,10 +62,18 @@
|
|
53
62
|
#cmakedefine GIT_SHA256_WIN32 1
|
54
63
|
#cmakedefine GIT_SHA256_COMMON_CRYPTO 1
|
55
64
|
#cmakedefine GIT_SHA256_OPENSSL 1
|
65
|
+
#cmakedefine GIT_SHA256_OPENSSL_FIPS 1
|
56
66
|
#cmakedefine GIT_SHA256_OPENSSL_DYNAMIC 1
|
57
67
|
#cmakedefine GIT_SHA256_MBEDTLS 1
|
58
68
|
|
69
|
+
#cmakedefine GIT_COMPRESSION_BUILTIN 1
|
70
|
+
#cmakedefine GIT_COMPRESSION_ZLIB 1
|
71
|
+
|
59
72
|
#cmakedefine GIT_RAND_GETENTROPY 1
|
60
73
|
#cmakedefine GIT_RAND_GETLOADAVG 1
|
61
74
|
|
75
|
+
#cmakedefine GIT_IO_POLL 1
|
76
|
+
#cmakedefine GIT_IO_WSAPOLL 1
|
77
|
+
#cmakedefine GIT_IO_SELECT 1
|
78
|
+
|
62
79
|
#endif
|
@@ -12,6 +12,7 @@
|
|
12
12
|
#endif
|
13
13
|
|
14
14
|
#include "git2/common.h"
|
15
|
+
#include "git2/sys/errors.h"
|
15
16
|
#include "cc-compat.h"
|
16
17
|
|
17
18
|
typedef struct git_str git_str;
|
@@ -48,6 +49,10 @@ typedef struct git_str git_str;
|
|
48
49
|
# define GIT_WARN_UNUSED_RESULT
|
49
50
|
#endif
|
50
51
|
|
52
|
+
#if (defined(_WIN32)) && !defined(__CYGWIN__)
|
53
|
+
# define GIT_WIN32 1
|
54
|
+
#endif
|
55
|
+
|
51
56
|
#include <assert.h>
|
52
57
|
#include <errno.h>
|
53
58
|
#include <limits.h>
|
@@ -164,5 +169,6 @@ typedef struct git_str git_str;
|
|
164
169
|
if (GIT_MULTIPLY_SIZET_OVERFLOW(out, nelem, elsize)) { return -1; }
|
165
170
|
|
166
171
|
#include "util.h"
|
172
|
+
#include "ctype_compat.h"
|
167
173
|
|
168
174
|
#endif
|
@@ -120,6 +120,82 @@ int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
|
|
120
120
|
|
121
121
|
#endif
|
122
122
|
|
123
|
+
#ifdef GIT_SHA1_OPENSSL_FIPS
|
124
|
+
|
125
|
+
static const EVP_MD *SHA1_ENGINE_DIGEST_TYPE = NULL;
|
126
|
+
|
127
|
+
int git_hash_sha1_global_init(void)
|
128
|
+
{
|
129
|
+
SHA1_ENGINE_DIGEST_TYPE = EVP_sha1();
|
130
|
+
return SHA1_ENGINE_DIGEST_TYPE != NULL ? 0 : -1;
|
131
|
+
}
|
132
|
+
|
133
|
+
int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
|
134
|
+
{
|
135
|
+
return git_hash_sha1_init(ctx);
|
136
|
+
}
|
137
|
+
|
138
|
+
void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
|
139
|
+
{
|
140
|
+
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
141
|
+
EVP_MD_CTX_destroy(ctx->c);
|
142
|
+
#else
|
143
|
+
EVP_MD_CTX_free(ctx->c);
|
144
|
+
#endif
|
145
|
+
}
|
146
|
+
|
147
|
+
int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
|
148
|
+
{
|
149
|
+
GIT_ASSERT_ARG(ctx);
|
150
|
+
GIT_ASSERT(SHA1_ENGINE_DIGEST_TYPE);
|
151
|
+
|
152
|
+
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
153
|
+
ctx->c = EVP_MD_CTX_create();
|
154
|
+
#else
|
155
|
+
ctx->c = EVP_MD_CTX_new();
|
156
|
+
#endif
|
157
|
+
|
158
|
+
GIT_ASSERT(ctx->c);
|
159
|
+
|
160
|
+
if (EVP_DigestInit_ex(ctx->c, SHA1_ENGINE_DIGEST_TYPE, NULL) != 1) {
|
161
|
+
git_hash_sha1_ctx_cleanup(ctx);
|
162
|
+
git_error_set(GIT_ERROR_SHA, "failed to initialize sha1 context");
|
163
|
+
return -1;
|
164
|
+
}
|
165
|
+
|
166
|
+
return 0;
|
167
|
+
}
|
168
|
+
|
169
|
+
int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
|
170
|
+
{
|
171
|
+
GIT_ASSERT_ARG(ctx && ctx->c);
|
172
|
+
|
173
|
+
if (EVP_DigestUpdate(ctx->c, data, len) != 1) {
|
174
|
+
git_error_set(GIT_ERROR_SHA, "failed to update sha1");
|
175
|
+
return -1;
|
176
|
+
}
|
177
|
+
|
178
|
+
return 0;
|
179
|
+
}
|
180
|
+
|
181
|
+
int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
|
182
|
+
{
|
183
|
+
unsigned int len = 0;
|
184
|
+
|
185
|
+
GIT_ASSERT_ARG(ctx && ctx->c);
|
186
|
+
|
187
|
+
if (EVP_DigestFinal(ctx->c, out, &len) != 1) {
|
188
|
+
git_error_set(GIT_ERROR_SHA, "failed to finalize sha1");
|
189
|
+
return -1;
|
190
|
+
}
|
191
|
+
|
192
|
+
ctx->c = NULL;
|
193
|
+
|
194
|
+
return 0;
|
195
|
+
}
|
196
|
+
|
197
|
+
#endif
|
198
|
+
|
123
199
|
#ifdef GIT_SHA256_OPENSSL
|
124
200
|
|
125
201
|
# ifdef GIT_OPENSSL_DYNAMIC
|
@@ -193,3 +269,79 @@ int git_hash_sha256_final(unsigned char *out, git_hash_sha256_ctx *ctx)
|
|
193
269
|
}
|
194
270
|
|
195
271
|
#endif
|
272
|
+
|
273
|
+
#ifdef GIT_SHA256_OPENSSL_FIPS
|
274
|
+
|
275
|
+
static const EVP_MD *SHA256_ENGINE_DIGEST_TYPE = NULL;
|
276
|
+
|
277
|
+
int git_hash_sha256_global_init(void)
|
278
|
+
{
|
279
|
+
SHA256_ENGINE_DIGEST_TYPE = EVP_sha256();
|
280
|
+
return SHA256_ENGINE_DIGEST_TYPE != NULL ? 0 : -1;
|
281
|
+
}
|
282
|
+
|
283
|
+
int git_hash_sha256_ctx_init(git_hash_sha256_ctx *ctx)
|
284
|
+
{
|
285
|
+
return git_hash_sha256_init(ctx);
|
286
|
+
}
|
287
|
+
|
288
|
+
void git_hash_sha256_ctx_cleanup(git_hash_sha256_ctx *ctx)
|
289
|
+
{
|
290
|
+
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
291
|
+
EVP_MD_CTX_destroy(ctx->c);
|
292
|
+
#else
|
293
|
+
EVP_MD_CTX_free(ctx->c);
|
294
|
+
#endif
|
295
|
+
}
|
296
|
+
|
297
|
+
int git_hash_sha256_init(git_hash_sha256_ctx *ctx)
|
298
|
+
{
|
299
|
+
GIT_ASSERT_ARG(ctx);
|
300
|
+
GIT_ASSERT(SHA256_ENGINE_DIGEST_TYPE);
|
301
|
+
|
302
|
+
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
303
|
+
ctx->c = EVP_MD_CTX_create();
|
304
|
+
#else
|
305
|
+
ctx->c = EVP_MD_CTX_new();
|
306
|
+
#endif
|
307
|
+
|
308
|
+
GIT_ASSERT(ctx->c);
|
309
|
+
|
310
|
+
if (EVP_DigestInit_ex(ctx->c, SHA256_ENGINE_DIGEST_TYPE, NULL) != 1) {
|
311
|
+
git_hash_sha256_ctx_cleanup(ctx);
|
312
|
+
git_error_set(GIT_ERROR_SHA, "failed to initialize sha256 context");
|
313
|
+
return -1;
|
314
|
+
}
|
315
|
+
|
316
|
+
return 0;
|
317
|
+
}
|
318
|
+
|
319
|
+
int git_hash_sha256_update(git_hash_sha256_ctx *ctx, const void *data, size_t len)
|
320
|
+
{
|
321
|
+
GIT_ASSERT_ARG(ctx && ctx->c);
|
322
|
+
|
323
|
+
if (EVP_DigestUpdate(ctx->c, data, len) != 1) {
|
324
|
+
git_error_set(GIT_ERROR_SHA, "failed to update sha256");
|
325
|
+
return -1;
|
326
|
+
}
|
327
|
+
|
328
|
+
return 0;
|
329
|
+
}
|
330
|
+
|
331
|
+
int git_hash_sha256_final(unsigned char *out, git_hash_sha256_ctx *ctx)
|
332
|
+
{
|
333
|
+
unsigned int len = 0;
|
334
|
+
|
335
|
+
GIT_ASSERT_ARG(ctx && ctx->c);
|
336
|
+
|
337
|
+
if (EVP_DigestFinal(ctx->c, out, &len) != 1) {
|
338
|
+
git_error_set(GIT_ERROR_SHA, "failed to finalize sha256");
|
339
|
+
return -1;
|
340
|
+
}
|
341
|
+
|
342
|
+
ctx->c = NULL;
|
343
|
+
|
344
|
+
return 0;
|
345
|
+
}
|
346
|
+
|
347
|
+
#endif
|
@@ -11,7 +11,11 @@
|
|
11
11
|
#include "hash/sha.h"
|
12
12
|
|
13
13
|
#ifndef GIT_OPENSSL_DYNAMIC
|
14
|
-
#
|
14
|
+
# if defined(GIT_SHA1_OPENSSL_FIPS) || defined(GIT_SHA256_OPENSSL_FIPS)
|
15
|
+
# include <openssl/evp.h>
|
16
|
+
# else
|
17
|
+
# include <openssl/sha.h>
|
18
|
+
# endif
|
15
19
|
#else
|
16
20
|
|
17
21
|
typedef struct {
|
@@ -36,10 +40,22 @@ struct git_hash_sha1_ctx {
|
|
36
40
|
};
|
37
41
|
#endif
|
38
42
|
|
43
|
+
#ifdef GIT_SHA1_OPENSSL_FIPS
|
44
|
+
struct git_hash_sha1_ctx {
|
45
|
+
EVP_MD_CTX* c;
|
46
|
+
};
|
47
|
+
#endif
|
48
|
+
|
39
49
|
#ifdef GIT_SHA256_OPENSSL
|
40
50
|
struct git_hash_sha256_ctx {
|
41
51
|
SHA256_CTX c;
|
42
52
|
};
|
43
53
|
#endif
|
44
54
|
|
55
|
+
#ifdef GIT_SHA256_OPENSSL_FIPS
|
56
|
+
struct git_hash_sha256_ctx {
|
57
|
+
EVP_MD_CTX* c;
|
58
|
+
};
|
59
|
+
#endif
|
60
|
+
|
45
61
|
#endif
|
@@ -17,7 +17,10 @@ typedef struct git_hash_sha256_ctx git_hash_sha256_ctx;
|
|
17
17
|
# include "common_crypto.h"
|
18
18
|
#endif
|
19
19
|
|
20
|
-
#if defined(GIT_SHA1_OPENSSL) ||
|
20
|
+
#if defined(GIT_SHA1_OPENSSL) || \
|
21
|
+
defined(GIT_SHA1_OPENSSL_FIPS) || \
|
22
|
+
defined(GIT_SHA256_OPENSSL) || \
|
23
|
+
defined(GIT_SHA256_OPENSSL_FIPS)
|
21
24
|
# include "openssl.h"
|
22
25
|
#endif
|
23
26
|
|