rugged 0.27.7 → 0.27.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +99 -51
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
- data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
- data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
- data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
- data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
- data/vendor/libgit2/deps/pcre/COPYING +5 -0
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
- data/vendor/libgit2/deps/pcre/config.h.in +57 -0
- data/vendor/libgit2/deps/pcre/pcre.h +641 -0
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
- data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
- data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
- data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
- data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
- data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
- data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
- data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
- data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
- data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
- data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
- data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
- data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
- data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
- data/vendor/libgit2/deps/pcre/ucp.h +224 -0
- data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/zlib/COPYING +27 -0
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
- data/vendor/libgit2/include/git2/apply.h +149 -0
- data/vendor/libgit2/include/git2/attr.h +20 -13
- data/vendor/libgit2/include/git2/blame.h +4 -4
- data/vendor/libgit2/include/git2/blob.h +44 -12
- data/vendor/libgit2/include/git2/buffer.h +20 -26
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +53 -21
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +5 -5
- data/vendor/libgit2/include/git2/commit.h +25 -3
- data/vendor/libgit2/include/git2/common.h +35 -10
- data/vendor/libgit2/include/git2/config.h +29 -19
- data/vendor/libgit2/include/git2/cred.h +308 -0
- data/vendor/libgit2/include/git2/deprecated.h +493 -0
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +177 -135
- data/vendor/libgit2/include/git2/errors.h +53 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/merge.h +25 -10
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +17 -29
- data/vendor/libgit2/include/git2/odb.h +12 -11
- data/vendor/libgit2/include/git2/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +14 -3
- data/vendor/libgit2/include/git2/proxy.h +5 -3
- data/vendor/libgit2/include/git2/rebase.h +46 -2
- data/vendor/libgit2/include/git2/refs.h +34 -16
- data/vendor/libgit2/include/git2/remote.h +111 -14
- data/vendor/libgit2/include/git2/repository.h +69 -34
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +5 -5
- data/vendor/libgit2/include/git2/status.h +26 -17
- data/vendor/libgit2/include/git2/submodule.h +23 -6
- data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/cred.h +90 -0
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/merge.h +3 -3
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +14 -5
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
- data/vendor/libgit2/include/git2/sys/repository.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +92 -12
- data/vendor/libgit2/include/git2/sys/transport.h +129 -83
- data/vendor/libgit2/include/git2/tag.h +13 -4
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +11 -311
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +25 -106
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/include/git2.h +4 -0
- data/vendor/libgit2/src/CMakeLists.txt +104 -235
- data/vendor/libgit2/src/alloc.c +14 -18
- data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
- data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
- data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
- data/vendor/libgit2/src/annotated_commit.c +18 -11
- data/vendor/libgit2/src/apply.c +535 -28
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +77 -71
- data/vendor/libgit2/src/attr_file.c +203 -117
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +49 -51
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +38 -18
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +29 -15
- data/vendor/libgit2/src/blob.c +123 -37
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +47 -23
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +60 -53
- data/vendor/libgit2/src/cache.c +38 -45
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +20 -3
- data/vendor/libgit2/src/checkout.c +77 -67
- data/vendor/libgit2/src/cherrypick.c +12 -6
- data/vendor/libgit2/src/clone.c +36 -14
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +103 -48
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +36 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +24 -90
- data/vendor/libgit2/src/config.c +203 -176
- data/vendor/libgit2/src/config.h +8 -20
- data/vendor/libgit2/src/config_backend.h +96 -0
- data/vendor/libgit2/src/config_cache.c +41 -35
- data/vendor/libgit2/src/config_entries.c +229 -0
- data/vendor/libgit2/src/config_entries.h +24 -0
- data/vendor/libgit2/src/config_file.c +422 -680
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +96 -68
- data/vendor/libgit2/src/config_parse.h +15 -14
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -196
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +52 -67
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +44 -46
- data/vendor/libgit2/src/diff_file.c +16 -14
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +158 -103
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +34 -22
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +18 -16
- data/vendor/libgit2/src/diff_xdiff.c +3 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +9 -3
- data/vendor/libgit2/src/fetch.c +8 -3
- data/vendor/libgit2/src/fetchhead.c +12 -12
- data/vendor/libgit2/src/filebuf.c +28 -32
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +47 -33
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +35 -55
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
- data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
- data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
- data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
- data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
- data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
- data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
- data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -21
- data/vendor/libgit2/src/hashsig.c +5 -5
- data/vendor/libgit2/src/idxmap.c +107 -61
- data/vendor/libgit2/src/idxmap.h +153 -31
- data/vendor/libgit2/src/ignore.c +38 -42
- data/vendor/libgit2/src/index.c +264 -199
- data/vendor/libgit2/src/index.h +7 -1
- data/vendor/libgit2/src/indexer.c +338 -167
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +134 -62
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/mailmap.c +8 -8
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +137 -93
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +24 -29
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +184 -0
- data/vendor/libgit2/src/net.h +36 -0
- data/vendor/libgit2/src/netops.c +55 -156
- data/vendor/libgit2/src/netops.h +3 -23
- data/vendor/libgit2/src/notes.c +14 -9
- data/vendor/libgit2/src/object.c +120 -69
- data/vendor/libgit2/src/object.h +22 -9
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +111 -88
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +58 -47
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +17 -13
- data/vendor/libgit2/src/offmap.c +53 -35
- data/vendor/libgit2/src/offmap.h +108 -21
- data/vendor/libgit2/src/oid.c +12 -7
- data/vendor/libgit2/src/oidmap.c +49 -47
- data/vendor/libgit2/src/oidmap.h +101 -24
- data/vendor/libgit2/src/pack-objects.c +87 -86
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +94 -96
- data/vendor/libgit2/src/pack.h +16 -18
- data/vendor/libgit2/src/parse.c +17 -4
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch_generate.c +18 -18
- data/vendor/libgit2/src/patch_parse.c +147 -79
- data/vendor/libgit2/src/path.c +207 -62
- data/vendor/libgit2/src/path.h +14 -0
- data/vendor/libgit2/src/pathspec.c +18 -18
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +8 -3
- data/vendor/libgit2/src/push.c +35 -29
- data/vendor/libgit2/src/push.h +2 -1
- data/vendor/libgit2/src/reader.c +265 -0
- data/vendor/libgit2/src/reader.h +107 -0
- data/vendor/libgit2/src/rebase.c +97 -38
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +318 -222
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +122 -89
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +27 -33
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +229 -178
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +227 -172
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +7 -7
- data/vendor/libgit2/src/revert.c +11 -6
- data/vendor/libgit2/src/revparse.c +46 -46
- data/vendor/libgit2/src/revwalk.c +89 -54
- data/vendor/libgit2/src/revwalk.h +20 -0
- data/vendor/libgit2/src/settings.c +22 -9
- data/vendor/libgit2/src/signature.c +15 -13
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +56 -76
- data/vendor/libgit2/src/status.c +27 -21
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +100 -80
- data/vendor/libgit2/src/streams/mbedtls.h +5 -2
- data/vendor/libgit2/src/streams/openssl.c +93 -81
- data/vendor/libgit2/src/streams/openssl.h +5 -2
- data/vendor/libgit2/src/streams/registry.c +118 -0
- data/vendor/libgit2/src/streams/registry.h +19 -0
- data/vendor/libgit2/src/streams/socket.c +55 -30
- data/vendor/libgit2/src/streams/stransport.c +57 -32
- data/vendor/libgit2/src/streams/stransport.h +5 -0
- data/vendor/libgit2/src/streams/tls.c +48 -20
- data/vendor/libgit2/src/streams/tls.h +12 -4
- data/vendor/libgit2/src/strmap.c +47 -74
- data/vendor/libgit2/src/strmap.h +108 -33
- data/vendor/libgit2/src/submodule.c +190 -169
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +25 -15
- data/vendor/libgit2/src/tag.c +39 -26
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +46 -32
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +14 -10
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
- data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/transports/git.c +25 -30
- data/vendor/libgit2/src/transports/http.c +871 -335
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +28 -28
- data/vendor/libgit2/src/transports/smart.c +64 -46
- data/vendor/libgit2/src/transports/smart.h +5 -6
- data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
- data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
- data/vendor/libgit2/src/transports/ssh.c +76 -65
- data/vendor/libgit2/src/transports/winhttp.c +328 -319
- data/vendor/libgit2/src/tree-cache.c +21 -14
- data/vendor/libgit2/src/tree.c +119 -112
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +1 -11
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +154 -93
- data/vendor/libgit2/src/util.h +19 -23
- data/vendor/libgit2/src/vector.c +15 -10
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +1 -1
- data/vendor/libgit2/src/win32/map.c +9 -11
- data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
- data/vendor/libgit2/src/win32/path_w32.c +113 -9
- data/vendor/libgit2/src/win32/path_w32.h +18 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +69 -44
- data/vendor/libgit2/src/win32/precompiled.h +0 -2
- data/vendor/libgit2/src/win32/thread.c +5 -10
- data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
- data/vendor/libgit2/src/win32/w32_stack.c +6 -11
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +27 -64
- data/vendor/libgit2/src/win32/w32_util.h +5 -49
- data/vendor/libgit2/src/worktree.c +44 -30
- data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +115 -38
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/config.h +0 -7
- data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
- data/vendor/libgit2/deps/regex/regex.c +0 -92
- data/vendor/libgit2/deps/regex/regex.h +0 -582
- data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
- data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
- data/vendor/libgit2/deps/regex/regexec.c +0 -4369
- data/vendor/libgit2/include/git2/inttypes.h +0 -309
- data/vendor/libgit2/include/git2/sys/time.h +0 -31
- data/vendor/libgit2/libgit2.pc.in +0 -13
- data/vendor/libgit2/src/config_file.h +0 -73
- data/vendor/libgit2/src/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
- data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
- data/vendor/libgit2/src/streams/curl.c +0 -385
- data/vendor/libgit2/src/streams/curl.h +0 -17
- /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Edward Thomson. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of ntlmclient, distributed under the MIT license.
|
|
5
|
+
* For full terms and copyright information, and for third-party
|
|
6
|
+
* copyright information, see the included LICENSE.txt file.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef PRIVATE_NTLM_H__
|
|
10
|
+
#define PRIVATE_NTLM_H__
|
|
11
|
+
|
|
12
|
+
#include "ntlmclient.h"
|
|
13
|
+
#include "unicode.h"
|
|
14
|
+
#include "crypt.h"
|
|
15
|
+
#include "compat.h"
|
|
16
|
+
|
|
17
|
+
#define NTLM_LM_RESPONSE_LEN 24
|
|
18
|
+
#define NTLM_NTLM_RESPONSE_LEN 24
|
|
19
|
+
#define NTLM_NTLM_HASH_LEN 16
|
|
20
|
+
#define NTLM_NTLM2_HASH_LEN 16
|
|
21
|
+
|
|
22
|
+
#define NTLM_SIGNATURE { 'N', 'T', 'L', 'M', 'S', 'S', 'P', 0x00 }
|
|
23
|
+
|
|
24
|
+
#define NTLM_LM_PLAINTEXT { 0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25 }
|
|
25
|
+
|
|
26
|
+
typedef enum {
|
|
27
|
+
NTLM_STATE_NEGOTIATE = 0,
|
|
28
|
+
NTLM_STATE_CHALLENGE = 1,
|
|
29
|
+
NTLM_STATE_RESPONSE = 2,
|
|
30
|
+
NTLM_STATE_ERROR = 3,
|
|
31
|
+
NTLM_STATE_COMPLETE = 4,
|
|
32
|
+
} ntlm_state;
|
|
33
|
+
|
|
34
|
+
typedef struct {
|
|
35
|
+
unsigned char *buf;
|
|
36
|
+
size_t pos;
|
|
37
|
+
size_t len;
|
|
38
|
+
} ntlm_buf;
|
|
39
|
+
|
|
40
|
+
typedef struct {
|
|
41
|
+
uint8_t major;
|
|
42
|
+
uint8_t minor;
|
|
43
|
+
uint16_t build;
|
|
44
|
+
uint32_t reserved;
|
|
45
|
+
} ntlm_version;
|
|
46
|
+
|
|
47
|
+
typedef struct {
|
|
48
|
+
uint32_t flags;
|
|
49
|
+
uint64_t nonce;
|
|
50
|
+
ntlm_version target_version;
|
|
51
|
+
|
|
52
|
+
/* The unparsed target information from the server */
|
|
53
|
+
unsigned char *target_info;
|
|
54
|
+
size_t target_info_len;
|
|
55
|
+
|
|
56
|
+
/* The target information parsed into usable strings */
|
|
57
|
+
char *target;
|
|
58
|
+
char *target_server;
|
|
59
|
+
char *target_domain;
|
|
60
|
+
char *target_server_dns;
|
|
61
|
+
char *target_domain_dns;
|
|
62
|
+
} ntlm_challenge;
|
|
63
|
+
|
|
64
|
+
struct ntlm_client {
|
|
65
|
+
ntlm_client_flags flags;
|
|
66
|
+
|
|
67
|
+
ntlm_state state;
|
|
68
|
+
|
|
69
|
+
/* crypto contexts */
|
|
70
|
+
ntlm_hmac_ctx *hmac_ctx;
|
|
71
|
+
ntlm_unicode_ctx *unicode_ctx;
|
|
72
|
+
|
|
73
|
+
/* error message as set by the library */
|
|
74
|
+
const char *errmsg;
|
|
75
|
+
|
|
76
|
+
char *hostname;
|
|
77
|
+
char *hostdomain;
|
|
78
|
+
ntlm_version host_version;
|
|
79
|
+
|
|
80
|
+
char *target;
|
|
81
|
+
|
|
82
|
+
char *username;
|
|
83
|
+
char *username_upper;
|
|
84
|
+
char *userdomain;
|
|
85
|
+
char *password;
|
|
86
|
+
|
|
87
|
+
/* strings as converted to utf16 */
|
|
88
|
+
char *target_utf16;
|
|
89
|
+
char *username_utf16;
|
|
90
|
+
char *username_upper_utf16;
|
|
91
|
+
char *userdomain_utf16;
|
|
92
|
+
char *hostname_utf16;
|
|
93
|
+
char *password_utf16;
|
|
94
|
+
|
|
95
|
+
/* timestamp and nonce; only for debugging */
|
|
96
|
+
uint64_t nonce;
|
|
97
|
+
uint64_t timestamp;
|
|
98
|
+
|
|
99
|
+
size_t username_utf16_len;
|
|
100
|
+
size_t username_upper_utf16_len;
|
|
101
|
+
size_t userdomain_utf16_len;
|
|
102
|
+
size_t hostname_utf16_len;
|
|
103
|
+
size_t password_utf16_len;
|
|
104
|
+
size_t target_utf16_len;
|
|
105
|
+
|
|
106
|
+
unsigned char lm_response[NTLM_LM_RESPONSE_LEN];
|
|
107
|
+
size_t lm_response_len;
|
|
108
|
+
|
|
109
|
+
unsigned char ntlm_response[NTLM_NTLM_RESPONSE_LEN];
|
|
110
|
+
size_t ntlm_response_len;
|
|
111
|
+
|
|
112
|
+
unsigned char *ntlm2_response;
|
|
113
|
+
size_t ntlm2_response_len;
|
|
114
|
+
|
|
115
|
+
ntlm_buf negotiate;
|
|
116
|
+
ntlm_challenge challenge;
|
|
117
|
+
ntlm_buf response;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
typedef enum {
|
|
121
|
+
NTLM_ENABLE_HOSTVERSION = (1 << 31),
|
|
122
|
+
} ntlm_client_internal_flags;
|
|
123
|
+
|
|
124
|
+
typedef enum {
|
|
125
|
+
NTLM_TARGET_INFO_END = 0,
|
|
126
|
+
NTLM_TARGET_INFO_SERVER = 1,
|
|
127
|
+
NTLM_TARGET_INFO_DOMAIN = 2,
|
|
128
|
+
NTLM_TARGET_INFO_SERVER_DNS = 3,
|
|
129
|
+
NTLM_TARGET_INFO_DOMAIN_DNS = 4,
|
|
130
|
+
} ntlm_target_info_type_t;
|
|
131
|
+
|
|
132
|
+
typedef enum {
|
|
133
|
+
/* Unicode strings are supported in security buffers */
|
|
134
|
+
NTLM_NEGOTIATE_UNICODE = 0x00000001,
|
|
135
|
+
|
|
136
|
+
/* OEM (ANSI) strings are supported in security buffers */
|
|
137
|
+
NTLM_NEGOTIATE_OEM = 0x00000002,
|
|
138
|
+
|
|
139
|
+
/* Request the target realm from the server */
|
|
140
|
+
NTLM_NEGOTIATE_REQUEST_TARGET = 0x00000004,
|
|
141
|
+
|
|
142
|
+
/* NTLM authentication is supported */
|
|
143
|
+
NTLM_NEGOTIATE_NTLM = 0x00000200,
|
|
144
|
+
|
|
145
|
+
/* Negotiate domain name */
|
|
146
|
+
NTLM_NEGOTIATE_DOMAIN_SUPPLIED = 0x00001000,
|
|
147
|
+
|
|
148
|
+
/* Negotiate workstation (client) name */
|
|
149
|
+
NTLM_NEGOTIATE_WORKSTATION_SUPPLIED = 0x00002000,
|
|
150
|
+
|
|
151
|
+
/* Indicates that a local context is available */
|
|
152
|
+
NTLM_NEGOTIATE_LOCAL_CALL = 0x00004000,
|
|
153
|
+
|
|
154
|
+
/* Request a dummy signature */
|
|
155
|
+
NTLM_NEGOTIATE_ALWAYS_SIGN = 0x00008000,
|
|
156
|
+
|
|
157
|
+
/* Target (server) is a domain */
|
|
158
|
+
NTLM_NEGOTIATE_TYPE_DOMAIN = 0x00010000,
|
|
159
|
+
|
|
160
|
+
/* NTLM2 signing and sealing is supported */
|
|
161
|
+
NTLM_NEGOTIATE_NTLM2_SIGN_AND_SEAL = 0x00080000,
|
|
162
|
+
|
|
163
|
+
/* A target information block is included */
|
|
164
|
+
NTLM_NEGOTIATE_TARGET_INFO = 0x00800000,
|
|
165
|
+
|
|
166
|
+
/* Version information should be provided */
|
|
167
|
+
NTLM_NEGOTIATE_VERSION = 0x01000000,
|
|
168
|
+
} ntlm_negotiate_t;
|
|
169
|
+
|
|
170
|
+
extern int ntlm_client_set_nonce(ntlm_client *ntlm, uint64_t nonce);
|
|
171
|
+
extern int ntlm_client_set_timestamp(ntlm_client *ntlm, uint64_t timestamp);
|
|
172
|
+
extern void ntlm_client_set_errmsg(ntlm_client *ntlm, const char *errmsg);
|
|
173
|
+
|
|
174
|
+
#endif /* PRIVATE_NTLM_H__ */
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Edward Thomson. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of ntlmclient, distributed under the MIT license.
|
|
5
|
+
* For full terms and copyright information, and for third-party
|
|
6
|
+
* copyright information, see the included LICENSE.txt file.
|
|
7
|
+
*/
|
|
8
|
+
#ifndef INCLUDE_NTLMCLIENT_H__
|
|
9
|
+
#define INCLUDE_NTLMCLIENT_H__
|
|
10
|
+
|
|
11
|
+
#include <stdlib.h>
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
extern "C" {
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
#define NTLM_CLIENT_VERSION "0.0.1"
|
|
19
|
+
#define NTLM_CLIENT_VERSION_MAJOR 0
|
|
20
|
+
#define NTLM_CLIENT_VERSION_MINOR 0
|
|
21
|
+
#define NTLM_CLIENT_VERSION_TEENY 1
|
|
22
|
+
|
|
23
|
+
typedef struct ntlm_client ntlm_client;
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* Flags for initializing the `ntlm_client` context. A combination of
|
|
27
|
+
* these flags can be provided to `ntlm_client_init`.
|
|
28
|
+
*/
|
|
29
|
+
typedef enum {
|
|
30
|
+
/** Default settings for the `ntlm_client`. */
|
|
31
|
+
NTLM_CLIENT_DEFAULTS = 0,
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Disable Unicode negotiation. By default, strings are converted
|
|
35
|
+
* into UTF-16 when supplied to the remote host, but if this flag
|
|
36
|
+
* is specified, localizable strings (like username and password)
|
|
37
|
+
* will only be sent to the server as they were provided to the
|
|
38
|
+
* library. Since the NTLM protocol does not deliver the locale
|
|
39
|
+
* information, these will be interpreted by the remote host in
|
|
40
|
+
* whatever locale is configured, and likely be corrupted unless
|
|
41
|
+
* you limit yourself to ASCII.
|
|
42
|
+
*
|
|
43
|
+
* You are discouraged from setting this flag.
|
|
44
|
+
*/
|
|
45
|
+
NTLM_CLIENT_DISABLE_UNICODE = (1 << 0),
|
|
46
|
+
|
|
47
|
+
/*
|
|
48
|
+
* Enable LM ("Lan Manager") authentication support. By default,
|
|
49
|
+
* LM authentication is disabled, since most remote servers have
|
|
50
|
+
* disabled support for it, and because it is both trivially
|
|
51
|
+
* brute-forced _and_ subject to rainbow table lookups. If this
|
|
52
|
+
* flag is enabled, LM is still not used unless NTLM2 support is
|
|
53
|
+
* also disabled.
|
|
54
|
+
*
|
|
55
|
+
* You are discouraged from setting this flag.
|
|
56
|
+
*/
|
|
57
|
+
NTLM_CLIENT_ENABLE_LM = (1 << 1),
|
|
58
|
+
|
|
59
|
+
/*
|
|
60
|
+
* Enable NTLM ("Lan Manager") authentication support. By default,
|
|
61
|
+
* NTLM authentication is disabled, since most remote servers have
|
|
62
|
+
* disabled support for it, due to its weakness. If this flag is
|
|
63
|
+
* enabled, NTLM is still not used unless NTLM2 support is also
|
|
64
|
+
* disabled.
|
|
65
|
+
*
|
|
66
|
+
* You are discouraged from setting this flag.
|
|
67
|
+
*/
|
|
68
|
+
NTLM_CLIENT_ENABLE_NTLM = (1 << 2),
|
|
69
|
+
|
|
70
|
+
/*
|
|
71
|
+
* Disable NTLM2 authentication support. By default, _only_ NTLM2
|
|
72
|
+
* support is enabled, since most remote servers will only support
|
|
73
|
+
* it due to its (relative) lack of weakness. If this flag is
|
|
74
|
+
* set, either NTLM or LM (or both) must be explicitly enabled or
|
|
75
|
+
* there will be no mechanisms available to use.
|
|
76
|
+
*
|
|
77
|
+
* You are discouraged from setting this flag.
|
|
78
|
+
*/
|
|
79
|
+
NTLM_CLIENT_DISABLE_NTLM2 = (1 << 3),
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* Request the target's name. By default, you are expected to
|
|
83
|
+
* provide the name of the target you are authenticating to (eg,
|
|
84
|
+
* the remote hostname). If set, the remote host will provide
|
|
85
|
+
* its idea of its hostname in the challenge message. You may
|
|
86
|
+
* then set the authentication target based on it.
|
|
87
|
+
*/
|
|
88
|
+
NTLM_CLIENT_DISABLE_REQUEST_TARGET = (1 << 4),
|
|
89
|
+
} ntlm_client_flags;
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
/** Declare a public function exported for application use. */
|
|
93
|
+
#if __GNUC__ >= 4 && !defined(NTLM_STATIC)
|
|
94
|
+
# define NTLM_EXTERN(type) extern \
|
|
95
|
+
__attribute__((visibility("default"))) \
|
|
96
|
+
type
|
|
97
|
+
#elif defined(_MSC_VER) && !defined(NTLM_STATIC)
|
|
98
|
+
# define NTLM_EXTERN(type) __declspec(dllexport) type
|
|
99
|
+
#else
|
|
100
|
+
# define NTLM_EXTERN(type) extern type
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Initializes an `ntlm_client` context, which can begin sending
|
|
105
|
+
* and receiving NTLM authentication messages.
|
|
106
|
+
*
|
|
107
|
+
* @param flags the `ntlm_client_flag_t`s to use for negotiation.
|
|
108
|
+
* @return the `ntlm_client` context, or `NULL` if out-of-memory.
|
|
109
|
+
*/
|
|
110
|
+
NTLM_EXTERN(ntlm_client *) ntlm_client_init(ntlm_client_flags flags);
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Gets the error message for the most recent error that occurred. If
|
|
114
|
+
* a function returns an error, more details can be retrieved with this
|
|
115
|
+
* function. The string returned is a constant string; it should not
|
|
116
|
+
* be freed.
|
|
117
|
+
*
|
|
118
|
+
* @return a constant string containing the error message.
|
|
119
|
+
*/
|
|
120
|
+
NTLM_EXTERN(const char *) ntlm_client_errmsg(ntlm_client *ntlm);
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Sets the local hostname and domain. These strings should be in
|
|
124
|
+
* ASCII. They will be provided to the remote host during the
|
|
125
|
+
* negotiation phase.
|
|
126
|
+
*
|
|
127
|
+
* @param ntlm the `ntlm_client` context to configure
|
|
128
|
+
* @param hostname the hostname of the local machine
|
|
129
|
+
* @param domain the domain of the local machine
|
|
130
|
+
* @return 0 on success, non-zero on failure
|
|
131
|
+
*/
|
|
132
|
+
NTLM_EXTERN(int) ntlm_client_set_hostname(
|
|
133
|
+
ntlm_client *ntlm,
|
|
134
|
+
const char *hostname,
|
|
135
|
+
const char *domain);
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Sets the local operating system version. These numbers are expected
|
|
139
|
+
* to correspond to Windows operating system versions; for example
|
|
140
|
+
* major version 6, minor version 2, build 9200 would correspond to
|
|
141
|
+
* Windows 8 (aka "NT 6.2").
|
|
142
|
+
*
|
|
143
|
+
* It is not likely that you need to set the local version.
|
|
144
|
+
*
|
|
145
|
+
* @param ntlm the `ntlm_client` context to configure
|
|
146
|
+
* @param major the major version number of the local operating system
|
|
147
|
+
* @param minor the minor version number of the local operating system
|
|
148
|
+
* @param build the build number of the local operating system
|
|
149
|
+
* @return 0 on success, non-zero on failure
|
|
150
|
+
*/
|
|
151
|
+
NTLM_EXTERN(int) ntlm_client_set_version(
|
|
152
|
+
ntlm_client *ntlm,
|
|
153
|
+
uint8_t major,
|
|
154
|
+
uint8_t minor,
|
|
155
|
+
uint16_t build);
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Sets the username and password to authenticate with to the remote
|
|
159
|
+
* host. Username and password may be specified in UTF-8 but the
|
|
160
|
+
* domain should be in ASCII. These will not be sent to the remote host
|
|
161
|
+
* but will instead be used to compute the LM, NTLM or NTLM2 responses,
|
|
162
|
+
* which will be provided to the remote host during the response phase.
|
|
163
|
+
*
|
|
164
|
+
* @param ntlm the `ntlm_client` context to configure
|
|
165
|
+
* @param username the username to authenticate with
|
|
166
|
+
* @param domain the domain of the user authenticating
|
|
167
|
+
* @param password the password to authenticate with
|
|
168
|
+
* @return 0 on success, non-zero on failure
|
|
169
|
+
*/
|
|
170
|
+
NTLM_EXTERN(int) ntlm_client_set_credentials(
|
|
171
|
+
ntlm_client *ntlm,
|
|
172
|
+
const char *username,
|
|
173
|
+
const char *domain,
|
|
174
|
+
const char *password);
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Sets the authentication target, your idea of the remote host's
|
|
178
|
+
* name. The target should be provided as ASCII. It will be
|
|
179
|
+
* provided to the remote host during the response phase.
|
|
180
|
+
*
|
|
181
|
+
* @param ntlm the `ntlm_client` context to configure
|
|
182
|
+
* @param target the name of the authentication target
|
|
183
|
+
* @return 0 on success, non-zero on failure
|
|
184
|
+
*/
|
|
185
|
+
NTLM_EXTERN(int) ntlm_client_set_target(
|
|
186
|
+
ntlm_client *ntlm,
|
|
187
|
+
const char *target);
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Gets the remote host's nonce, as it was provided in the challenge
|
|
191
|
+
* message. This is an opaque 8 byte value that is used to compute
|
|
192
|
+
* the LM, NTLM and NTLM2 responses.
|
|
193
|
+
*
|
|
194
|
+
* @param ntlm the `ntlm_client` context to query
|
|
195
|
+
* @return the challenge from the remote host
|
|
196
|
+
*/
|
|
197
|
+
NTLM_EXTERN(uint64_t) ntlm_client_challenge_nonce(
|
|
198
|
+
ntlm_client *ntlm);
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Gets the remote hosts's target name, which can be used as the
|
|
202
|
+
* authentication target. This will be given as it was provided
|
|
203
|
+
* in the challenge message.
|
|
204
|
+
*
|
|
205
|
+
* @param ntlm the `ntlm_client` context to query
|
|
206
|
+
* @return the remote host's target name
|
|
207
|
+
*/
|
|
208
|
+
NTLM_EXTERN(const char *) ntlm_client_target(ntlm_client *ntlm);
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Gets the remote hosts's name, which is generally its short name.
|
|
212
|
+
* This will be given as it was provided in the challenge message.
|
|
213
|
+
*
|
|
214
|
+
* @param ntlm the `ntlm_client` context to query
|
|
215
|
+
* @return the remote host's server name
|
|
216
|
+
*/
|
|
217
|
+
NTLM_EXTERN(const char *) ntlm_client_target_server(ntlm_client *ntlm);
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Gets the remote hosts's domain, which is generally the short or
|
|
221
|
+
* NT-style domain name. This will be given as it was provided in
|
|
222
|
+
* the challenge message.
|
|
223
|
+
*
|
|
224
|
+
* @param ntlm the `ntlm_client` context to query
|
|
225
|
+
* @return the remote host's domain
|
|
226
|
+
*/
|
|
227
|
+
NTLM_EXTERN(const char *) ntlm_client_target_domain(ntlm_client *ntlm);
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Gets the remote hosts's DNS name, which is generally the long-style
|
|
231
|
+
* Active Directory or fully-qualified hostname. This will be given
|
|
232
|
+
* as it was provided in the challenge message.
|
|
233
|
+
*
|
|
234
|
+
* @param ntlm the `ntlm_client` context to query
|
|
235
|
+
* @return the remote host's DNS name
|
|
236
|
+
*/
|
|
237
|
+
NTLM_EXTERN(const char *) ntlm_client_target_server_dns(ntlm_client *ntlm);
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Gets the remote hosts's DNS domain, which is generally the long-style
|
|
241
|
+
* Active Directory or fully-qualified domain name. This will be given
|
|
242
|
+
* as it was provided in the challenge message.
|
|
243
|
+
*
|
|
244
|
+
* @param ntlm the `ntlm_client` context to query
|
|
245
|
+
* @return the remote host's DNS domain
|
|
246
|
+
*/
|
|
247
|
+
NTLM_EXTERN(const char *) ntlm_client_target_domain_dns(ntlm_client *ntlm);
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Computes a negotiation message (aka a "Type 1" message) to begin
|
|
251
|
+
* NTLM authentication with the server. The local hostname should be
|
|
252
|
+
* set before calling this function (if necessary). This message
|
|
253
|
+
* should be delivered to the server to indicate a willingness to begin
|
|
254
|
+
* NTLM authentication. This buffer should not be freed by the caller.
|
|
255
|
+
*
|
|
256
|
+
* @param out a pointer to the negotiation message
|
|
257
|
+
* @param out_len a pointer to the length of the negotiation message
|
|
258
|
+
* @param ntlm the `ntlm_client` context
|
|
259
|
+
* @return 0 on success, non-zero on failure
|
|
260
|
+
*/
|
|
261
|
+
NTLM_EXTERN(int) ntlm_client_negotiate(
|
|
262
|
+
const unsigned char **out,
|
|
263
|
+
size_t *out_len,
|
|
264
|
+
ntlm_client *ntlm);
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Parses a challenge message (aka a "Type 2" message) from the server.
|
|
268
|
+
* This must be called in order to calculate the response to the
|
|
269
|
+
* authentication.
|
|
270
|
+
*
|
|
271
|
+
* @param ntlm the `ntlm_client` context
|
|
272
|
+
* @param message the challenge message from the server
|
|
273
|
+
* @param message_len the length of the challenge message
|
|
274
|
+
* @return 0 on success, non-zero on failure
|
|
275
|
+
*/
|
|
276
|
+
NTLM_EXTERN(int) ntlm_client_set_challenge(
|
|
277
|
+
ntlm_client *ntlm,
|
|
278
|
+
const unsigned char *message,
|
|
279
|
+
size_t message_len);
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Computes a response message (aka a "Type 3" message) to complete
|
|
283
|
+
* NTLM authentication with the server. The credentials should be
|
|
284
|
+
* set before calling this function. This message should be delivered
|
|
285
|
+
* to the server to complete authentication. This buffer should not
|
|
286
|
+
* be freed by the caller.
|
|
287
|
+
*
|
|
288
|
+
* @param out a pointer to the response message
|
|
289
|
+
* @param out_len a pointer to the length of the response message
|
|
290
|
+
* @param ntlm the `ntlm_client` context
|
|
291
|
+
* @return 0 on success, non-zero on failure
|
|
292
|
+
*/
|
|
293
|
+
NTLM_EXTERN(int) ntlm_client_response(
|
|
294
|
+
const unsigned char **out,
|
|
295
|
+
size_t *out_len,
|
|
296
|
+
ntlm_client *ntlm);
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Resets an `ntlm_client` context completely, so that authentication
|
|
300
|
+
* may be retried. You must set _all_ parameters again, including the
|
|
301
|
+
* target, username, password, etc. Once these values are configured
|
|
302
|
+
* again, the negotiation can begin.
|
|
303
|
+
*
|
|
304
|
+
* @param ntlm the `ntlm_client` context to reset
|
|
305
|
+
*/
|
|
306
|
+
NTLM_EXTERN(void) ntlm_client_reset(ntlm_client *ntlm);
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Frees an `ntlm_client` context. This should be done to free memory
|
|
310
|
+
* belonging to the context. The context cannot be reused.
|
|
311
|
+
*
|
|
312
|
+
* @param ntlm the `ntlm_client` context to free
|
|
313
|
+
*/
|
|
314
|
+
NTLM_EXTERN(void) ntlm_client_free(ntlm_client *ntlm);
|
|
315
|
+
|
|
316
|
+
#ifdef __cplusplus
|
|
317
|
+
}
|
|
318
|
+
#endif
|
|
319
|
+
|
|
320
|
+
#endif /* INCLUDE_NTLMCLIENT_H__ */
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Edward Thomson. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of ntlmclient, distributed under the MIT license.
|
|
5
|
+
* For full terms and copyright information, and for third-party
|
|
6
|
+
* copyright information, see the included LICENSE.txt file.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef PRIVATE_UNICODE_H__
|
|
10
|
+
#define PRIVATE_UNICODE_H__
|
|
11
|
+
|
|
12
|
+
#include "compat.h"
|
|
13
|
+
|
|
14
|
+
#define NTLM_UNICODE_MAX_LEN 2048
|
|
15
|
+
|
|
16
|
+
typedef struct ntlm_unicode_ctx ntlm_unicode_ctx;
|
|
17
|
+
|
|
18
|
+
extern ntlm_unicode_ctx *ntlm_unicode_ctx_init(ntlm_client *ntlm);
|
|
19
|
+
|
|
20
|
+
bool ntlm_unicode_utf8_to_16(
|
|
21
|
+
char **converted,
|
|
22
|
+
size_t *converted_len,
|
|
23
|
+
ntlm_unicode_ctx *ctx,
|
|
24
|
+
const char *string,
|
|
25
|
+
size_t string_len);
|
|
26
|
+
|
|
27
|
+
bool ntlm_unicode_utf16_to_8(
|
|
28
|
+
char **converted,
|
|
29
|
+
size_t *converted_len,
|
|
30
|
+
ntlm_unicode_ctx *ctx,
|
|
31
|
+
const char *string,
|
|
32
|
+
size_t string_len);
|
|
33
|
+
|
|
34
|
+
extern void ntlm_unicode_ctx_free(ntlm_unicode_ctx *ctx);
|
|
35
|
+
|
|
36
|
+
#endif /* PRIVATE_UNICODE_H__ */
|