rugged 0.28.4 → 0.28.4.1
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 +0 -1
- data/vendor/libgit2/CMakeLists.txt +16 -36
- data/vendor/libgit2/COPYING +0 -28
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +1 -5
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +0 -6
- data/vendor/libgit2/deps/http-parser/http_parser.c +6 -11
- data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
- data/vendor/libgit2/deps/regex/COPYING +502 -0
- data/vendor/libgit2/deps/regex/config.h +7 -0
- data/vendor/libgit2/deps/regex/regcomp.c +3857 -0
- data/vendor/libgit2/deps/regex/regex.c +92 -0
- data/vendor/libgit2/deps/regex/regex.h +582 -0
- data/vendor/libgit2/deps/regex/regex_internal.c +1744 -0
- data/vendor/libgit2/deps/regex/regex_internal.h +819 -0
- data/vendor/libgit2/deps/regex/regexec.c +4369 -0
- data/vendor/libgit2/deps/zlib/adler32.c +7 -0
- data/vendor/libgit2/deps/zlib/crc32.c +7 -0
- data/vendor/libgit2/include/git2.h +0 -2
- data/vendor/libgit2/include/git2/apply.h +2 -22
- data/vendor/libgit2/include/git2/attr.h +12 -19
- data/vendor/libgit2/include/git2/blame.h +2 -2
- data/vendor/libgit2/include/git2/blob.h +12 -44
- data/vendor/libgit2/include/git2/buffer.h +14 -20
- data/vendor/libgit2/include/git2/checkout.h +14 -46
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +2 -2
- data/vendor/libgit2/include/git2/commit.h +1 -23
- data/vendor/libgit2/include/git2/common.h +5 -7
- data/vendor/libgit2/include/git2/config.h +12 -12
- data/vendor/libgit2/include/git2/deprecated.h +3 -243
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +14 -16
- data/vendor/libgit2/include/git2/filter.h +0 -8
- data/vendor/libgit2/include/git2/index.h +1 -2
- data/vendor/libgit2/include/git2/indexer.h +4 -48
- data/vendor/libgit2/include/git2/inttypes.h +309 -0
- data/vendor/libgit2/include/git2/merge.h +10 -6
- data/vendor/libgit2/include/git2/net.h +5 -0
- data/vendor/libgit2/include/git2/object.h +14 -2
- data/vendor/libgit2/include/git2/odb.h +2 -3
- data/vendor/libgit2/include/git2/odb_backend.h +4 -5
- data/vendor/libgit2/include/git2/oid.h +1 -1
- data/vendor/libgit2/include/git2/pack.h +1 -12
- data/vendor/libgit2/include/git2/proxy.h +3 -5
- data/vendor/libgit2/include/git2/rebase.h +2 -46
- data/vendor/libgit2/include/git2/refs.h +0 -19
- data/vendor/libgit2/include/git2/remote.h +12 -35
- data/vendor/libgit2/include/git2/repository.h +2 -24
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +3 -3
- data/vendor/libgit2/include/git2/status.h +16 -25
- data/vendor/libgit2/include/git2/submodule.h +3 -20
- data/vendor/libgit2/include/git2/sys/alloc.h +9 -9
- data/vendor/libgit2/include/git2/sys/odb_backend.h +4 -48
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +21 -57
- data/vendor/libgit2/include/git2/sys/repository.h +1 -5
- data/vendor/libgit2/include/git2/sys/time.h +31 -0
- data/vendor/libgit2/include/git2/sys/transport.h +2 -2
- data/vendor/libgit2/include/git2/tag.h +2 -11
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +340 -11
- data/vendor/libgit2/include/git2/tree.h +1 -1
- data/vendor/libgit2/include/git2/types.h +89 -4
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/libgit2.pc.in +13 -0
- data/vendor/libgit2/src/CMakeLists.txt +222 -88
- data/vendor/libgit2/src/alloc.c +14 -2
- data/vendor/libgit2/src/apply.c +30 -60
- data/vendor/libgit2/src/attr.c +64 -70
- data/vendor/libgit2/src/attr_file.c +96 -189
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +46 -44
- data/vendor/libgit2/src/attrcache.h +1 -2
- data/vendor/libgit2/src/blame.c +5 -17
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +7 -21
- data/vendor/libgit2/src/blob.c +17 -81
- data/vendor/libgit2/src/blob.h +2 -2
- data/vendor/libgit2/src/branch.c +5 -29
- data/vendor/libgit2/src/buffer.c +7 -14
- data/vendor/libgit2/src/cache.c +33 -26
- data/vendor/libgit2/src/cache.h +1 -1
- data/vendor/libgit2/src/cc-compat.h +0 -5
- data/vendor/libgit2/src/checkout.c +16 -26
- data/vendor/libgit2/src/cherrypick.c +3 -9
- data/vendor/libgit2/src/clone.c +7 -29
- data/vendor/libgit2/src/clone.h +0 -4
- data/vendor/libgit2/src/commit.c +21 -69
- data/vendor/libgit2/src/commit.h +0 -6
- data/vendor/libgit2/src/commit_list.c +76 -28
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +75 -3
- data/vendor/libgit2/src/config.c +40 -31
- data/vendor/libgit2/src/config.h +6 -7
- data/vendor/libgit2/src/config_backend.h +0 -12
- data/vendor/libgit2/src/config_cache.c +39 -39
- data/vendor/libgit2/src/config_entries.c +99 -69
- data/vendor/libgit2/src/config_entries.h +0 -1
- data/vendor/libgit2/src/config_file.c +380 -337
- data/vendor/libgit2/src/config_mem.c +16 -12
- data/vendor/libgit2/src/config_parse.c +29 -49
- data/vendor/libgit2/src/config_parse.h +12 -13
- data/vendor/libgit2/src/crlf.c +14 -14
- data/vendor/libgit2/src/describe.c +20 -21
- data/vendor/libgit2/src/diff.c +58 -43
- data/vendor/libgit2/src/diff.h +1 -2
- data/vendor/libgit2/src/diff_driver.c +38 -37
- data/vendor/libgit2/src/diff_file.c +7 -9
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +85 -135
- data/vendor/libgit2/src/diff_generate.h +2 -2
- data/vendor/libgit2/src/diff_parse.c +1 -1
- data/vendor/libgit2/src/diff_print.c +13 -25
- data/vendor/libgit2/src/diff_stats.c +1 -1
- data/vendor/libgit2/src/diff_tform.c +4 -4
- data/vendor/libgit2/src/errors.c +22 -12
- data/vendor/libgit2/src/features.h.in +2 -9
- data/vendor/libgit2/src/fetch.c +2 -7
- data/vendor/libgit2/src/fetchhead.c +1 -1
- data/vendor/libgit2/src/filebuf.c +10 -6
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/{futils.c → fileops.c} +17 -21
- data/vendor/libgit2/src/{futils.h → fileops.h} +5 -5
- data/vendor/libgit2/src/filter.c +8 -16
- data/vendor/libgit2/src/fnmatch.c +248 -0
- data/vendor/libgit2/src/fnmatch.h +48 -0
- data/vendor/libgit2/src/global.c +40 -12
- data/vendor/libgit2/src/global.h +2 -0
- data/vendor/libgit2/src/hash.c +0 -61
- data/vendor/libgit2/src/hash.h +21 -19
- data/vendor/libgit2/src/hash/{sha1/collisiondetect.c → hash_collisiondetect.h} +17 -14
- data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +19 -15
- data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
- data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +14 -4
- data/vendor/libgit2/src/hash/{sha1/mbedtls.c → hash_mbedtls.c} +7 -15
- data/vendor/libgit2/src/hash/{sha1/mbedtls.h → hash_mbedtls.h} +11 -6
- data/vendor/libgit2/src/hash/{sha1/openssl.c → hash_openssl.h} +18 -14
- data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +24 -34
- data/vendor/libgit2/src/hash/{sha1/win32.h → hash_win32.h} +19 -6
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.c +3 -14
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.h +0 -0
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.c +0 -0
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.h +0 -0
- data/vendor/libgit2/src/hashsig.c +1 -1
- data/vendor/libgit2/src/idxmap.c +65 -91
- data/vendor/libgit2/src/idxmap.h +15 -151
- data/vendor/libgit2/src/ignore.c +38 -32
- data/vendor/libgit2/src/index.c +43 -66
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +70 -69
- data/vendor/libgit2/src/integer.h +4 -39
- data/vendor/libgit2/src/iterator.c +22 -27
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +44 -58
- data/vendor/libgit2/src/merge_driver.c +4 -4
- data/vendor/libgit2/src/merge_file.c +1 -1
- data/vendor/libgit2/src/mwindow.c +23 -18
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/netops.c +165 -55
- data/vendor/libgit2/src/netops.h +25 -3
- data/vendor/libgit2/src/notes.c +2 -2
- data/vendor/libgit2/src/object.c +2 -2
- data/vendor/libgit2/src/object.h +0 -2
- data/vendor/libgit2/src/odb.c +23 -41
- data/vendor/libgit2/src/odb.h +2 -3
- data/vendor/libgit2/src/odb_loose.c +10 -17
- data/vendor/libgit2/src/odb_mempack.c +23 -10
- data/vendor/libgit2/src/odb_pack.c +4 -4
- data/vendor/libgit2/src/offmap.c +55 -43
- data/vendor/libgit2/src/offmap.h +24 -102
- data/vendor/libgit2/src/oid.c +1 -6
- data/vendor/libgit2/src/oidmap.c +57 -39
- data/vendor/libgit2/src/oidmap.h +19 -99
- data/vendor/libgit2/src/pack-objects.c +32 -25
- data/vendor/libgit2/src/pack-objects.h +1 -1
- data/vendor/libgit2/src/pack.c +47 -45
- data/vendor/libgit2/src/pack.h +14 -12
- data/vendor/libgit2/src/parse.c +0 -10
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +1 -1
- data/vendor/libgit2/src/patch_generate.c +2 -2
- data/vendor/libgit2/src/patch_parse.c +31 -124
- data/vendor/libgit2/src/path.c +6 -43
- data/vendor/libgit2/src/path.h +0 -2
- data/vendor/libgit2/src/pathspec.c +13 -13
- data/vendor/libgit2/src/pool.c +22 -26
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +7 -7
- data/vendor/libgit2/src/posix.h +1 -12
- data/vendor/libgit2/src/proxy.c +2 -7
- data/vendor/libgit2/src/push.c +5 -10
- data/vendor/libgit2/src/reader.c +2 -2
- data/vendor/libgit2/src/rebase.c +7 -66
- data/vendor/libgit2/src/refdb.c +0 -12
- data/vendor/libgit2/src/refdb_fs.c +165 -214
- data/vendor/libgit2/src/reflog.c +13 -11
- data/vendor/libgit2/src/refs.c +18 -24
- data/vendor/libgit2/src/refspec.c +16 -9
- data/vendor/libgit2/src/remote.c +52 -50
- data/vendor/libgit2/src/remote.h +2 -2
- data/vendor/libgit2/src/repository.c +100 -115
- data/vendor/libgit2/src/repository.h +40 -49
- data/vendor/libgit2/src/revert.c +3 -8
- data/vendor/libgit2/src/revparse.c +19 -18
- data/vendor/libgit2/src/revwalk.c +30 -63
- data/vendor/libgit2/src/revwalk.h +0 -20
- data/vendor/libgit2/src/settings.c +0 -5
- data/vendor/libgit2/src/sortedcache.c +26 -12
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +65 -45
- data/vendor/libgit2/src/status.c +9 -15
- data/vendor/libgit2/src/{allocators/stdalloc.c → stdalloc.c} +4 -3
- data/vendor/libgit2/src/{allocators/stdalloc.h → stdalloc.h} +4 -4
- data/vendor/libgit2/src/streams/openssl.c +0 -20
- data/vendor/libgit2/src/streams/socket.c +2 -2
- data/vendor/libgit2/src/strmap.c +84 -37
- data/vendor/libgit2/src/strmap.h +33 -105
- data/vendor/libgit2/src/submodule.c +70 -102
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +1 -11
- data/vendor/libgit2/src/tag.c +2 -10
- data/vendor/libgit2/src/trace.c +1 -1
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +32 -46
- data/vendor/libgit2/src/transaction.c +9 -10
- data/vendor/libgit2/src/transports/auth.c +9 -10
- data/vendor/libgit2/src/transports/auth.h +4 -11
- data/vendor/libgit2/src/transports/auth_negotiate.c +9 -23
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/cred.c +6 -6
- data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
- data/vendor/libgit2/src/transports/git.c +16 -11
- data/vendor/libgit2/src/transports/http.c +276 -419
- data/vendor/libgit2/src/transports/http.h +1 -1
- data/vendor/libgit2/src/transports/local.c +9 -9
- data/vendor/libgit2/src/transports/smart.c +17 -17
- data/vendor/libgit2/src/transports/smart.h +2 -2
- data/vendor/libgit2/src/transports/smart_protocol.c +60 -36
- data/vendor/libgit2/src/transports/ssh.c +36 -46
- data/vendor/libgit2/src/transports/winhttp.c +207 -231
- data/vendor/libgit2/src/tree-cache.c +7 -14
- data/vendor/libgit2/src/tree.c +24 -10
- data/vendor/libgit2/src/unix/map.c +1 -1
- data/vendor/libgit2/src/unix/posix.h +11 -1
- data/vendor/libgit2/src/userdiff.h +1 -3
- data/vendor/libgit2/src/util.c +53 -51
- data/vendor/libgit2/src/util.h +21 -16
- data/vendor/libgit2/src/win32/map.c +5 -3
- data/vendor/libgit2/src/win32/path_w32.c +2 -12
- data/vendor/libgit2/src/win32/path_w32.h +29 -0
- data/vendor/libgit2/src/win32/posix.h +4 -1
- data/vendor/libgit2/src/win32/posix_w32.c +5 -40
- data/vendor/libgit2/src/win32/precompiled.h +2 -0
- data/vendor/libgit2/src/win32/thread.c +10 -5
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -7
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +93 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +2 -0
- data/vendor/libgit2/src/win32/w32_stack.c +9 -4
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +0 -31
- data/vendor/libgit2/src/win32/w32_util.h +32 -6
- data/vendor/libgit2/src/worktree.c +22 -36
- data/vendor/libgit2/src/xdiff/xdiffi.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +0 -12
- data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
- metadata +34 -98
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +0 -28
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +0 -38
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +0 -37
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +0 -110
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +0 -53
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +0 -124
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +0 -66
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +0 -21
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -33
- data/vendor/libgit2/deps/ntlmclient/crypt.h +0 -64
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +0 -120
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +0 -18
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -145
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +0 -18
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +0 -130
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +0 -21
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +0 -1420
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +0 -174
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +0 -320
- data/vendor/libgit2/deps/ntlmclient/unicode.h +0 -36
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +0 -445
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +0 -201
- data/vendor/libgit2/deps/ntlmclient/utf8.h +0 -1257
- data/vendor/libgit2/deps/ntlmclient/util.c +0 -21
- data/vendor/libgit2/deps/ntlmclient/util.h +0 -14
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
- data/vendor/libgit2/deps/pcre/COPYING +0 -5
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
- data/vendor/libgit2/deps/pcre/config.h.in +0 -57
- data/vendor/libgit2/deps/pcre/pcre.h +0 -641
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +0 -198
- data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9800
- data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +0 -3676
- data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
- data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
- data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
- data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
- data/vendor/libgit2/deps/pcre/pcre_newline.c +0 -210
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +0 -94
- data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +0 -92
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
- data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
- data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
- data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
- data/vendor/libgit2/deps/pcre/pcreposix.c +0 -421
- data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
- data/vendor/libgit2/deps/pcre/ucp.h +0 -224
- data/vendor/libgit2/include/git2/cert.h +0 -135
- data/vendor/libgit2/include/git2/cred.h +0 -308
- data/vendor/libgit2/include/git2/sys/cred.h +0 -90
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/config_snapshot.c +0 -206
- data/vendor/libgit2/src/errors.h +0 -81
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +0 -19
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +0 -19
- data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
- data/vendor/libgit2/src/net.c +0 -184
- data/vendor/libgit2/src/net.h +0 -36
- data/vendor/libgit2/src/regexp.c +0 -221
- data/vendor/libgit2/src/regexp.h +0 -97
- data/vendor/libgit2/src/transports/auth_ntlm.c +0 -223
- data/vendor/libgit2/src/transports/auth_ntlm.h +0 -35
- data/vendor/libgit2/src/wildmatch.c +0 -320
- data/vendor/libgit2/src/wildmatch.h +0 -23
- data/vendor/libgit2/src/win32/w32_common.h +0 -39
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
FILE(GLOB SRC_NTLMCLIENT "ntlm.c" "unicode_builtin.c" "util.c")
|
|
2
|
-
|
|
3
|
-
ADD_DEFINITIONS(-DNTLM_STATIC=1)
|
|
4
|
-
|
|
5
|
-
DISABLE_WARNINGS(implicit-fallthrough)
|
|
6
|
-
|
|
7
|
-
IF (HTTPS_BACKEND STREQUAL "SecureTransport")
|
|
8
|
-
ADD_DEFINITIONS(-DCRYPT_COMMONCRYPTO)
|
|
9
|
-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_commoncrypto.c")
|
|
10
|
-
ELSEIF (HTTPS_BACKEND STREQUAL "OpenSSL")
|
|
11
|
-
ADD_DEFINITIONS(-DCRYPT_OPENSSL)
|
|
12
|
-
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
|
|
13
|
-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c")
|
|
14
|
-
ELSEIF (HTTPS_BACKEND STREQUAL "mbedTLS")
|
|
15
|
-
ADD_DEFINITIONS(-DCRYPT_MBEDTLS)
|
|
16
|
-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c")
|
|
17
|
-
ELSE ()
|
|
18
|
-
MESSAGE(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${HTTPS_BACKEND}) for NTLM crypto")
|
|
19
|
-
ENDIF()
|
|
20
|
-
|
|
21
|
-
ADD_LIBRARY(ntlmclient OBJECT ${SRC_NTLMCLIENT} ${SRC_NTLMCLIENT_CRYPTO})
|
|
@@ -1,33 +0,0 @@
|
|
|
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_COMPAT_H__
|
|
10
|
-
#define PRIVATE_COMPAT_H__
|
|
11
|
-
|
|
12
|
-
#if defined (_MSC_VER)
|
|
13
|
-
typedef unsigned char bool;
|
|
14
|
-
# ifndef true
|
|
15
|
-
# define true 1
|
|
16
|
-
# endif
|
|
17
|
-
# ifndef false
|
|
18
|
-
# define false 0
|
|
19
|
-
# endif
|
|
20
|
-
#else
|
|
21
|
-
# include <stdbool.h>
|
|
22
|
-
#endif
|
|
23
|
-
|
|
24
|
-
#ifdef __linux__
|
|
25
|
-
# include <endian.h>
|
|
26
|
-
# define htonll htobe64
|
|
27
|
-
#endif
|
|
28
|
-
|
|
29
|
-
#ifndef MIN
|
|
30
|
-
# define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
|
31
|
-
#endif
|
|
32
|
-
|
|
33
|
-
#endif /* PRIVATE_COMPAT_H__ */
|
|
@@ -1,64 +0,0 @@
|
|
|
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_CRYPT_COMMON_H__
|
|
10
|
-
#define PRIVATE_CRYPT_COMMON_H__
|
|
11
|
-
|
|
12
|
-
#if defined(CRYPT_OPENSSL)
|
|
13
|
-
# include "crypt_openssl.h"
|
|
14
|
-
#elif defined(CRYPT_MBEDTLS)
|
|
15
|
-
# include "crypt_mbedtls.h"
|
|
16
|
-
#elif defined(CRYPT_COMMONCRYPTO)
|
|
17
|
-
# include "crypt_commoncrypto.h"
|
|
18
|
-
#else
|
|
19
|
-
# error "no crypto support"
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
|
-
#define CRYPT_DES_BLOCKSIZE 8
|
|
23
|
-
#define CRYPT_MD4_DIGESTSIZE 16
|
|
24
|
-
#define CRYPT_MD5_DIGESTSIZE 16
|
|
25
|
-
|
|
26
|
-
typedef unsigned char ntlm_des_block[CRYPT_DES_BLOCKSIZE];
|
|
27
|
-
|
|
28
|
-
extern bool ntlm_random_bytes(
|
|
29
|
-
ntlm_client *ntlm,
|
|
30
|
-
unsigned char *out,
|
|
31
|
-
size_t len);
|
|
32
|
-
|
|
33
|
-
extern bool ntlm_des_encrypt(
|
|
34
|
-
ntlm_des_block *out,
|
|
35
|
-
ntlm_des_block *plaintext,
|
|
36
|
-
ntlm_des_block *key);
|
|
37
|
-
|
|
38
|
-
extern bool ntlm_md4_digest(
|
|
39
|
-
unsigned char out[CRYPT_MD4_DIGESTSIZE],
|
|
40
|
-
const unsigned char *in,
|
|
41
|
-
size_t in_len);
|
|
42
|
-
|
|
43
|
-
extern ntlm_hmac_ctx *ntlm_hmac_ctx_init(void);
|
|
44
|
-
|
|
45
|
-
extern bool ntlm_hmac_ctx_reset(ntlm_hmac_ctx *ctx);
|
|
46
|
-
|
|
47
|
-
extern bool ntlm_hmac_md5_init(
|
|
48
|
-
ntlm_hmac_ctx *ctx,
|
|
49
|
-
const unsigned char *key,
|
|
50
|
-
size_t key_len);
|
|
51
|
-
|
|
52
|
-
extern bool ntlm_hmac_md5_update(
|
|
53
|
-
ntlm_hmac_ctx *ctx,
|
|
54
|
-
const unsigned char *data,
|
|
55
|
-
size_t data_len);
|
|
56
|
-
|
|
57
|
-
extern bool ntlm_hmac_md5_final(
|
|
58
|
-
unsigned char *out,
|
|
59
|
-
size_t *out_len,
|
|
60
|
-
ntlm_hmac_ctx *ctx);
|
|
61
|
-
|
|
62
|
-
extern void ntlm_hmac_ctx_free(ntlm_hmac_ctx *ctx);
|
|
63
|
-
|
|
64
|
-
#endif /* PRIVATE_CRYPT_COMMON_H__ */
|
|
@@ -1,120 +0,0 @@
|
|
|
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
|
-
#include <stdlib.h>
|
|
10
|
-
#include <stdint.h>
|
|
11
|
-
#include <string.h>
|
|
12
|
-
#include <fcntl.h>
|
|
13
|
-
#include <unistd.h>
|
|
14
|
-
#include <errno.h>
|
|
15
|
-
|
|
16
|
-
#include <CommonCrypto/CommonCrypto.h>
|
|
17
|
-
|
|
18
|
-
#include "ntlm.h"
|
|
19
|
-
#include "crypt.h"
|
|
20
|
-
|
|
21
|
-
bool ntlm_random_bytes(
|
|
22
|
-
ntlm_client *ntlm,
|
|
23
|
-
unsigned char *out,
|
|
24
|
-
size_t len)
|
|
25
|
-
{
|
|
26
|
-
int fd, ret;
|
|
27
|
-
size_t total = 0;
|
|
28
|
-
|
|
29
|
-
if ((fd = open("/dev/urandom", O_RDONLY)) < 0) {
|
|
30
|
-
ntlm_client_set_errmsg(ntlm, strerror(errno));
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
while (total < len) {
|
|
35
|
-
if ((ret = read(fd, out, (len - total))) < 0) {
|
|
36
|
-
ntlm_client_set_errmsg(ntlm, strerror(errno));
|
|
37
|
-
return false;
|
|
38
|
-
} else if (ret == 0) {
|
|
39
|
-
ntlm_client_set_errmsg(ntlm, "unexpected eof on random device");
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
total += ret;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
close(fd);
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
bool ntlm_des_encrypt(
|
|
51
|
-
ntlm_des_block *out,
|
|
52
|
-
ntlm_des_block *plaintext,
|
|
53
|
-
ntlm_des_block *key)
|
|
54
|
-
{
|
|
55
|
-
size_t written;
|
|
56
|
-
|
|
57
|
-
CCCryptorStatus result = CCCrypt(kCCEncrypt,
|
|
58
|
-
kCCAlgorithmDES, kCCOptionECBMode,
|
|
59
|
-
key, sizeof(ntlm_des_block), NULL,
|
|
60
|
-
plaintext, sizeof(ntlm_des_block),
|
|
61
|
-
out, sizeof(ntlm_des_block), &written);
|
|
62
|
-
|
|
63
|
-
return (result == kCCSuccess) ? true : false;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
bool ntlm_md4_digest(
|
|
67
|
-
unsigned char out[CRYPT_MD4_DIGESTSIZE],
|
|
68
|
-
const unsigned char *in,
|
|
69
|
-
size_t in_len)
|
|
70
|
-
{
|
|
71
|
-
return !!CC_MD4(in, in_len, out);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
ntlm_hmac_ctx *ntlm_hmac_ctx_init(void)
|
|
75
|
-
{
|
|
76
|
-
return calloc(1, sizeof(ntlm_hmac_ctx));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
bool ntlm_hmac_ctx_reset(ntlm_hmac_ctx *ctx)
|
|
80
|
-
{
|
|
81
|
-
memset(ctx, 0, sizeof(ntlm_hmac_ctx));
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
bool ntlm_hmac_md5_init(
|
|
86
|
-
ntlm_hmac_ctx *ctx,
|
|
87
|
-
const unsigned char *key,
|
|
88
|
-
size_t key_len)
|
|
89
|
-
{
|
|
90
|
-
CCHmacInit(&ctx->native, kCCHmacAlgMD5, key, key_len);
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
bool ntlm_hmac_md5_update(
|
|
95
|
-
ntlm_hmac_ctx *ctx,
|
|
96
|
-
const unsigned char *data,
|
|
97
|
-
size_t data_len)
|
|
98
|
-
{
|
|
99
|
-
CCHmacUpdate(&ctx->native, data, data_len);
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
bool ntlm_hmac_md5_final(
|
|
104
|
-
unsigned char *out,
|
|
105
|
-
size_t *out_len,
|
|
106
|
-
ntlm_hmac_ctx *ctx)
|
|
107
|
-
{
|
|
108
|
-
if (*out_len < CRYPT_MD5_DIGESTSIZE)
|
|
109
|
-
return false;
|
|
110
|
-
|
|
111
|
-
CCHmacFinal(&ctx->native, out);
|
|
112
|
-
|
|
113
|
-
*out_len = CRYPT_MD5_DIGESTSIZE;
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
void ntlm_hmac_ctx_free(ntlm_hmac_ctx *ctx)
|
|
118
|
-
{
|
|
119
|
-
free(ctx);
|
|
120
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
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_CRYPT_COMMONCRYPTO_H__
|
|
10
|
-
#define PRIVATE_CRYPT_COMMONCRYPTO_H__
|
|
11
|
-
|
|
12
|
-
#include <CommonCrypto/CommonCrypto.h>
|
|
13
|
-
|
|
14
|
-
typedef struct {
|
|
15
|
-
CCHmacContext native;
|
|
16
|
-
} ntlm_hmac_ctx;
|
|
17
|
-
|
|
18
|
-
#endif /* PRIVATE_CRYPT_COMMONCRYPTO_H__ */
|
|
@@ -1,145 +0,0 @@
|
|
|
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
|
-
#include <stdlib.h>
|
|
10
|
-
#include <string.h>
|
|
11
|
-
|
|
12
|
-
#include "mbedtls/ctr_drbg.h"
|
|
13
|
-
#include "mbedtls/des.h"
|
|
14
|
-
#include "mbedtls/entropy.h"
|
|
15
|
-
#include "mbedtls/md4.h"
|
|
16
|
-
|
|
17
|
-
#include "ntlm.h"
|
|
18
|
-
#include "crypt.h"
|
|
19
|
-
|
|
20
|
-
bool ntlm_random_bytes(
|
|
21
|
-
ntlm_client *ntlm,
|
|
22
|
-
unsigned char *out,
|
|
23
|
-
size_t len)
|
|
24
|
-
{
|
|
25
|
-
mbedtls_ctr_drbg_context ctr_drbg;
|
|
26
|
-
mbedtls_entropy_context entropy;
|
|
27
|
-
bool ret = true;
|
|
28
|
-
|
|
29
|
-
const unsigned char personalization[] = {
|
|
30
|
-
0xec, 0xb5, 0xd1, 0x0b, 0x8f, 0x15, 0x1f, 0xc2,
|
|
31
|
-
0xe4, 0x8e, 0xec, 0x36, 0xf7, 0x0a, 0x45, 0x9a,
|
|
32
|
-
0x1f, 0xe1, 0x35, 0x58, 0xb1, 0xcb, 0xfd, 0x8a,
|
|
33
|
-
0x57, 0x5c, 0x75, 0x7d, 0x2f, 0xc9, 0x70, 0xac
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
mbedtls_ctr_drbg_init(&ctr_drbg);
|
|
37
|
-
mbedtls_entropy_init(&entropy);
|
|
38
|
-
|
|
39
|
-
if (mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func,
|
|
40
|
-
&entropy, personalization, sizeof(personalization)) ||
|
|
41
|
-
mbedtls_ctr_drbg_random(&ctr_drbg, out, len)) {
|
|
42
|
-
ntlm_client_set_errmsg(ntlm, "random generation failed");
|
|
43
|
-
ret = false;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
mbedtls_entropy_free(&entropy);
|
|
47
|
-
mbedtls_ctr_drbg_free(&ctr_drbg);
|
|
48
|
-
|
|
49
|
-
return ret;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
bool ntlm_des_encrypt(
|
|
53
|
-
ntlm_des_block *out,
|
|
54
|
-
ntlm_des_block *plaintext,
|
|
55
|
-
ntlm_des_block *key)
|
|
56
|
-
{
|
|
57
|
-
mbedtls_des_context ctx;
|
|
58
|
-
bool success = false;
|
|
59
|
-
|
|
60
|
-
mbedtls_des_init(&ctx);
|
|
61
|
-
|
|
62
|
-
if (mbedtls_des_setkey_enc(&ctx, *key) ||
|
|
63
|
-
mbedtls_des_crypt_ecb(&ctx, *plaintext, *out))
|
|
64
|
-
goto done;
|
|
65
|
-
|
|
66
|
-
success = true;
|
|
67
|
-
|
|
68
|
-
done:
|
|
69
|
-
mbedtls_des_free(&ctx);
|
|
70
|
-
return success;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
bool ntlm_md4_digest(
|
|
74
|
-
unsigned char out[CRYPT_MD4_DIGESTSIZE],
|
|
75
|
-
const unsigned char *in,
|
|
76
|
-
size_t in_len)
|
|
77
|
-
{
|
|
78
|
-
mbedtls_md4_context ctx;
|
|
79
|
-
|
|
80
|
-
mbedtls_md4_init(&ctx);
|
|
81
|
-
mbedtls_md4_starts(&ctx);
|
|
82
|
-
mbedtls_md4_update(&ctx, in, in_len);
|
|
83
|
-
mbedtls_md4_finish(&ctx, out);
|
|
84
|
-
mbedtls_md4_free(&ctx);
|
|
85
|
-
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
ntlm_hmac_ctx *ntlm_hmac_ctx_init(void)
|
|
90
|
-
{
|
|
91
|
-
ntlm_hmac_ctx *ctx;
|
|
92
|
-
const mbedtls_md_info_t *info = mbedtls_md_info_from_type(MBEDTLS_MD_MD5);
|
|
93
|
-
|
|
94
|
-
if ((ctx = calloc(1, sizeof(ntlm_hmac_ctx))) == NULL)
|
|
95
|
-
return NULL;
|
|
96
|
-
|
|
97
|
-
mbedtls_md_init(&ctx->mbed);
|
|
98
|
-
|
|
99
|
-
if (mbedtls_md_setup(&ctx->mbed, info, 1) != 0) {
|
|
100
|
-
free(ctx);
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return ctx;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
bool ntlm_hmac_ctx_reset(ntlm_hmac_ctx *ctx)
|
|
108
|
-
{
|
|
109
|
-
return !mbedtls_md_hmac_reset(&ctx->mbed);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
bool ntlm_hmac_md5_init(
|
|
113
|
-
ntlm_hmac_ctx *ctx,
|
|
114
|
-
const unsigned char *key,
|
|
115
|
-
size_t key_len)
|
|
116
|
-
{
|
|
117
|
-
return !mbedtls_md_hmac_starts(&ctx->mbed, key, key_len);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
bool ntlm_hmac_md5_update(
|
|
121
|
-
ntlm_hmac_ctx *ctx,
|
|
122
|
-
const unsigned char *in,
|
|
123
|
-
size_t in_len)
|
|
124
|
-
{
|
|
125
|
-
return !mbedtls_md_hmac_update(&ctx->mbed, in, in_len);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
bool ntlm_hmac_md5_final(
|
|
129
|
-
unsigned char *out,
|
|
130
|
-
size_t *out_len,
|
|
131
|
-
ntlm_hmac_ctx *ctx)
|
|
132
|
-
{
|
|
133
|
-
if (*out_len < CRYPT_MD5_DIGESTSIZE)
|
|
134
|
-
return false;
|
|
135
|
-
|
|
136
|
-
return !mbedtls_md_hmac_finish(&ctx->mbed, out);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
void ntlm_hmac_ctx_free(ntlm_hmac_ctx *ctx)
|
|
140
|
-
{
|
|
141
|
-
if (ctx) {
|
|
142
|
-
mbedtls_md_free(&ctx->mbed);
|
|
143
|
-
free(ctx);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
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_CRYPT_MBEDTLS_H__
|
|
10
|
-
#define PRIVATE_CRYPT_MBEDTLS_H__
|
|
11
|
-
|
|
12
|
-
#include "mbedtls/md.h"
|
|
13
|
-
|
|
14
|
-
typedef struct {
|
|
15
|
-
mbedtls_md_context_t mbed;
|
|
16
|
-
} ntlm_hmac_ctx;
|
|
17
|
-
|
|
18
|
-
#endif /* PRIVATE_CRYPT_MBEDTLS_H__ */
|
|
@@ -1,130 +0,0 @@
|
|
|
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
|
-
#include <stdlib.h>
|
|
10
|
-
#include <string.h>
|
|
11
|
-
|
|
12
|
-
#include <openssl/rand.h>
|
|
13
|
-
#include <openssl/des.h>
|
|
14
|
-
#include <openssl/md4.h>
|
|
15
|
-
#include <openssl/hmac.h>
|
|
16
|
-
#include <openssl/err.h>
|
|
17
|
-
|
|
18
|
-
#include "ntlm.h"
|
|
19
|
-
#include "compat.h"
|
|
20
|
-
#include "util.h"
|
|
21
|
-
#include "crypt.h"
|
|
22
|
-
|
|
23
|
-
bool ntlm_random_bytes(
|
|
24
|
-
ntlm_client *ntlm,
|
|
25
|
-
unsigned char *out,
|
|
26
|
-
size_t len)
|
|
27
|
-
{
|
|
28
|
-
int rc = RAND_bytes(out, len);
|
|
29
|
-
|
|
30
|
-
if (rc != 1) {
|
|
31
|
-
ntlm_client_set_errmsg(ntlm, ERR_lib_error_string(ERR_get_error()));
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
bool ntlm_des_encrypt(
|
|
39
|
-
ntlm_des_block *out,
|
|
40
|
-
ntlm_des_block *plaintext,
|
|
41
|
-
ntlm_des_block *key)
|
|
42
|
-
{
|
|
43
|
-
DES_key_schedule keysched;
|
|
44
|
-
|
|
45
|
-
memset(out, 0, sizeof(ntlm_des_block));
|
|
46
|
-
|
|
47
|
-
DES_set_key(key, &keysched);
|
|
48
|
-
DES_ecb_encrypt(plaintext, out, &keysched, DES_ENCRYPT);
|
|
49
|
-
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
bool ntlm_md4_digest(
|
|
54
|
-
unsigned char out[CRYPT_MD4_DIGESTSIZE],
|
|
55
|
-
const unsigned char *in,
|
|
56
|
-
size_t in_len)
|
|
57
|
-
{
|
|
58
|
-
MD4(in, in_len, out);
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
63
|
-
static inline void HMAC_CTX_free(HMAC_CTX *ctx)
|
|
64
|
-
{
|
|
65
|
-
if (ctx)
|
|
66
|
-
HMAC_CTX_cleanup(ctx);
|
|
67
|
-
|
|
68
|
-
free(ctx);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
static inline int HMAC_CTX_reset(HMAC_CTX *ctx)
|
|
72
|
-
{
|
|
73
|
-
HMAC_CTX_cleanup(ctx);
|
|
74
|
-
memzero(ctx, sizeof(HMAC_CTX));
|
|
75
|
-
return 1;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
static inline HMAC_CTX *HMAC_CTX_new(void)
|
|
79
|
-
{
|
|
80
|
-
return calloc(1, sizeof(HMAC_CTX));
|
|
81
|
-
}
|
|
82
|
-
#endif
|
|
83
|
-
|
|
84
|
-
ntlm_hmac_ctx *ntlm_hmac_ctx_init(void)
|
|
85
|
-
{
|
|
86
|
-
return HMAC_CTX_new();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
bool ntlm_hmac_ctx_reset(ntlm_hmac_ctx *ctx)
|
|
90
|
-
{
|
|
91
|
-
return HMAC_CTX_reset(ctx);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
bool ntlm_hmac_md5_init(
|
|
95
|
-
ntlm_hmac_ctx *ctx,
|
|
96
|
-
const unsigned char *key,
|
|
97
|
-
size_t key_len)
|
|
98
|
-
{
|
|
99
|
-
return HMAC_Init_ex(ctx, key, key_len, EVP_md5(), NULL);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
bool ntlm_hmac_md5_update(
|
|
103
|
-
ntlm_hmac_ctx *ctx,
|
|
104
|
-
const unsigned char *in,
|
|
105
|
-
size_t in_len)
|
|
106
|
-
{
|
|
107
|
-
return HMAC_Update(ctx, in, in_len);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
bool ntlm_hmac_md5_final(
|
|
111
|
-
unsigned char *out,
|
|
112
|
-
size_t *out_len,
|
|
113
|
-
ntlm_hmac_ctx *ctx)
|
|
114
|
-
{
|
|
115
|
-
unsigned int len;
|
|
116
|
-
|
|
117
|
-
if (*out_len < CRYPT_MD5_DIGESTSIZE)
|
|
118
|
-
return false;
|
|
119
|
-
|
|
120
|
-
if (!HMAC_Final(ctx, out, &len))
|
|
121
|
-
return false;
|
|
122
|
-
|
|
123
|
-
*out_len = len;
|
|
124
|
-
return true;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
void ntlm_hmac_ctx_free(ntlm_hmac_ctx *ctx)
|
|
128
|
-
{
|
|
129
|
-
HMAC_CTX_free(ctx);
|
|
130
|
-
}
|