rugged 1.3.2 → 1.6.2
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/README.md +34 -2
- data/ext/rugged/extconf.rb +7 -4
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_blame.c +2 -0
- data/ext/rugged/rugged_blob.c +3 -0
- data/ext/rugged/rugged_commit.c +1 -0
- data/ext/rugged/rugged_config.c +9 -2
- data/ext/rugged/rugged_diff.c +1 -0
- data/ext/rugged/rugged_index.c +2 -0
- data/ext/rugged/rugged_patch.c +1 -0
- data/ext/rugged/rugged_rebase.c +1 -0
- data/ext/rugged/rugged_reference.c +1 -0
- data/ext/rugged/rugged_remote.c +28 -10
- data/ext/rugged/rugged_repo.c +7 -9
- data/ext/rugged/rugged_revwalk.c +5 -1
- data/ext/rugged/rugged_settings.c +5 -0
- data/ext/rugged/rugged_submodule.c +1 -0
- data/ext/rugged/rugged_tag.c +1 -0
- data/ext/rugged/rugged_tree.c +4 -0
- data/lib/rugged/index.rb +1 -1
- data/lib/rugged/tree.rb +5 -1
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +132 -288
- data/vendor/libgit2/COPYING +106 -19
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
- data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
- data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
- data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
- data/vendor/libgit2/cmake/{FindHTTP_Parser.cmake → FindHTTPParser.cmake} +17 -17
- data/vendor/libgit2/cmake/FindIconv.cmake +27 -27
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
- data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
- data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
- data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
- data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
- data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
- data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
- data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
- data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
- data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +19 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +100 -100
- data/vendor/libgit2/cmake/SelectHashes.cmake +91 -53
- data/vendor/libgit2/cmake/SelectRegex.cmake +51 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +41 -0
- data/vendor/libgit2/cmake/SelectWinHTTP.cmake +17 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +34 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +3 -1
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +88 -88
- data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/zlib/adler32.c +7 -0
- data/vendor/libgit2/deps/zlib/crc32.c +975 -288
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +83 -31
- data/vendor/libgit2/deps/zlib/deflate.h +12 -15
- data/vendor/libgit2/deps/zlib/gzguts.h +3 -2
- data/vendor/libgit2/deps/zlib/infback.c +2 -1
- data/vendor/libgit2/deps/zlib/inffast.c +14 -14
- data/vendor/libgit2/deps/zlib/inflate.c +39 -8
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- data/vendor/libgit2/deps/zlib/inftrees.c +3 -3
- data/vendor/libgit2/deps/zlib/trees.c +27 -48
- data/vendor/libgit2/deps/zlib/zlib.h +126 -100
- data/vendor/libgit2/deps/zlib/zutil.c +2 -2
- data/vendor/libgit2/deps/zlib/zutil.h +12 -9
- data/vendor/libgit2/include/git2/apply.h +16 -2
- data/vendor/libgit2/include/git2/attr.h +11 -2
- data/vendor/libgit2/include/git2/blame.h +4 -1
- data/vendor/libgit2/include/git2/blob.h +14 -1
- data/vendor/libgit2/include/git2/branch.h +4 -2
- data/vendor/libgit2/include/git2/buffer.h +18 -78
- data/vendor/libgit2/include/git2/cert.h +2 -2
- data/vendor/libgit2/include/git2/checkout.h +5 -2
- data/vendor/libgit2/include/git2/clone.h +3 -3
- data/vendor/libgit2/include/git2/commit.h +2 -0
- data/vendor/libgit2/include/git2/common.h +28 -7
- data/vendor/libgit2/include/git2/config.h +25 -9
- data/vendor/libgit2/include/git2/credential.h +2 -1
- data/vendor/libgit2/include/git2/credential_helpers.h +1 -0
- data/vendor/libgit2/include/git2/deprecated.h +9 -1
- data/vendor/libgit2/include/git2/describe.h +7 -2
- data/vendor/libgit2/include/git2/diff.h +18 -10
- data/vendor/libgit2/include/git2/email.h +1 -1
- data/vendor/libgit2/include/git2/errors.h +17 -3
- data/vendor/libgit2/include/git2/experimental.h +20 -0
- data/vendor/libgit2/include/git2/filter.h +7 -2
- data/vendor/libgit2/include/git2/graph.h +1 -0
- data/vendor/libgit2/include/git2/ignore.h +1 -1
- data/vendor/libgit2/include/git2/index.h +11 -5
- data/vendor/libgit2/include/git2/indexer.h +48 -0
- data/vendor/libgit2/include/git2/merge.h +24 -4
- data/vendor/libgit2/include/git2/message.h +2 -0
- data/vendor/libgit2/include/git2/object.h +49 -0
- data/vendor/libgit2/include/git2/odb.h +94 -13
- data/vendor/libgit2/include/git2/odb_backend.h +107 -19
- data/vendor/libgit2/include/git2/oid.h +115 -15
- data/vendor/libgit2/include/git2/pack.h +24 -8
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/pathspec.h +1 -1
- data/vendor/libgit2/include/git2/proxy.h +1 -1
- data/vendor/libgit2/include/git2/rebase.h +9 -1
- data/vendor/libgit2/include/git2/refdb.h +3 -0
- data/vendor/libgit2/include/git2/reflog.h +1 -1
- data/vendor/libgit2/include/git2/refs.h +2 -2
- data/vendor/libgit2/include/git2/remote.h +184 -37
- data/vendor/libgit2/include/git2/repository.h +34 -10
- data/vendor/libgit2/include/git2/reset.h +2 -2
- data/vendor/libgit2/include/git2/revparse.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +4 -1
- data/vendor/libgit2/include/git2/signature.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +61 -7
- data/vendor/libgit2/include/git2/status.h +14 -5
- data/vendor/libgit2/include/git2/strarray.h +0 -13
- data/vendor/libgit2/include/git2/submodule.h +7 -2
- data/vendor/libgit2/include/git2/sys/commit_graph.h +1 -1
- data/vendor/libgit2/include/git2/sys/odb_backend.h +3 -6
- data/vendor/libgit2/include/git2/sys/remote.h +46 -0
- data/vendor/libgit2/include/git2/sys/stream.h +1 -1
- data/vendor/libgit2/include/git2/sys/transport.h +46 -39
- data/vendor/libgit2/include/git2/tag.h +1 -0
- data/vendor/libgit2/include/git2/tree.h +4 -3
- data/vendor/libgit2/include/git2/types.h +7 -7
- data/vendor/libgit2/include/git2/version.h +27 -6
- data/vendor/libgit2/include/git2/worktree.h +12 -2
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +177 -419
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +57 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/cli/cli.h +20 -0
- data/vendor/libgit2/src/cli/cmd.c +21 -0
- data/vendor/libgit2/src/cli/cmd.h +33 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +204 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +176 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +154 -0
- data/vendor/libgit2/src/cli/cmd_help.c +86 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +106 -0
- data/vendor/libgit2/src/cli/opt.c +669 -0
- data/vendor/libgit2/src/cli/opt.h +349 -0
- data/vendor/libgit2/src/cli/opt_usage.c +194 -0
- data/vendor/libgit2/src/cli/opt_usage.h +35 -0
- data/vendor/libgit2/src/cli/progress.c +345 -0
- data/vendor/libgit2/src/cli/progress.h +117 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +36 -0
- data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
- data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +141 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +1 -1
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +18 -18
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +18 -18
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +18 -18
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +4 -4
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +18 -13
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +2 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -1
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
- data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
- data/vendor/libgit2/src/{branch.h → libgit2/branch.h} +15 -3
- data/vendor/libgit2/src/libgit2/buf.c +126 -0
- data/vendor/libgit2/src/libgit2/buf.h +50 -0
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +74 -68
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +13 -13
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +96 -67
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +178 -73
- data/vendor/libgit2/src/libgit2/commit.h +87 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +122 -89
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +14 -4
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +7 -4
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +101 -69
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +15 -2
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +105 -93
- data/vendor/libgit2/src/{config_mem.c → libgit2/config_mem.c} +9 -9
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +27 -23
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +35 -27
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +30 -9
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +2 -4
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +34 -36
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +3 -3
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +44 -26
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +47 -18
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +112 -100
- data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
- data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
- data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +13 -8
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +55 -39
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
- data/vendor/libgit2/src/{errors.c → libgit2/errors.c} +18 -18
- data/vendor/libgit2/src/{errors.h → libgit2/errors.h} +1 -2
- data/vendor/libgit2/src/libgit2/experimental.h.in +13 -0
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +72 -27
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -1
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +23 -23
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +127 -53
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +35 -34
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +91 -90
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +6 -3
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +173 -92
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +71 -61
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +5 -5
- data/vendor/libgit2/src/{libgit2.c → libgit2/libgit2.c} +46 -11
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +38 -36
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +30 -30
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +2 -2
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -3
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +112 -92
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +5 -4
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +15 -12
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +5 -2
- data/vendor/libgit2/src/{netops.c → libgit2/netops.c} +1 -2
- data/vendor/libgit2/src/{netops.h → libgit2/netops.h} +1 -1
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +25 -34
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +135 -30
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +12 -3
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +228 -81
- data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
- data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
- data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +18 -5
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +137 -85
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +136 -90
- data/vendor/libgit2/src/libgit2/oid.h +273 -0
- data/vendor/libgit2/src/{oidmap.c → libgit2/oidmap.c} +1 -1
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +56 -30
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +11 -6
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +114 -84
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +31 -16
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +4 -3
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +1 -0
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +27 -11
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +29 -29
- data/vendor/libgit2/src/libgit2/path.c +375 -0
- data/vendor/libgit2/src/libgit2/path.h +68 -0
- data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +6 -6
- data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
- data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
- data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
- data/vendor/libgit2/src/{push.c → libgit2/push.c} +43 -38
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +4 -16
- data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
- data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +119 -107
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +506 -197
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +7 -5
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +1 -2
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +34 -32
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +2 -2
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +32 -37
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +5 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +718 -420
- data/vendor/libgit2/src/libgit2/remote.h +100 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +629 -386
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +20 -9
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +14 -14
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +71 -42
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +12 -8
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +12 -6
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -1
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +235 -61
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +4 -1
- data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
- data/vendor/libgit2/src/libgit2/strarray.h +25 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +8 -6
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +1 -1
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +7 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +3 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.c +4 -1
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +177 -161
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +1 -1
- data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +53 -18
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +73 -42
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
- data/vendor/libgit2/src/{threadstate.c → libgit2/threadstate.c} +3 -3
- data/vendor/libgit2/src/{threadstate.h → libgit2/threadstate.h} +2 -2
- data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
- data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
- data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +1 -1
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +1 -1
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +10 -10
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +2 -3
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.c +12 -13
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.c +10 -10
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +0 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +9 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +41 -20
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +2 -3
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +75 -66
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +138 -116
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +92 -133
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +35 -32
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +177 -65
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +97 -49
- data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.c +365 -198
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +58 -59
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +8 -8
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +2 -2
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +93 -83
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +4 -4
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +121 -94
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
- data/vendor/libgit2/src/libgit2/xdiff/git-xdiff.h +53 -0
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiff.h +15 -15
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.c +134 -108
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.c +23 -7
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xhistogram.c +87 -78
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xinclude.h +1 -12
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmerge.c +104 -117
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xpatience.c +6 -17
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.c +15 -20
- data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.c +18 -7
- data/vendor/libgit2/src/util/CMakeLists.txt +80 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +1 -1
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +1 -1
- data/vendor/libgit2/src/{date.c → util/date.c} +14 -20
- data/vendor/libgit2/src/util/date.h +33 -0
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +29 -29
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +2 -2
- data/vendor/libgit2/src/{path.c → util/fs_path.c} +453 -647
- data/vendor/libgit2/src/{path.h → util/fs_path.h} +221 -188
- data/vendor/libgit2/src/{futils.c → util/futils.c} +135 -90
- data/vendor/libgit2/src/{futils.h → util/futils.h} +28 -15
- data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +15 -1
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +20 -59
- data/vendor/libgit2/src/util/hash/builtin.c +53 -0
- data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +195 -0
- data/vendor/libgit2/src/util/hash/openssl.h +45 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +70 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/util/hash.c +158 -0
- data/vendor/libgit2/src/util/hash.h +61 -0
- data/vendor/libgit2/src/{khash.h → util/khash.h} +1 -1
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/util/net.c +1003 -0
- data/vendor/libgit2/src/{net.h → util/net.h} +18 -4
- data/vendor/libgit2/src/{pool.h → util/pool.h} +1 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +3 -3
- data/vendor/libgit2/src/{posix.h → util/posix.h} +4 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +2 -2
- data/vendor/libgit2/src/util/rand.c +234 -0
- data/vendor/libgit2/src/util/rand.h +37 -0
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +4 -4
- data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
- data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
- data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
- data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +1 -1
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +2 -2
- data/vendor/libgit2/src/{buffer.c → util/str.c} +157 -151
- data/vendor/libgit2/src/util/str.h +357 -0
- data/vendor/libgit2/src/{strmap.h → util/strmap.h} +1 -1
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -4
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +1 -3
- data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
- data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
- data/vendor/libgit2/src/{util.c → util/util.c} +15 -15
- data/vendor/libgit2/src/{util.h → util/util.h} +4 -29
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.h → util/vector.h} +2 -2
- data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +140 -9
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +12 -28
- data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
- metadata +402 -356
- data/vendor/libgit2/src/buffer.h +0 -374
- data/vendor/libgit2/src/commit.h +0 -46
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
- data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
- data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
- data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash.c +0 -110
- data/vendor/libgit2/src/hash.h +0 -46
- data/vendor/libgit2/src/message.h +0 -17
- data/vendor/libgit2/src/net.c +0 -540
- data/vendor/libgit2/src/oid.h +0 -51
- data/vendor/libgit2/src/remote.h +0 -55
- data/vendor/libgit2/src/sysdir.c +0 -347
- data/vendor/libgit2/src/win32/findfile.c +0 -230
- data/vendor/libgit2/src/win32/findfile.h +0 -19
- /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- /data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +0 -0
- /data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +0 -0
- /data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +0 -0
- /data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -0
- /data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +0 -0
- /data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +0 -0
- /data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +0 -0
- /data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +0 -0
- /data/vendor/libgit2/src/{config_entries.c → libgit2/config_entries.c} +0 -0
- /data/vendor/libgit2/src/{config_entries.h → libgit2/config_entries.h} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- /data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +0 -0
- /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
- /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
- /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
- /data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +0 -0
- /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- /data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +0 -0
- /data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{idxmap.c → libgit2/idxmap.c} +0 -0
- /data/vendor/libgit2/src/{idxmap.h → libgit2/idxmap.h} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{libgit2.h → libgit2/libgit2.h} +0 -0
- /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- /data/vendor/libgit2/src/{offmap.c → libgit2/offmap.c} +0 -0
- /data/vendor/libgit2/src/{offmap.h → libgit2/offmap.h} +0 -0
- /data/vendor/libgit2/src/{oidarray.c → libgit2/oidarray.c} +0 -0
- /data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +0 -0
- /data/vendor/libgit2/src/{oidmap.h → libgit2/oidmap.h} +0 -0
- /data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +0 -0
- /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
- /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
- /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
- /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
- /data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +0 -0
- /data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +0 -0
- /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/ssh.h +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xdiffi.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xemit.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xmacros.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xprepare.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xtypes.h +0 -0
- /data/vendor/libgit2/src/{xdiff → libgit2/xdiff}/xutils.h +0 -0
- /data/vendor/libgit2/src/{alloc.c → util/alloc.c} +0 -0
- /data/vendor/libgit2/src/{alloc.h → util/alloc.h} +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/failalloc.c +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.c +0 -0
- /data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.c +0 -0
- /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
- /data/vendor/libgit2/src/{integer.h → util/integer.h} +0 -0
- /data/vendor/libgit2/src/{pool.c → util/pool.c} +0 -0
- /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{strmap.c → util/strmap.c} +0 -0
- /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
- /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
- /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
- /data/vendor/libgit2/src/{vector.c → util/vector.c} +0 -0
- /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/error.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/utf-conv.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
|
@@ -7,24 +7,28 @@
|
|
|
7
7
|
#ifndef INCLUDE_futils_h__
|
|
8
8
|
#define INCLUDE_futils_h__
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "git2_util.h"
|
|
11
11
|
|
|
12
12
|
#include "map.h"
|
|
13
13
|
#include "posix.h"
|
|
14
|
-
#include "
|
|
14
|
+
#include "fs_path.h"
|
|
15
15
|
#include "pool.h"
|
|
16
16
|
#include "strmap.h"
|
|
17
|
-
#include "
|
|
17
|
+
#include "hash.h"
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Filebuffer methods
|
|
21
21
|
*
|
|
22
22
|
* Read whole files into an in-memory buffer for processing
|
|
23
23
|
*/
|
|
24
|
-
extern int git_futils_readbuffer(
|
|
24
|
+
extern int git_futils_readbuffer(git_str *obj, const char *path);
|
|
25
25
|
extern int git_futils_readbuffer_updated(
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
git_str *obj,
|
|
27
|
+
const char *path,
|
|
28
|
+
unsigned char checksum[GIT_HASH_SHA1_SIZE],
|
|
29
|
+
int *updated);
|
|
30
|
+
extern int git_futils_readbuffer_fd_full(git_str *obj, git_file fd);
|
|
31
|
+
extern int git_futils_readbuffer_fd(git_str *obj, git_file fd, size_t len);
|
|
28
32
|
|
|
29
33
|
/* Additional constants for `git_futils_writebuffer`'s `open_flags`. We
|
|
30
34
|
* support these internally and they will be removed before the `open` call.
|
|
@@ -34,7 +38,7 @@ extern int git_futils_readbuffer_fd(git_buf *obj, git_file fd, size_t len);
|
|
|
34
38
|
#endif
|
|
35
39
|
|
|
36
40
|
extern int git_futils_writebuffer(
|
|
37
|
-
const
|
|
41
|
+
const git_str *buf, const char *path, int open_flags, mode_t mode);
|
|
38
42
|
|
|
39
43
|
/**
|
|
40
44
|
* File utils
|
|
@@ -93,7 +97,7 @@ typedef enum {
|
|
|
93
97
|
GIT_MKDIR_SKIP_LAST2 = 32,
|
|
94
98
|
GIT_MKDIR_VERIFY_DIR = 64,
|
|
95
99
|
GIT_MKDIR_REMOVE_FILES = 128,
|
|
96
|
-
GIT_MKDIR_REMOVE_SYMLINKS = 256
|
|
100
|
+
GIT_MKDIR_REMOVE_SYMLINKS = 256
|
|
97
101
|
} git_futils_mkdir_flags;
|
|
98
102
|
|
|
99
103
|
struct git_futils_mkdir_perfdata
|
|
@@ -156,7 +160,7 @@ typedef enum {
|
|
|
156
160
|
GIT_RMDIR_SKIP_NONEMPTY = (1 << 1),
|
|
157
161
|
GIT_RMDIR_EMPTY_PARENTS = (1 << 2),
|
|
158
162
|
GIT_RMDIR_REMOVE_BLOCKERS = (1 << 3),
|
|
159
|
-
GIT_RMDIR_SKIP_ROOT = (1 << 4)
|
|
163
|
+
GIT_RMDIR_SKIP_ROOT = (1 << 4)
|
|
160
164
|
} git_futils_rmdir_flags;
|
|
161
165
|
|
|
162
166
|
/**
|
|
@@ -170,11 +174,20 @@ typedef enum {
|
|
|
170
174
|
extern int git_futils_rmdir_r(const char *path, const char *base, uint32_t flags);
|
|
171
175
|
|
|
172
176
|
/**
|
|
173
|
-
* Create and open a temporary file with a `_git2_` suffix
|
|
174
|
-
*
|
|
177
|
+
* Create and open a temporary file with a `_git2_` suffix in a
|
|
178
|
+
* protected directory; the file created will created will honor
|
|
179
|
+
* the current `umask`. Writes the filename into path_out.
|
|
180
|
+
*
|
|
181
|
+
* This function uses a high-quality PRNG seeded by the system's
|
|
182
|
+
* entropy pool _where available_ and falls back to a simple seed
|
|
183
|
+
* (time plus system information) when not. This is suitable for
|
|
184
|
+
* writing within a protected directory, but the system's safe
|
|
185
|
+
* temporary file creation functions should be preferred where
|
|
186
|
+
* available when writing into world-writable (temp) directories.
|
|
187
|
+
*
|
|
175
188
|
* @return On success, an open file descriptor, else an error code < 0.
|
|
176
189
|
*/
|
|
177
|
-
extern int git_futils_mktmp(
|
|
190
|
+
extern int git_futils_mktmp(git_str *path_out, const char *filename, mode_t mode);
|
|
178
191
|
|
|
179
192
|
/**
|
|
180
193
|
* Move a file on the filesystem, create the
|
|
@@ -221,17 +234,17 @@ typedef enum {
|
|
|
221
234
|
GIT_CPDIR_OVERWRITE = (1u << 3),
|
|
222
235
|
GIT_CPDIR_CHMOD_DIRS = (1u << 4),
|
|
223
236
|
GIT_CPDIR_SIMPLE_TO_MODE = (1u << 5),
|
|
224
|
-
GIT_CPDIR_LINK_FILES = (1u << 6)
|
|
237
|
+
GIT_CPDIR_LINK_FILES = (1u << 6)
|
|
225
238
|
} git_futils_cpdir_flags;
|
|
226
239
|
|
|
227
240
|
/**
|
|
228
241
|
* Copy a directory tree.
|
|
229
242
|
*
|
|
230
243
|
* This copies directories and files from one root to another. You can
|
|
231
|
-
* pass a
|
|
244
|
+
* pass a combination of GIT_CPDIR flags as defined above.
|
|
232
245
|
*
|
|
233
246
|
* If you pass the CHMOD flag, then the dirmode will be applied to all
|
|
234
|
-
* directories that are created during the copy,
|
|
247
|
+
* directories that are created during the copy, overriding the natural
|
|
235
248
|
* permissions. If you do not pass the CHMOD flag, then the dirmode
|
|
236
249
|
* will actually be copied from the source files and the `dirmode` arg
|
|
237
250
|
* will be ignored.
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
#cmakedefine GIT_DEBUG_STRICT_ALLOC 1
|
|
6
6
|
#cmakedefine GIT_DEBUG_STRICT_OPEN 1
|
|
7
7
|
|
|
8
|
-
#cmakedefine GIT_TRACE 1
|
|
9
8
|
#cmakedefine GIT_THREADS 1
|
|
10
9
|
#cmakedefine GIT_WIN32_LEAKCHECK 1
|
|
11
10
|
|
|
@@ -25,6 +24,10 @@
|
|
|
25
24
|
#cmakedefine GIT_REGEX_PCRE2
|
|
26
25
|
#cmakedefine GIT_REGEX_BUILTIN 1
|
|
27
26
|
|
|
27
|
+
#cmakedefine GIT_QSORT_R_BSD
|
|
28
|
+
#cmakedefine GIT_QSORT_R_GNU
|
|
29
|
+
#cmakedefine GIT_QSORT_S
|
|
30
|
+
|
|
28
31
|
#cmakedefine GIT_SSH 1
|
|
29
32
|
#cmakedefine GIT_SSH_MEMORY_CREDENTIALS 1
|
|
30
33
|
|
|
@@ -43,6 +46,17 @@
|
|
|
43
46
|
#cmakedefine GIT_SHA1_WIN32 1
|
|
44
47
|
#cmakedefine GIT_SHA1_COMMON_CRYPTO 1
|
|
45
48
|
#cmakedefine GIT_SHA1_OPENSSL 1
|
|
49
|
+
#cmakedefine GIT_SHA1_OPENSSL_DYNAMIC 1
|
|
46
50
|
#cmakedefine GIT_SHA1_MBEDTLS 1
|
|
47
51
|
|
|
52
|
+
#cmakedefine GIT_SHA256_BUILTIN 1
|
|
53
|
+
#cmakedefine GIT_SHA256_WIN32 1
|
|
54
|
+
#cmakedefine GIT_SHA256_COMMON_CRYPTO 1
|
|
55
|
+
#cmakedefine GIT_SHA256_OPENSSL 1
|
|
56
|
+
#cmakedefine GIT_SHA256_OPENSSL_DYNAMIC 1
|
|
57
|
+
#cmakedefine GIT_SHA256_MBEDTLS 1
|
|
58
|
+
|
|
59
|
+
#cmakedefine GIT_RAND_GETENTROPY 1
|
|
60
|
+
#cmakedefine GIT_RAND_GETLOADAVG 1
|
|
61
|
+
|
|
48
62
|
#endif
|
|
@@ -4,23 +4,23 @@
|
|
|
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_git2_util_h__
|
|
8
|
+
#define INCLUDE_git2_util_h__
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
# include "
|
|
10
|
+
#if !defined(LIBGIT2_NO_FEATURES_H)
|
|
11
|
+
# include "git2_features.h"
|
|
12
12
|
#endif
|
|
13
13
|
|
|
14
14
|
#include "git2/common.h"
|
|
15
15
|
#include "cc-compat.h"
|
|
16
16
|
|
|
17
|
+
typedef struct git_str git_str;
|
|
18
|
+
|
|
17
19
|
/** Declare a function as always inlined. */
|
|
18
20
|
#if defined(_MSC_VER)
|
|
19
21
|
# define GIT_INLINE(type) static __inline type
|
|
20
22
|
#elif defined(__GNUC__)
|
|
21
23
|
# define GIT_INLINE(type) static __inline__ type
|
|
22
|
-
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
|
23
|
-
# define GIT_INLINE(type) static inline type
|
|
24
24
|
#else
|
|
25
25
|
# define GIT_INLINE(type) static type
|
|
26
26
|
#endif
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
# include <ws2tcpip.h>
|
|
68
68
|
# include "win32/msvc-compat.h"
|
|
69
69
|
# include "win32/mingw-compat.h"
|
|
70
|
-
# include "win32/w32_common.h"
|
|
71
70
|
# include "win32/win32-compat.h"
|
|
72
|
-
# include "win32/
|
|
71
|
+
# include "win32/w32_common.h"
|
|
73
72
|
# include "win32/version.h"
|
|
73
|
+
# include "win32/error.h"
|
|
74
74
|
# ifdef GIT_THREADS
|
|
75
|
-
#
|
|
75
|
+
# include "win32/thread.h"
|
|
76
76
|
# endif
|
|
77
77
|
|
|
78
78
|
#else
|
|
@@ -99,34 +99,31 @@
|
|
|
99
99
|
|
|
100
100
|
#include "git2/types.h"
|
|
101
101
|
#include "git2/errors.h"
|
|
102
|
-
#include "errors.h"
|
|
103
102
|
#include "thread.h"
|
|
104
103
|
#include "integer.h"
|
|
105
104
|
#include "assert_safe.h"
|
|
106
|
-
#include "utf8.h"
|
|
107
|
-
|
|
108
|
-
/*
|
|
109
|
-
* Include the declarations for deprecated functions; this ensures
|
|
110
|
-
* that they're decorated with the proper extern/visibility attributes.
|
|
111
|
-
*/
|
|
112
|
-
#include "git2/deprecated.h"
|
|
113
105
|
|
|
114
106
|
#include "posix.h"
|
|
115
107
|
|
|
116
|
-
#define
|
|
117
|
-
#define
|
|
118
|
-
#define
|
|
119
|
-
#define
|
|
108
|
+
#define GIT_BUFSIZE_DEFAULT 65536
|
|
109
|
+
#define GIT_BUFSIZE_FILEIO GIT_BUFSIZE_DEFAULT
|
|
110
|
+
#define GIT_BUFSIZE_FILTERIO GIT_BUFSIZE_DEFAULT
|
|
111
|
+
#define GIT_BUFSIZE_NETIO GIT_BUFSIZE_DEFAULT
|
|
112
|
+
|
|
120
113
|
|
|
121
114
|
/**
|
|
122
115
|
* Check a pointer allocation result, returning -1 if it failed.
|
|
123
116
|
*/
|
|
124
|
-
#define GIT_ERROR_CHECK_ALLOC(ptr)
|
|
117
|
+
#define GIT_ERROR_CHECK_ALLOC(ptr) do { \
|
|
118
|
+
if ((ptr) == NULL) { return -1; } \
|
|
119
|
+
} while(0)
|
|
125
120
|
|
|
126
121
|
/**
|
|
127
122
|
* Check a buffer allocation result, returning -1 if it failed.
|
|
128
123
|
*/
|
|
129
|
-
#define
|
|
124
|
+
#define GIT_ERROR_CHECK_ALLOC_STR(buf) do { \
|
|
125
|
+
if ((void *)(buf) == NULL || git_str_oom(buf)) { return -1; } \
|
|
126
|
+
} while(0)
|
|
130
127
|
|
|
131
128
|
/**
|
|
132
129
|
* Check a return value and propagate result if non-zero.
|
|
@@ -134,40 +131,6 @@
|
|
|
134
131
|
#define GIT_ERROR_CHECK_ERROR(code) \
|
|
135
132
|
do { int _err = (code); if (_err) return _err; } while (0)
|
|
136
133
|
|
|
137
|
-
/**
|
|
138
|
-
* Check a versioned structure for validity
|
|
139
|
-
*/
|
|
140
|
-
GIT_INLINE(int) git_error__check_version(const void *structure, unsigned int expected_max, const char *name)
|
|
141
|
-
{
|
|
142
|
-
unsigned int actual;
|
|
143
|
-
|
|
144
|
-
if (!structure)
|
|
145
|
-
return 0;
|
|
146
|
-
|
|
147
|
-
actual = *(const unsigned int*)structure;
|
|
148
|
-
if (actual > 0 && actual <= expected_max)
|
|
149
|
-
return 0;
|
|
150
|
-
|
|
151
|
-
git_error_set(GIT_ERROR_INVALID, "invalid version %d on %s", actual, name);
|
|
152
|
-
return -1;
|
|
153
|
-
}
|
|
154
|
-
#define GIT_ERROR_CHECK_VERSION(S,V,N) if (git_error__check_version(S,V,N) < 0) return -1
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Initialize a structure with a version.
|
|
158
|
-
*/
|
|
159
|
-
GIT_INLINE(void) git__init_structure(void *structure, size_t len, unsigned int version)
|
|
160
|
-
{
|
|
161
|
-
memset(structure, 0, len);
|
|
162
|
-
*((int*)structure) = version;
|
|
163
|
-
}
|
|
164
|
-
#define GIT_INIT_STRUCTURE(S,V) git__init_structure(S, sizeof(*S), V)
|
|
165
|
-
|
|
166
|
-
#define GIT_INIT_STRUCTURE_FROM_TEMPLATE(PTR,VERSION,TYPE,TPL) do { \
|
|
167
|
-
TYPE _tmpl = TPL; \
|
|
168
|
-
GIT_ERROR_CHECK_VERSION(&(VERSION), _tmpl.version, #TYPE); \
|
|
169
|
-
memcpy((PTR), &_tmpl, sizeof(_tmpl)); } while (0)
|
|
170
|
-
|
|
171
134
|
|
|
172
135
|
/** Check for additive overflow, setting an error if would occur. */
|
|
173
136
|
#define GIT_ADD_SIZET_OVERFLOW(out, one, two) \
|
|
@@ -200,8 +163,6 @@ GIT_INLINE(void) git__init_structure(void *structure, size_t len, unsigned int v
|
|
|
200
163
|
#define GIT_ERROR_CHECK_ALLOC_MULTIPLY(out, nelem, elsize) \
|
|
201
164
|
if (GIT_MULTIPLY_SIZET_OVERFLOW(out, nelem, elsize)) { return -1; }
|
|
202
165
|
|
|
203
|
-
/* NOTE: other git_error functions are in the public errors.h header file */
|
|
204
|
-
|
|
205
166
|
#include "util.h"
|
|
206
167
|
|
|
207
168
|
#endif
|
|
@@ -0,0 +1,53 @@
|
|
|
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 "builtin.h"
|
|
9
|
+
|
|
10
|
+
int git_hash_sha256_global_init(void)
|
|
11
|
+
{
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
int git_hash_sha256_ctx_init(git_hash_sha256_ctx *ctx)
|
|
16
|
+
{
|
|
17
|
+
return git_hash_sha256_init(ctx);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
void git_hash_sha256_ctx_cleanup(git_hash_sha256_ctx *ctx)
|
|
21
|
+
{
|
|
22
|
+
GIT_UNUSED(ctx);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
int git_hash_sha256_init(git_hash_sha256_ctx *ctx)
|
|
26
|
+
{
|
|
27
|
+
GIT_ASSERT_ARG(ctx);
|
|
28
|
+
if (SHA256Reset(&ctx->c)) {
|
|
29
|
+
git_error_set(GIT_ERROR_SHA, "SHA256 error");
|
|
30
|
+
return -1;
|
|
31
|
+
}
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
int git_hash_sha256_update(git_hash_sha256_ctx *ctx, const void *data, size_t len)
|
|
36
|
+
{
|
|
37
|
+
GIT_ASSERT_ARG(ctx);
|
|
38
|
+
if (SHA256Input(&ctx->c, data, len)) {
|
|
39
|
+
git_error_set(GIT_ERROR_SHA, "SHA256 error");
|
|
40
|
+
return -1;
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
int git_hash_sha256_final(unsigned char *out, git_hash_sha256_ctx *ctx)
|
|
46
|
+
{
|
|
47
|
+
GIT_ASSERT_ARG(ctx);
|
|
48
|
+
if (SHA256Result(&ctx->c, out)) {
|
|
49
|
+
git_error_set(GIT_ERROR_SHA, "SHA256 error");
|
|
50
|
+
return -1;
|
|
51
|
+
}
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#ifndef
|
|
9
|
-
#define
|
|
8
|
+
#ifndef INCLUDE_hash_builtin_h__
|
|
9
|
+
#define INCLUDE_hash_builtin_h__
|
|
10
10
|
|
|
11
|
-
#include "hash/
|
|
11
|
+
#include "hash/sha.h"
|
|
12
12
|
|
|
13
|
-
#include
|
|
13
|
+
#include "rfc6234/sha.h"
|
|
14
14
|
|
|
15
|
-
struct
|
|
16
|
-
|
|
15
|
+
struct git_hash_sha256_ctx {
|
|
16
|
+
SHA256Context c;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
#endif
|
|
@@ -36,11 +36,11 @@ int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
|
|
|
36
36
|
return 0;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
int git_hash_sha1_final(
|
|
39
|
+
int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
|
|
40
40
|
{
|
|
41
41
|
GIT_ASSERT_ARG(ctx);
|
|
42
|
-
if (SHA1DCFinal(out
|
|
43
|
-
git_error_set(
|
|
42
|
+
if (SHA1DCFinal(out, &ctx->c)) {
|
|
43
|
+
git_error_set(GIT_ERROR_SHA, "SHA1 collision attack detected");
|
|
44
44
|
return -1;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#ifndef
|
|
9
|
-
#define
|
|
8
|
+
#ifndef INCLUDE_hash_collisiondetect_h__
|
|
9
|
+
#define INCLUDE_hash_collisiondetect_h__
|
|
10
10
|
|
|
11
|
-
#include "hash/
|
|
11
|
+
#include "hash/sha.h"
|
|
12
12
|
|
|
13
13
|
#include "sha1dc/sha1.h"
|
|
14
14
|
|
|
@@ -0,0 +1,112 @@
|
|
|
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 "common_crypto.h"
|
|
9
|
+
|
|
10
|
+
#define CC_LONG_MAX ((CC_LONG)-1)
|
|
11
|
+
|
|
12
|
+
#ifdef GIT_SHA1_COMMON_CRYPTO
|
|
13
|
+
|
|
14
|
+
int git_hash_sha1_global_init(void)
|
|
15
|
+
{
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
|
|
20
|
+
{
|
|
21
|
+
return git_hash_sha1_init(ctx);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
|
|
25
|
+
{
|
|
26
|
+
GIT_UNUSED(ctx);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
|
|
30
|
+
{
|
|
31
|
+
GIT_ASSERT_ARG(ctx);
|
|
32
|
+
CC_SHA1_Init(&ctx->c);
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *_data, size_t len)
|
|
37
|
+
{
|
|
38
|
+
const unsigned char *data = _data;
|
|
39
|
+
|
|
40
|
+
GIT_ASSERT_ARG(ctx);
|
|
41
|
+
|
|
42
|
+
while (len > 0) {
|
|
43
|
+
CC_LONG chunk = (len > CC_LONG_MAX) ? CC_LONG_MAX : (CC_LONG)len;
|
|
44
|
+
|
|
45
|
+
CC_SHA1_Update(&ctx->c, data, chunk);
|
|
46
|
+
|
|
47
|
+
data += chunk;
|
|
48
|
+
len -= chunk;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
|
|
55
|
+
{
|
|
56
|
+
GIT_ASSERT_ARG(ctx);
|
|
57
|
+
CC_SHA1_Final(out, &ctx->c);
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#endif
|
|
62
|
+
|
|
63
|
+
#ifdef GIT_SHA256_COMMON_CRYPTO
|
|
64
|
+
|
|
65
|
+
int git_hash_sha256_global_init(void)
|
|
66
|
+
{
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
int git_hash_sha256_ctx_init(git_hash_sha256_ctx *ctx)
|
|
71
|
+
{
|
|
72
|
+
return git_hash_sha256_init(ctx);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
void git_hash_sha256_ctx_cleanup(git_hash_sha256_ctx *ctx)
|
|
76
|
+
{
|
|
77
|
+
GIT_UNUSED(ctx);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
int git_hash_sha256_init(git_hash_sha256_ctx *ctx)
|
|
81
|
+
{
|
|
82
|
+
GIT_ASSERT_ARG(ctx);
|
|
83
|
+
CC_SHA256_Init(&ctx->c);
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
int git_hash_sha256_update(git_hash_sha256_ctx *ctx, const void *_data, size_t len)
|
|
88
|
+
{
|
|
89
|
+
const unsigned char *data = _data;
|
|
90
|
+
|
|
91
|
+
GIT_ASSERT_ARG(ctx);
|
|
92
|
+
|
|
93
|
+
while (len > 0) {
|
|
94
|
+
CC_LONG chunk = (len > CC_LONG_MAX) ? CC_LONG_MAX : (CC_LONG)len;
|
|
95
|
+
|
|
96
|
+
CC_SHA256_Update(&ctx->c, data, chunk);
|
|
97
|
+
|
|
98
|
+
data += chunk;
|
|
99
|
+
len -= chunk;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
int git_hash_sha256_final(unsigned char *out, git_hash_sha256_ctx *ctx)
|
|
106
|
+
{
|
|
107
|
+
GIT_ASSERT_ARG(ctx);
|
|
108
|
+
CC_SHA256_Final(out, &ctx->c);
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
#endif
|
|
@@ -5,15 +5,23 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#ifndef
|
|
9
|
-
#define
|
|
8
|
+
#ifndef INCLUDE_hash_common_crypto_h__
|
|
9
|
+
#define INCLUDE_hash_common_crypto_h__
|
|
10
10
|
|
|
11
|
-
#include "hash/
|
|
11
|
+
#include "hash/sha.h"
|
|
12
12
|
|
|
13
13
|
#include <CommonCrypto/CommonDigest.h>
|
|
14
14
|
|
|
15
|
+
#ifdef GIT_SHA1_COMMON_CRYPTO
|
|
15
16
|
struct git_hash_sha1_ctx {
|
|
16
17
|
CC_SHA1_CTX c;
|
|
17
18
|
};
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#ifdef GIT_SHA256_COMMON_CRYPTO
|
|
22
|
+
struct git_hash_sha256_ctx {
|
|
23
|
+
CC_SHA256_CTX c;
|
|
24
|
+
};
|
|
25
|
+
#endif
|
|
18
26
|
|
|
19
27
|
#endif
|
|
@@ -0,0 +1,92 @@
|
|
|
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 "mbedtls.h"
|
|
9
|
+
|
|
10
|
+
#ifdef GIT_SHA1_MBEDTLS
|
|
11
|
+
|
|
12
|
+
int git_hash_sha1_global_init(void)
|
|
13
|
+
{
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
|
|
18
|
+
{
|
|
19
|
+
return git_hash_sha1_init(ctx);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
|
|
23
|
+
{
|
|
24
|
+
if (ctx)
|
|
25
|
+
mbedtls_sha1_free(&ctx->c);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
|
|
29
|
+
{
|
|
30
|
+
GIT_ASSERT_ARG(ctx);
|
|
31
|
+
mbedtls_sha1_init(&ctx->c);
|
|
32
|
+
mbedtls_sha1_starts(&ctx->c);
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
|
|
37
|
+
{
|
|
38
|
+
GIT_ASSERT_ARG(ctx);
|
|
39
|
+
mbedtls_sha1_update(&ctx->c, data, len);
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
|
|
44
|
+
{
|
|
45
|
+
GIT_ASSERT_ARG(ctx);
|
|
46
|
+
mbedtls_sha1_finish(&ctx->c, out);
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#endif
|
|
51
|
+
|
|
52
|
+
#ifdef GIT_SHA256_MBEDTLS
|
|
53
|
+
|
|
54
|
+
int git_hash_sha256_global_init(void)
|
|
55
|
+
{
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
int git_hash_sha256_ctx_init(git_hash_sha256_ctx *ctx)
|
|
60
|
+
{
|
|
61
|
+
return git_hash_sha256_init(ctx);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
void git_hash_sha256_ctx_cleanup(git_hash_sha256_ctx *ctx)
|
|
65
|
+
{
|
|
66
|
+
if (ctx)
|
|
67
|
+
mbedtls_sha256_free(&ctx->c);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
int git_hash_sha256_init(git_hash_sha256_ctx *ctx)
|
|
71
|
+
{
|
|
72
|
+
GIT_ASSERT_ARG(ctx);
|
|
73
|
+
mbedtls_sha256_init(&ctx->c);
|
|
74
|
+
mbedtls_sha256_starts(&ctx->c, 0);
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
int git_hash_sha256_update(git_hash_sha256_ctx *ctx, const void *data, size_t len)
|
|
79
|
+
{
|
|
80
|
+
GIT_ASSERT_ARG(ctx);
|
|
81
|
+
mbedtls_sha256_update(&ctx->c, data, len);
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
int git_hash_sha256_final(unsigned char *out, git_hash_sha256_ctx *ctx)
|
|
86
|
+
{
|
|
87
|
+
GIT_ASSERT_ARG(ctx);
|
|
88
|
+
mbedtls_sha256_finish(&ctx->c, out);
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
#endif
|
|
@@ -5,15 +5,25 @@
|
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#ifndef
|
|
9
|
-
#define
|
|
8
|
+
#ifndef INCLUDE_hash_mbedtls_h__
|
|
9
|
+
#define INCLUDE_hash_mbedtls_h__
|
|
10
10
|
|
|
11
|
-
#include "hash/
|
|
11
|
+
#include "hash/sha.h"
|
|
12
12
|
|
|
13
|
-
#
|
|
13
|
+
#ifdef GIT_SHA1_MBEDTLS
|
|
14
|
+
# include <mbedtls/sha1.h>
|
|
14
15
|
|
|
15
16
|
struct git_hash_sha1_ctx {
|
|
16
17
|
mbedtls_sha1_context c;
|
|
17
18
|
};
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#ifdef GIT_SHA256_MBEDTLS
|
|
22
|
+
# include <mbedtls/sha256.h>
|
|
23
|
+
|
|
24
|
+
struct git_hash_sha256_ctx {
|
|
25
|
+
mbedtls_sha256_context c;
|
|
26
|
+
};
|
|
27
|
+
#endif
|
|
18
28
|
|
|
19
29
|
#endif /* INCLUDE_hash_sha1_mbedtls_h__ */
|