diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:41:41 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:41:41 +0000 |
commit | 10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch) | |
tree | bdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/libssh2-sys | |
parent | Releasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff) | |
download | rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip |
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/libssh2-sys')
-rw-r--r-- | vendor/libssh2-sys/.cargo-checksum.json | 1 | ||||
-rw-r--r-- | vendor/libssh2-sys/Cargo.toml | 58 | ||||
-rw-r--r-- | vendor/libssh2-sys/build.rs | 239 | ||||
-rw-r--r-- | vendor/libssh2-sys/lib.rs | 779 |
4 files changed, 1077 insertions, 0 deletions
diff --git a/vendor/libssh2-sys/.cargo-checksum.json b/vendor/libssh2-sys/.cargo-checksum.json new file mode 100644 index 000000000..0f6002178 --- /dev/null +++ b/vendor/libssh2-sys/.cargo-checksum.json @@ -0,0 +1 @@ +{"files":{"Cargo.toml":"357d6a237ce6e1697972eb8217a8a571b73714df4237b5d0400286d2419d6d3d","build.rs":"7126a16735562c4f556f0e1395d04c145a2f9aa12e72ad8d40b14438e1f680f9","lib.rs":"6d40cc0f84426ac8e20a9dc18824e2b2f29979e131f341a16e04e01d98e13b22","libssh2/CMakeLists.txt":"2a5381a02736a34354ae101c684cb9d0afe2d34bb198a7dc0a971cdc89e010fd","libssh2/COPYING":"669e0ae09d5c699ab3bbd64c86164876ebe50fe23bf382fe31165d8058f2f776","libssh2/Makefile.OpenSSL.inc":"1e9beccc9ace2a7a4632eafe712169e85159cb09a06a4f888874ea86e26822fb","libssh2/Makefile.WinCNG.inc":"9f4f58fbbe32c31843ccdc0c8b03a3119ec56dbff358df55378d995222d30af1","libssh2/Makefile.am":"73432ea6f0f4bb1411a7cdbfa801cdb7f959c8501f147a15918b2363e6ceaf1b","libssh2/Makefile.inc":"94c4567019490f374558730e884abdea44210572cf38e020554210fc1883b6e4","libssh2/Makefile.libgcrypt.inc":"2001cf824e953a34f1806d8f55a48e0158d9bb52f71ebad67c7295cd5566c1be","libssh2/Makefile.mbedTLS.inc":"563e4e1ad2ced2e7967f0f443d6831ab2c3de2b8b3cb59a26ae2612b1ddf4814","libssh2/Makefile.os400qc3.inc":"85711e8336291efc9effc98bf57373841ff135c381c1778c6685d8c464cba362","libssh2/Makefile.wolfSSL.inc":"dc1fd14757a93950d290d11209df55b74d3f382aca0462ecdd15800534c8bf62","libssh2/NEWS":"ebf75723b32b0e0e9f1f3c2057a979111d0d0cebe61f4fb4f9f3e25bc817b425","libssh2/NMakefile":"83a670e0f08cc8220b8403904e2d36257138fdc0cc1a2e87f19011d8e80af273","libssh2/README":"ac37b8e545db7af0d02bd61db98e26b6c0a3ccaea6f5b38dc39c2f9f8a83ed95","libssh2/README.md":"1b2883cf5c5143bea522147bb6e409722853e91728cb5e440a56fa5a126601f4","libssh2/RELEASE-NOTES":"2773260efc6730e8a87db96f629bf7ee3e6ed6044bf931c7f8bf85b66bf09cd8","libssh2/acinclude.m4":"9782413b5280d39ce85e01e2b78d34e5833eb6df98cdd948f2aa2ca4da6f635b","libssh2/appveyor.yml":"21b75c780730629c96e45ed0e8749fa457124b2bdf39dbb5776cf38cb30081bf","libssh2/buildconf":"06c34cc8419017d526d547010a681babe62bb773e170a71108b8c0b3a6e4a963","libssh2/ci/appveyor/docker-bridge.bat":"24121ac7d7c852358b4d6a7f319e1b593d294a97c027175f8085c741d7792887","libssh2/ci/appveyor/docker-bridge.ps1":"c96ed6844515850165b15790791f80a666f606a1931243fec3eb3a07f7531ead","libssh2/ci/checksrc.pl":"a011b06b2ad4620434c8b39ef9687792dbf75d1bdf6229e342b64899029dce9c","libssh2/ci/checksrc.sh":"917ce5d2c746dc44357a9c7f17e3deb3478bd369316fe6c415c6e849ea8e89a1","libssh2/ci/ossfuzz.sh":"88d4df6a84bdfa038448128cc7361dd7602b280609f0544f2fee19a392b3b79e","libssh2/cmake/CheckFunctionExistsMayNeedLibrary.cmake":"6dc655f31dfb2a060a4092eb712bcc79e50ade92ee433448b2d07613f1e366bb","libssh2/cmake/CheckNonblockingSocketSupport.cmake":"85030344b7870fd669b28315fa0516acaa6d8131c89b3862d154746ba78a99a9","libssh2/cmake/CopyRuntimeDependencies.cmake":"0c4f6be9bbf748ffe5dc6e30c53a939b77fcedc7e729c6532c131a93f51b3cbd","libssh2/cmake/FindLibgcrypt.cmake":"bf602c05734e157a3ea75adf45f13865df1ffa4a5b1e100ae4a2c4cdaef69fac","libssh2/cmake/FindmbedTLS.cmake":"667322ec87360659ee3191638fa53c53d4833a11ac336e236ad05b65b5412371","libssh2/cmake/SocketLibraries.cmake":"52036dab87b6b6dc163146332b5a6a8445f7edb5d1912e5f6171730287c75237","libssh2/cmake/Toolchain-Linux-32.cmake":"2b28fb9eb3ac08acfe836d1da6494e44f7c69fec642b322a35519ba54d2f427f","libssh2/cmake/max_warnings.cmake":"869f385becc54b61d0c34aa5251db3eea4dc09e954401c70b9c463f43f2adf04","libssh2/config.rpath":"848f65bd446889e1c85053f4c5e5a72ef43c7a6a2436871930346e763d5d0187","libssh2/configure.ac":"2f7609cd8064337c9155afab64ce8fe2b4887a1fa0d235ab82d5399713c165ea","libssh2/docs/AUTHORS":"7de3969bb2fcaa5c9dcaa9adc491275483bdd0a1b6a9a41dd2e8419b6f5b64fe","libssh2/docs/BINDINGS":"ccecb217a8c890011a2968443ab1fe15b4467cd577b005e6a8a7b6f88f414e19","libssh2/docs/CMakeLists.txt":"c31aa68662d8e0a672d8df03c2cfd014eefb87ed91d1efa13e360c6418c055e1","libssh2/docs/HACKING":"68506c8612cb8b0568b74f138819809308c801298c1baee35791f9f2748de73e","libssh2/docs/HACKING-CRYPTO":"09e02caa9399b8ce24b4d168093859dc33e667e1b372571c2c9a49316efe9f48","libssh2/docs/INSTALL_AUTOTOOLS":"a3a002c6d9ec82db08ed6f05d4b18dfcb01b4045bee6de7cd379cfdaa9c1f80b","libssh2/docs/INSTALL_CMAKE.md":"d7c8bc7b0177890bf46ef4e4a6b4e93597e20cd5c816803233b4ea4a58a819da","libssh2/docs/Makefile.am":"9ecfea9cc11e2dec415b29387642888554c4322b7f613f94b2c2b904105e45ec","libssh2/docs/SECURITY.md":"8beff71321922de4c423c05d3b1885cc76b17ae6fbbeb81bb67a9c5e2a4a16f0","libssh2/docs/TODO":"2d4ea14f8ff33f9cd6c3f6c37ea891b343f0976a6a22772c8880fb30655a5cf4","libssh2/docs/libssh2_agent_connect.3":"f85e163b49f4069701f628ec1b3a92969ff2fa12c1abc47902c820359e8e69de","libssh2/docs/libssh2_agent_disconnect.3":"5e3a4c9109ea3aba5581c86fa6a987c16ebf69b0c260400ffc244c4b2bc5eb8c","libssh2/docs/libssh2_agent_free.3":"05fb8dfb72c8446dabe6993512fd314da8fb8e0d07002d7e6f317a02291f3764","libssh2/docs/libssh2_agent_get_identity.3":"016fdf4551779fed92a40a5356c6248e224b7fe0fbbe399c9d87f138eb3afd94","libssh2/docs/libssh2_agent_get_identity_path.3":"5ac24cefb93edaa85672096f45f932577ac7c2754f0936514b719f35614b63fe","libssh2/docs/libssh2_agent_init.3":"1ca1f95c078bcbde25a347c631d562d62106e7984295f9d806635ccecc5a0819","libssh2/docs/libssh2_agent_list_identities.3":"5d40749c72792fc8945b9b5d4d3ed74e33f560d51e2edaf438c654267f526b64","libssh2/docs/libssh2_agent_set_identity_path.3":"94391a33a86580e2f899835c879532cb043b8c3fbc7bb5f9c74c8419f8d4c769","libssh2/docs/libssh2_agent_userauth.3":"8338680c51622c7a14b359d1f49f2a6f0187b0395cacef51fc3d4dedc54a9fdf","libssh2/docs/libssh2_banner_set.3":"0075fe56f8b282053688b28a2f329395694576514d88094573f53518e4bee0cb","libssh2/docs/libssh2_base64_decode.3":"57f45c6619cba42ea2c48629bc07f442db0c5392b73be6261334ca1eccf72cbb","libssh2/docs/libssh2_channel_close.3":"dc7d97b5e93ab4c9004d17a78b11619ae2d70251b33d9893fe28f6b036e4f162","libssh2/docs/libssh2_channel_direct_tcpip.3":"72c71ffcbb523607660e39bca574ba7cb299c646aa9f359120183f3473da960b","libssh2/docs/libssh2_channel_direct_tcpip_ex.3":"dcb070b28dbe8dbf81ae6430506d6150fbe5f3dfb47d3dce24dd969605ac93dc","libssh2/docs/libssh2_channel_eof.3":"b4df79c1f66b252efc431b1137dc5632fe94067160ca38fa7d969408335c3641","libssh2/docs/libssh2_channel_exec.3":"c5c0b68354e750d1bce485ac3cfc184307813a278ddd28a3c78d8a2c11139995","libssh2/docs/libssh2_channel_flush.3":"b8d6fde2984cfa262999483b4eeb81414d32aa26e6cc4a4a3208b8174e75883b","libssh2/docs/libssh2_channel_flush_ex.3":"3891c64b0876ae3c5892320db8feb07028e0549eb1462996650de06a4239b553","libssh2/docs/libssh2_channel_flush_stderr.3":"c4ec7c6b0d9bdd13d91200c2fff1402d45465abf0fcfdae542f54f0da681dad2","libssh2/docs/libssh2_channel_forward_accept.3":"1c9f01d5c1aea5f587bbd0ddd4429c56716fceab267491fddccfb2a21e4724da","libssh2/docs/libssh2_channel_forward_cancel.3":"ac5d5a1096ca8165a105bb582a51f0da9a7f221239d40db2c53bde03fe0320b6","libssh2/docs/libssh2_channel_forward_listen.3":"24fd430bb609c83789da5ff1806eaf76c43b814e489b18f31c56a4e1c24cab8c","libssh2/docs/libssh2_channel_forward_listen_ex.3":"4e4177be4ad1bb3f289cf4b54303d920084ccfef16cb766a23ee69bdaafce2ca","libssh2/docs/libssh2_channel_free.3":"78b844bf51c47ac6561d0a8f86973e4d497427503556abf7b40b5db7d7f50e16","libssh2/docs/libssh2_channel_get_exit_signal.3":"3ea0403705c15755c974110b5d88e485ae83e5f17736edf174be4638fea6af64","libssh2/docs/libssh2_channel_get_exit_status.3":"e215fb728c1bd23eb2229a42d7c773ff933b5a4634a58383335e1f5468aa8ad1","libssh2/docs/libssh2_channel_handle_extended_data.3":"88cdcaf3003a16a27ff4f4f00d27e2a691ee1a3837b2be38064d19b19089f6a2","libssh2/docs/libssh2_channel_handle_extended_data2.3":"d52ff78cab8d4da97213ee6a9a3612966f453291dcbb3fcbc011ea8a7903bd1c","libssh2/docs/libssh2_channel_ignore_extended_data.3":"2679ea6b50eea86ff7ea94a13d82ca2c2610e4a7df9aa8bcc608f4e7306199ec","libssh2/docs/libssh2_channel_open_ex.3":"6de1fad9b91881eb336ac15edd8ca8b64dcdabc38bb4f6c11c0f01222ecc9d55","libssh2/docs/libssh2_channel_open_session.3":"e2c37feafea8f51d31e17705cdd80b8b09cc6831922ec52cb31ea8dda89acf19","libssh2/docs/libssh2_channel_process_startup.3":"56e231d70548a251af76f9fdbafe511571ac7a9a4497dbabcb61047fc07288b9","libssh2/docs/libssh2_channel_read.3":"a39c04c4511a9d233301f6e02ee20fc3ef13f1e9100bf5500d40ad1c115c9b82","libssh2/docs/libssh2_channel_read_ex.3":"2dda528837d5faa1c8d324d4d432bf34bb826549686f2021b9c617462536e0bd","libssh2/docs/libssh2_channel_read_stderr.3":"2a75f93e0487ec838e33123af99081893a9d4e200013ff42d802510b74c82b76","libssh2/docs/libssh2_channel_receive_window_adjust.3":"16446ec1dca0eca1ed5b36251a00ded819fed26091925b101597e6667ae9d83e","libssh2/docs/libssh2_channel_receive_window_adjust2.3":"b783fef5ad29a4997dacc6ac2cab3dc345e8758239fad22a16bea51ac345a8e7","libssh2/docs/libssh2_channel_request_auth_agent.3":"e21bae4a627d1370d5027a3b1ee3a64f21b88e4446c24d5f5dfa055d025ef3d8","libssh2/docs/libssh2_channel_request_pty.3":"39e728567f1872d52a186ad21d09ce2748ba829a1a98291a27ab5337942a5f3e","libssh2/docs/libssh2_channel_request_pty_ex.3":"7a50d4b8481c1052a24d2452f3233dbfabe04d76560c2626af80896cbc82fba1","libssh2/docs/libssh2_channel_request_pty_size.3":"4d1d17da198bf87a4edc194b8bef88ff61e629c58e0ff07045fd688b52c9e6c7","libssh2/docs/libssh2_channel_request_pty_size_ex.3":"1339940fdfabab066e8daf6b0fed394ca341bb29011a0613bc8d8cdc08e0a6ba","libssh2/docs/libssh2_channel_send_eof.3":"9ee0b5c388d896927b9113c9e6edbde5454956ca82b4c71d048813df9fb1177b","libssh2/docs/libssh2_channel_set_blocking.3":"04e179fb2082f9b6974db5c69d018a762fe074bd6eeb9a9802faa72f84a7c379","libssh2/docs/libssh2_channel_setenv.3":"982ab3ed0b4ea70db85629e4e2124dc94810101897c1b340d9ac52336e461a3b","libssh2/docs/libssh2_channel_setenv_ex.3":"b5c8a424a95bd29d2883e7c17b1721d5ea36047dd43c75dd525fae4168e45ad7","libssh2/docs/libssh2_channel_shell.3":"75f3412280f5fd05b1228bf1a7eaf64f233a749bfdad1a1499ce22715a1c99fc","libssh2/docs/libssh2_channel_subsystem.3":"4d414a50b72e516fab906ba1578c54b0a2fac29dbd807a623368cde1ef79f082","libssh2/docs/libssh2_channel_wait_closed.3":"8875d773cb8bccc39af97595ceab567ab43ff67d7614837acb0be3b1a4567e8c","libssh2/docs/libssh2_channel_wait_eof.3":"b71648f24a89621f437899efac56d58d83853ad914d461ca1b7e44e10fb0d70a","libssh2/docs/libssh2_channel_window_read.3":"0b78bd3f0e94882422b4ece842b72855256e91ff35eae19e39cfac789d1cc413","libssh2/docs/libssh2_channel_window_read_ex.3":"b0d8546b659a3b6b077aae4aaaf32b4ae2daee8ee9bd0abf87482dcf33ec927c","libssh2/docs/libssh2_channel_window_write.3":"847c15a8ab5d93444d670db9993c7311276654c4e51e12b14aff16cd3b790060","libssh2/docs/libssh2_channel_window_write_ex.3":"bb8f93fbfd361d2e05c536adb03a9e424c77acb645940e3402000eee5531b4b1","libssh2/docs/libssh2_channel_write.3":"041f6555b50453e67436740b78d5dbb8f2802f1639930a9eb211e3442ee3bf72","libssh2/docs/libssh2_channel_write_ex.3":"4c2f539e35f24bb535a4c6f052d4b04d8b38a51eb8e699d3a1854ea68a40665c","libssh2/docs/libssh2_channel_write_stderr.3":"5ce5820b71f0c51932a02487e8fd8f2befc9617c0f912a02854bdb8a38859818","libssh2/docs/libssh2_channel_x11_req.3":"4ea562463feeecd87d9c1df1d7a0616f43481dc27015b283533a21a98b40a409","libssh2/docs/libssh2_channel_x11_req_ex.3":"c5e4c5dcb718e9041bfd58db8316ddc2af79c29ca3b08b5715c3d12ac36dcda5","libssh2/docs/libssh2_crypto_engine.3":"d737939d1b2c8e24dbe877e160856e8ba7397402e47b1ee3784ef2b12a07a3c1","libssh2/docs/libssh2_exit.3":"a05cf854da2fa03d6313004972f521185d532e09406bb48a6b57aea845290536","libssh2/docs/libssh2_free.3":"2a4565f118b67f4f8b432cfe2fde212fe20d31d6e792cca7aa6fd32312485f93","libssh2/docs/libssh2_hostkey_hash.3":"0e4097cf18a97f420adb50fac4e6edb38e7c4a5c828106e1f3b35a3693fb9798","libssh2/docs/libssh2_init.3":"32472cb673e262d13c95291980bb1668c4f95c24375ec6166e1fd7d936d5f38b","libssh2/docs/libssh2_keepalive_config.3":"95c4fe72dacdf45c1029331618cc8b9278b1b0857410eb15f07a0b88219ca626","libssh2/docs/libssh2_keepalive_send.3":"a01579f80246ec262e8907f5f7098e55e14b4484d34f61a64e1146c943a649c2","libssh2/docs/libssh2_knownhost_add.3":"66c47ffa83576cf1baacfb2d056f75b63db9b3686da03aa4c1ab21a56981b465","libssh2/docs/libssh2_knownhost_addc.3":"dd4d4fca12ca29cd8caff22434b5d7a3ed1c79dd6e4fc3301b72af5da5503d12","libssh2/docs/libssh2_knownhost_check.3":"82f385f42667587dc2a66818197b80077a126b7785d74aed2fbd430df0475bc5","libssh2/docs/libssh2_knownhost_checkp.3":"bb5b3dc52a31d9344435ef60556dc8cf8d0886012bcab8247e8052e5fe276492","libssh2/docs/libssh2_knownhost_del.3":"fed8a255c4ecb99a4c5053d7c1476fac5a90e3a4d7527eff077c7d4752c90850","libssh2/docs/libssh2_knownhost_free.3":"448218d31e82b1a5a005934b19d4eaed0adbe175a915b9926117f424b3bff88a","libssh2/docs/libssh2_knownhost_get.3":"262afcdaca98c99713aa141c026fde1f5beef47a85d7516aaf9040e03f9f4f32","libssh2/docs/libssh2_knownhost_init.3":"4a2722a3a7363e2e1f9f8f908b4426b338471f9300957355404f4138831f490c","libssh2/docs/libssh2_knownhost_readfile.3":"6b692a0d31a916fd1fb52207f2377fd60ee117e5054c12c0dee7a5c6535f3fe2","libssh2/docs/libssh2_knownhost_readline.3":"fc0f1fe2633caec466f7c253d7e11cea267af0a09c6d34c435365ad98e95eae7","libssh2/docs/libssh2_knownhost_writefile.3":"7c34c371197946d1fa80c7910afc4d8109e7fc34ae0956bfbda01707ac70998c","libssh2/docs/libssh2_knownhost_writeline.3":"7553a70f665701292a20ead7268d19d976937dbba55b52c9b2ac03414943c220","libssh2/docs/libssh2_poll.3":"aae393dc8c9cef2d320c7abedd931bb281a8d8648ca6bb030cf16b930e62bf69","libssh2/docs/libssh2_poll_channel_read.3":"ec3964560888d1013ddc7be9fc9f01d84e92ba7d1a24fe016924ab1555599137","libssh2/docs/libssh2_publickey_add.3":"26e621caa26306a05bae062a21a4b9aa09dc1eaf1293bf5dd6af44dcb03294ca","libssh2/docs/libssh2_publickey_add_ex.3":"10db36cdbc8858097e1e3ab0f4562ee2d42d20697c4d3f3258bba194a78de7fd","libssh2/docs/libssh2_publickey_init.3":"e4aff7856d6bf499729f99d76dd2e4c9f1d7637b5cfecf554445750b4f4fcc33","libssh2/docs/libssh2_publickey_list_fetch.3":"9b501a4ff297c6423989b4c4381489e0d7375fb0e66ae54bb615ce955b5cae15","libssh2/docs/libssh2_publickey_list_free.3":"1a6bceb8447afc317dc9697cab73d520d39f8d0a46f1a81ea9e705a3b3326c94","libssh2/docs/libssh2_publickey_remove.3":"26e52e5d18b3146bfa3625f0a49dfd3ec90c8c1d6be967629aae62b7a77f6014","libssh2/docs/libssh2_publickey_remove_ex.3":"ffb10685c97b1844a49f2d8c08a0c93863047ad87def960d7653b0c83e71287f","libssh2/docs/libssh2_publickey_shutdown.3":"a83657d6a23e682bac1765f46220ee3c1c23fd3e2901928476086f1deddb96f9","libssh2/docs/libssh2_scp_recv.3":"35236cc961482846d2d86119a5d16d9c83c1d65928ecd1fb11b6b8cdf9936bc8","libssh2/docs/libssh2_scp_recv2.3":"c3bfd52f72a29e5efe0ea730c9ea8f2af768ab12b477d693ba4c96652f8fb5ae","libssh2/docs/libssh2_scp_send.3":"dd4bd7766ceef8a269f0294299d4ca8e7e603f962c4c4bbd3a69ee366f032335","libssh2/docs/libssh2_scp_send64.3":"0170b59e57187bd1acf1a8ccabc2b39612a94cfb217484062340699ba2c9e65d","libssh2/docs/libssh2_scp_send_ex.3":"96ac168c621287c10d4e4254a660e509cd15a788f10c1257a758c21806fb1e3b","libssh2/docs/libssh2_session_abstract.3":"444df8a76d46fc06a65816bf7251de255c6f7b299cc002d360eaa53a577840ec","libssh2/docs/libssh2_session_banner_get.3":"9a666bfcc5e8d252818450c6d7df92749c0f785871dce0efd973cd2ba60bb8e0","libssh2/docs/libssh2_session_banner_set.3":"0b0f9ac0d85dd60cfb94529cefdc6957d976c2d5c2195638d5a6b696984ffa3c","libssh2/docs/libssh2_session_block_directions.3":"338bcd487a07224462608ecb3696e69da361a2054aac96790d52eee1b20d7c31","libssh2/docs/libssh2_session_callback_set.3":"63b8ac4f62bac629eebeab68e9760610cebf96a8726ecbbd27cbe735279cb762","libssh2/docs/libssh2_session_disconnect.3":"6f512e9b53775ea1958df9b753ac7ab8e97274cbe8685db3d20a275fd27f12f4","libssh2/docs/libssh2_session_disconnect_ex.3":"5a32e9ad5f58152a579dcacb8ad708f4ec855fc9ae647659c65df2eaeb951831","libssh2/docs/libssh2_session_flag.3":"3d98f039253d7a22e9522a355521354aaca7cff14d6c619645d2e84e045a8708","libssh2/docs/libssh2_session_free.3":"825859da5965fa17826e8ef7fd1e66bcc970e1cfa5a8fdb9507150f0968ba309","libssh2/docs/libssh2_session_get_blocking.3":"3c4fe64ebe198a2fd65be1566a497be6a07ffda6dd79dad086c972da01b092b1","libssh2/docs/libssh2_session_get_timeout.3":"efe59a851f3a0bfa681f7708a31b117c65ddaaaccf0e2440d9c668292155fc0e","libssh2/docs/libssh2_session_handshake.3":"3525fc3516d0d0c30584a16935b39935153534f740e8a238c5c54f0d8e2263cd","libssh2/docs/libssh2_session_hostkey.3":"1d0117f7215ee04100f5653237da32ba156b969d9e4da7099dd0960110a9d971","libssh2/docs/libssh2_session_init.3":"98f978a102109eed2a97056bf45e0dc56309d54ac0bd146599524a3bb6da0c06","libssh2/docs/libssh2_session_init_ex.3":"f3fda1749b5a99c0ea7b688afb9712fd89041f70e5d0e0479f769e74124614c7","libssh2/docs/libssh2_session_last_errno.3":"0d07f9e4e9c2b618f708a9ddc58ba84a2d6794d9f2fb8683125beff972918f2c","libssh2/docs/libssh2_session_last_error.3":"8a6541421d142f3dd7c8e3cb09c00285fd79e673de3705321ad42bcf5061eb9a","libssh2/docs/libssh2_session_method_pref.3":"d54a9cea6e1731d94f0fb040c2d7f1950e69ffc6df6b503cda0cd7dd6b036b9b","libssh2/docs/libssh2_session_methods.3":"262570fbd725b366a20e8b405641987ca932655eef80b74f97c63a99fdf85078","libssh2/docs/libssh2_session_set_blocking.3":"267260252463bef90d924a783b0f561b4c2582e0af708a25b3b64cbf61dc3956","libssh2/docs/libssh2_session_set_last_error.3":"1c8c4f6852ac1a61c7ee2fd0e5fe3b06431ff435ce0c7c09a60acf7de9386be9","libssh2/docs/libssh2_session_set_timeout.3":"c21d6aea2e04998ea37dbea8a05b21cb5513a0d5e1e7792b64c92c5419fba07c","libssh2/docs/libssh2_session_startup.3":"4cd85e60ce4c0ac81b599173545ed37cbe0aaee3e73e01ab1675abf2eee475c6","libssh2/docs/libssh2_session_supported_algs.3":"8423af63bb9fef9b8c6b56a44fcbddda8cc4a0a8f0a931e6554476e3f02c00d9","libssh2/docs/libssh2_sftp_close.3":"54ee15d8a554651180c46317009c6bdd025f06452e49794585ac1538cec1f674","libssh2/docs/libssh2_sftp_close_handle.3":"85953c339e90af96216a09809867e58b5dd1c5359a210b7b46e18b7430c00e1a","libssh2/docs/libssh2_sftp_closedir.3":"8742532b41c1ca4faf3dc5c89a58ad04c7997ee40b9639db6eda52685fabaf94","libssh2/docs/libssh2_sftp_fsetstat.3":"9535fa10ce86aca5b68b9977303e082d32841f8059f5b0c99cbb02f0c364c8b2","libssh2/docs/libssh2_sftp_fstat.3":"f4a19a5a2d17164fbbcf808727174cb67b0fb09ee1672379bdd9170c8b891032","libssh2/docs/libssh2_sftp_fstat_ex.3":"110b89091d3c07e8d26ad29a324ca6923292889dbc6d164a38708148a04b0295","libssh2/docs/libssh2_sftp_fstatvfs.3":"18e133cebfb717a138f4955e063da4e0bcb80e0365cfbd840f378c9514bf1569","libssh2/docs/libssh2_sftp_fsync.3":"0d8640c09f7d9d58960da57e6ede639492102dedb304d5d03d7c811706481e4f","libssh2/docs/libssh2_sftp_get_channel.3":"d3d9ec57f20d42ceba14f75f99cf0fa7a0c7f42cf3716d64a92afb7d7e4f66de","libssh2/docs/libssh2_sftp_init.3":"1770298f9cb0dff9d7119d02dea4728f6723f51e127f852e25d08b4bcfd098aa","libssh2/docs/libssh2_sftp_last_error.3":"e29bd486f45f6b4f50c4dbfd6632019bdaee266685ee07f079f86865691dbe53","libssh2/docs/libssh2_sftp_lstat.3":"05fa35221d055904a686d61185481efa7b3da0c86d582fad7b65e57b3df5b35f","libssh2/docs/libssh2_sftp_mkdir.3":"874ad22b42a454d8b202c585c5689dfdd65b4ebde87027f1500e7c89fae8ff1d","libssh2/docs/libssh2_sftp_mkdir_ex.3":"5ba1e821330071c9ca490d1ccf3efdc0b6547a4136a2f4fdfd6955a9145eb23a","libssh2/docs/libssh2_sftp_open.3":"320f8cf156d9ae2281192bf6dbcea84f667c2a51d1076848a5915e281a3cacba","libssh2/docs/libssh2_sftp_open_ex.3":"2987afee6f98aa20478f5addde50491d58fc27bb95212a4162df628099f20c41","libssh2/docs/libssh2_sftp_opendir.3":"33f4cbcc3b5586c40360936660414bf09672f2b719aba506191c62559242d0e8","libssh2/docs/libssh2_sftp_read.3":"f37281a270ec53cd20227d045341bdaa113e7a556958f0ebf35216cf47a5823d","libssh2/docs/libssh2_sftp_readdir.3":"a7c9549a523f335ca5a6c302b8cc943e059f6024df04fa7121c36d7c449e7058","libssh2/docs/libssh2_sftp_readdir_ex.3":"830431dd3e63848904f2deb991e14c73bd9f874e0c66bdcaa32a2ace0b9383e8","libssh2/docs/libssh2_sftp_readlink.3":"b7ec733df060ccae9ba6d71aa2fd0f9f9192f22f1656ce54165e3bb4101c1dd5","libssh2/docs/libssh2_sftp_realpath.3":"feab9a18160fa32ca7831bba17c94f406ad8ea113526fb87453503c7c4e1d7c4","libssh2/docs/libssh2_sftp_rename.3":"5478ec72c022496064b64754189d6a45fe8524540919b96540261558d202a7a4","libssh2/docs/libssh2_sftp_rename_ex.3":"05f6d1865f62794fc66f732d404e4f327b9e3518e70aa3cf6063a9ff25fec546","libssh2/docs/libssh2_sftp_rewind.3":"0f1a5a7f10ba9085927be92905663a18d09109647c7e892f4e95f25a04e4be45","libssh2/docs/libssh2_sftp_rmdir.3":"6345a131e838e66c09416ddec66d076dfa43c203bf9bbbf357fe68bf828b80de","libssh2/docs/libssh2_sftp_rmdir_ex.3":"2d90462940ed2cbfe47815e603529b3fd7c65f6954d18f38e209a4f8440707fa","libssh2/docs/libssh2_sftp_seek.3":"ceaac5eea7bc664b5a0a6f869723e92a11d90afc0fad9685784d1601f29f6931","libssh2/docs/libssh2_sftp_seek64.3":"bf37c0074551b3d8bb5cef85e7d08dca0655c4f1a76698ab61ca735b33678242","libssh2/docs/libssh2_sftp_setstat.3":"8f633eecd895bac87301d533eb44b7c409880ebcb10d161950dd7c65b9750934","libssh2/docs/libssh2_sftp_shutdown.3":"ebd83c5d8babc62a255cc89f848c79b87ec28f838c285138d87a1931ebcfdb97","libssh2/docs/libssh2_sftp_stat.3":"329fecf2e9d517acdd275b5a75d0d2eda80e443a4da5acf3ee865b32229d9349","libssh2/docs/libssh2_sftp_stat_ex.3":"7f9498ea482377c308c75e1da418c861f0833df86848a727c2a98ff07e871f5f","libssh2/docs/libssh2_sftp_statvfs.3":"c963225914727f83a8863ab0181d4d1918d9f65f174974a331d2f42c1e4e43a2","libssh2/docs/libssh2_sftp_symlink.3":"1419b125b3fd2d6d881f02a917616a347dbf6fd0884a3b0e8f628c5da57e64f8","libssh2/docs/libssh2_sftp_symlink_ex.3":"e90785a4c4100c4adce691b0daa4778d40f5fc8f1f5badafefb00119dcf4a61e","libssh2/docs/libssh2_sftp_tell.3":"5d382f1a678054c8f87ced93360f31ce9bd2dee56b8acc440059aca1416cfce7","libssh2/docs/libssh2_sftp_tell64.3":"5fa0ffc5a714a9ebe813d7cfe19ef1edbfcd94d5030a667f60469e8af7aedd1a","libssh2/docs/libssh2_sftp_unlink.3":"5a84af23d7640fff877ab679b5a1c738adc5e472ced484a26a6f3aaa5e8a6afb","libssh2/docs/libssh2_sftp_unlink_ex.3":"13de68450a1a68897e5a56a8d6fd49061d8976f025f9fd4a1228f38f6171de31","libssh2/docs/libssh2_sftp_write.3":"0014253e398ba9c1010b84f664288cf0d43d091c458345a3343289007dd72c40","libssh2/docs/libssh2_trace.3":"59d0dc79ae889873e98c2fc86f83555c480411a0de956353474e72eb9a023370","libssh2/docs/libssh2_trace_sethandler.3":"c17f926dba3ccd17e39b18b4a049def61717849818c719a0cf340afa30ca5ee5","libssh2/docs/libssh2_userauth_authenticated.3":"c058996499fca69ae0f760452a7e50195c13cd69edffae7dc927b6178a3f8a13","libssh2/docs/libssh2_userauth_banner.3":"326e390bf8a011ba80891504a81dcfaac8238d78a877a116f27381c33b81b206","libssh2/docs/libssh2_userauth_hostbased_fromfile.3":"6825f44556e46d3e6e60b37b4d7f8dea0fb2c2b0e499f7b0594060e0c53de4cd","libssh2/docs/libssh2_userauth_hostbased_fromfile_ex.3":"817a405b7ff5d37395726ea3e82e418d7cefaa47fd5c209faed5eea093991143","libssh2/docs/libssh2_userauth_keyboard_interactive.3":"3843a0a250b24e07c3f7c9c5aa24b9c0ed854fcf17162b2f11aa42052dfaaf74","libssh2/docs/libssh2_userauth_keyboard_interactive_ex.3":"3cf5a433bae6829b6e67306ad06720cf6220c04322d7f2e6e7f54945853a5150","libssh2/docs/libssh2_userauth_list.3":"784173dbfe5a4438f4268dd87ab612448bc233907f06b67e855ead65ee89baa5","libssh2/docs/libssh2_userauth_password.3":"e52882ba5f1fa16a460b4a4afac1140664f88768245359de94367c8c160eecf2","libssh2/docs/libssh2_userauth_password_ex.3":"dfd81088046c06e9ea266c6b64ee7dfcba1edb1cae39d897419fd8012fc5f426","libssh2/docs/libssh2_userauth_publickey.3":"77bcd66cbfe0721be1d7d9415556a65300316efe9169991ee1cde9275c8adcd7","libssh2/docs/libssh2_userauth_publickey_fromfile.3":"f388903fd286a1c7b4af1b301ca83aaed4b724a2e97338eb420af54eaa280be4","libssh2/docs/libssh2_userauth_publickey_fromfile_ex.3":"49255e536f054f01250dfd059aaee007b4aca7b4a8321476f7bb757aab5fd60b","libssh2/docs/libssh2_userauth_publickey_frommemory.3":"464c3ff30ff4f8138e392180bdc909d7bd130121fe5d9eddbc5d9e16e5eebae2","libssh2/docs/libssh2_version.3":"887619ff9bfa5fc5efd8271867b0392ce7aeb5036af12cf23feee1b04011130b","libssh2/docs/template.3":"61f917ac5dbe31d856a247c6bad1161ea26e97fd41ecbcd513279dd75de46a9e","libssh2/example/CMakeLists.txt":"cfd412a70b16443fb248a6cdf21b8b914b3a7984bbfb974bb31fc05103377f88","libssh2/example/Makefile.am":"cd453c5244f5dd565b1389d5303d2d2e8162a4980ec4fc09ed9c049dcd7dd15c","libssh2/example/direct_tcpip.c":"8cda05488805704ced6eedb8fb1cbed3177eb4e447a91076de5628171308bab3","libssh2/example/libssh2_config_cmake.h.in":"c15e32491281c0dc49c332fa39db633d2f1a840b4f6b7538e0a382dd373ac688","libssh2/example/scp.c":"1035dea49b168cd101b04cd5d5172b9e63c195ac4124433ad7b986079d85857a","libssh2/example/scp_nonblock.c":"1aabe5a8882d844b574fddbe9de03dc48f62eb4108b7bd57383cad2019cbf52a","libssh2/example/scp_write.c":"bf11306b753066379e9f6e0b1a64682b8b462927102475ceea162975dfc26c46","libssh2/example/scp_write_nonblock.c":"91bdd0e05008d0e7f2286b110dab5122577736866ddba79de920f9f1995d8515","libssh2/example/sftp.c":"2d78dcd18077a9106ad363e4517413667a74158662eabc9924cc06c5adbcd2d2","libssh2/example/sftp_RW_nonblock.c":"639caae7eec102c5739dc3013c6e11c7d9d7902ac71cac68bdc6f908ebc3712d","libssh2/example/sftp_append.c":"e478f658a00a5371751469a874754b1ef613af9de8d280ccbac3c336486e93b0","libssh2/example/sftp_mkdir.c":"ce2dccabaa8ee8b085ea40251e263deaf466a4358caa636f5ea57c66c1f48982","libssh2/example/sftp_mkdir_nonblock.c":"f4527f87fbf7a3546f14cab489938c55429efc385d4f301e5795b93321cbc60e","libssh2/example/sftp_nonblock.c":"8c9511ee211b9e47e2cbb17425048513ba6161fd39cce3e27e23b30facba344c","libssh2/example/sftp_write.c":"dccb2c8499854c6fc5f3d30408d0cde9d0bbb728d2927007a051f7accc2ecdef","libssh2/example/sftp_write_nonblock.c":"d1d104ba77793b3148d77c09c0c6ced95d8bd7c378d2d0bdc5a8a2dc5fd05f8d","libssh2/example/sftp_write_sliding.c":"6017e83abf01f38605fd47c58cf1e16a215386e82286bb82ffd07ab8b7a88043","libssh2/example/sftpdir.c":"f2ad1cb3b19e0bd3f45ac3263f40a329cb328ffcccd908cdc1fc60c601abc51b","libssh2/example/sftpdir_nonblock.c":"f1c99fd72fec848a2b836683a89496354d93cbfca9107c8257598b19d267464c","libssh2/example/ssh2.c":"6261778b8f431646c988a7ea40e9ebeedbb092966e2e0c12c30e204e40e568e2","libssh2/example/ssh2_agent.c":"d8a65f0969e6e4a29d3b8feaa70aca8377345e4c583b65e6dd7c14f197ba076b","libssh2/example/ssh2_agent_forwarding.c":"ce4859a9f847b515ae0c464724c14f4a603dbdc9559b30b06829ea27b8e27c4c","libssh2/example/ssh2_echo.c":"b7bb3f91b00b37e8718498933aa1a0d27be16b0b573f00b90296d2d9f478e1c9","libssh2/example/ssh2_exec.c":"129c6925c6010cce10684737d27cb7beb954473debf488056d9e5193e839c840","libssh2/example/subsystem_netconf.c":"be73b487a2334218f10c5077592b631beaa3ad1f4c2eab2c7a81e2bc72d5719e","libssh2/example/tcpip-forward.c":"f4c2de76abee1b1c1ff1132f7cecf5b06acc66329077df6a615cfc37f4673467","libssh2/example/x11.c":"343856d30e168362f9a5b5b6c66f2f538d291227942ee1296cf40ec766cd0e33","libssh2/get_ver.awk":"c84e58567fc2717cc126674f8b353384fb202b20f8272df37729441079fcace4","libssh2/git2news.pl":"75b4521969353372e53f0d0f1be8288955b6390179163d4fe99acd5d519cff6f","libssh2/include/libssh2.h":"72bf1a71484aea518e276665170648a1c519534546a5197b2afb16fa00bb78ca","libssh2/include/libssh2_publickey.h":"80d20627d7f6ec270050a014fd1793fc04fd7c093ffda39efb82440e871bef8d","libssh2/include/libssh2_sftp.h":"8980f24ce80c919f3692c7a1940fad1e85e3e9b2f3025967bc8085b6c8ac487e","libssh2/libssh2-style.el":"6f5569ad1ea33a7d85273e6518f256982ae723fd52e4727fe8fda61b08d59d99","libssh2/libssh2.pc.in":"e76ec91f5d52f9dcabce5930f2a8bcc474102184272932cbca4f506e3b6022fd","libssh2/m4/autobuild.m4":"6040c450f966010498d236733664a38d81d8e0718515b8a0ad5676a5e3d95fc2","libssh2/m4/lib-ld.m4":"a8708459fb088c8f934bbedd62455a572f6d4c6075f6eeeb4cf4b01e02a87bcc","libssh2/m4/lib-link.m4":"3befa6f7d335a1d0063931f885cf3a6acd85ab3076123a8ee88aaeb9b37c68b7","libssh2/m4/lib-prefix.m4":"f22840534ce570a0be5e56b048912a6dcad0234bf81d40dc1588729b6f7e7bfa","libssh2/maketgz":"7257a00bbc0ed344d3a2b181be48760bbbb0029f02f40ecd559c71ccb5889e64","libssh2/nw/GNUmakefile":"891d89b627a182c3ed81f8ead013f1fbdd1869ecf3f733ee7becd85b26c94ca1","libssh2/nw/keepscreen.c":"c180296a1a0762531aeb3b284c293a3c247db562155b7974d10e709130c5846b","libssh2/nw/nwlib.c":"2b9bf253774f2ee20233b4a5782f038f9eef2e31970790ec8251da22839e06ac","libssh2/nw/test/GNUmakefile":"ebc897d113de2b4138490a5aa7825ef1090e22c0de0de0804befb582a92ae8a2","libssh2/os400/README400":"791b1277e49248dea7b774f7c8cdbcf2aeed1ba36f48c680193c220370a6a758","libssh2/os400/ccsid.c":"b3730dd052efb24459a3cf24abe0390499d366abd859e531f3d9e2b8b814b804","libssh2/os400/include/alloca.h":"1a14dc3405ac04dca0d15f926174877407cf077f690e3ed399a982fdd793bb10","libssh2/os400/include/stdio.h":"703bd87d6779a9d407121407166a9ef291022e085f92c803ab9e0f9e8e63dbbe","libssh2/os400/include/sys/socket.h":"0367b755bda9b0bc031ad238547c91d4e782ce5e9e16943f291ee6d81df90d5a","libssh2/os400/initscript.sh":"90a6e5a31addbcfed5259792ca66d9b28a9e1993489ca25e9388433dbcb22109","libssh2/os400/libssh2_ccsid.h":"5a7b682cc2d0671be8ff4e65cbfeed574157b5db5ab86c87a2ff7ca187fd6215","libssh2/os400/libssh2_config.h":"0315b970f6fe259b7e2e4941f7e16e7781fa5f187f03581c7f52dd9e92efed2c","libssh2/os400/libssh2rpg/libssh2.rpgle.in":"77148756544d121427f307365ece818fb6c5bd998460a0622000ce1c2d19a9b7","libssh2/os400/libssh2rpg/libssh2_ccsid.rpgle.in":"29abb15a49a7faf745f3ea1727ec99b75c62de6084407745dbf05f7ac3614b3c","libssh2/os400/libssh2rpg/libssh2_publickey.rpgle":"f3439d9b0070e4b8273774ab1adef6dc15d669d69b71c61d19ea8aa4045e77ad","libssh2/os400/libssh2rpg/libssh2_sftp.rpgle":"173430cdde33a698f1c887cec333dca0e9587b4ff332caab032b8aaccd6b3413","libssh2/os400/macros.h":"89c76070be54a4b62986059ec6561ce2c600017b2a80beb4f6b64fb18877cdf1","libssh2/os400/make-include.sh":"2c069ee1f376be9b0b6c651cc481477c4d64cfda11ec1ebe1d9ad4fbd5899d5d","libssh2/os400/make-rpg.sh":"65a2e892ad9da096fb144372ae7b0714a8faac0e6947b4fd31c1cdfa1e22a4cc","libssh2/os400/make-src.sh":"a1d0498d08625136637cbe05ad407153b3082d52604540f85e1d996e8485ab78","libssh2/os400/make.sh":"1d979451c7417cebaf9786b09e4e7d67eb9748f7e05b8dc3c5e4e5abf93e55eb","libssh2/os400/os400sys.c":"51e8ea1f15b54df23189d82acfb282ee2a899899b930696816e0824e75c41e0a","libssh2/src/CMakeLists.txt":"e70d494bc7dd9abad1536b3bd7dcb4339732476487ad34fa5f2fc208896fa9f4","libssh2/src/Makefile.am":"6c2c5fd2fac528f25f68cb798a8363f576ac7149934ec7c039412a62fb6c6606","libssh2/src/NMakefile":"7f758f2dd9f5a2d9b02be52158280850d88458d0a648d4eebf8676b485a596db","libssh2/src/agent.c":"47730d0f28881976e6e422d2c619324d6415455a0ed4a11853d705640e622825","libssh2/src/agent.h":"e3b78caebad83be9b73202db2fb70721555e8a0169288900071aa6c06f6a36b5","libssh2/src/agent_win.c":"78e01a0035099210fcbb03b528364e0c56280eee8092fc072b65dab9124023bf","libssh2/src/bcrypt_pbkdf.c":"3ac7542ee6f9e7caf1e4b03404d99068393b349bda6563ccef8f3605a797d426","libssh2/src/blf.h":"7d126af340162c179d42e6caabcd7ab9ba7f03cffe394e1449cf6cc23382761f","libssh2/src/blowfish.c":"d993e2e23074677a33952dfcda73dbc6b16511c4221739cba80f04e61f22156e","libssh2/src/channel.c":"6e25f24dad52b58045f5294643ae2c55aaef08da91f458a5cb20e0a5bff8c741","libssh2/src/channel.h":"9e7f92fadb83cbf277ff77c1d868d76768e30113d09bd1f6cdf2d65b3c3381c1","libssh2/src/comp.c":"ad2dac9f4b77552bb6e19e051f973a7d01150b75bb6de4bee3abc969eb397557","libssh2/src/comp.h":"2df576763634e1466cb61e488d07ecdca2d778668ab696b65d5955c43d73cedb","libssh2/src/crypt.c":"6bc0bc78fda0c72d8f1e2f55376f92fdd31cc1ca19cccf436b3e362049735719","libssh2/src/crypto.h":"fcc161e67a7aa0584fc4318c553a6dad29a10650d14c3f368cb887c2b09ff82f","libssh2/src/global.c":"52653c671e5d5c4d3a47c6e16138ac2734acee7a839888cff384c0e58943cde1","libssh2/src/hostkey.c":"d8947117300432ca98e2aa5652094808188147c6e0fd5f4f7137db3d1b1302e5","libssh2/src/keepalive.c":"3ff038b6c9dc4197d3d581037110e411f3b54d438b306f1640f9048e8d505062","libssh2/src/kex.c":"0ae6e4b3ea1693b0c8b4f2930d8dbf715890379c681038642040399186036927","libssh2/src/knownhost.c":"87e8e967ba3b7e115485166ac7ce55e271f74d64f678eb5374fdb532689b0e01","libssh2/src/libgcrypt.c":"93d0a33ed5a5284e15e24c62199490d992d529b7dd9fa207cd47fd3743ae0651","libssh2/src/libgcrypt.h":"807ea82518dd82e7e5f7da96c8a42437a70ffeb80f018e13a735272c071a8ac8","libssh2/src/libssh2.pc.in":"5a6dc7e2868ba8613c7e054ee3815a1cdbd7b94d9ace5863cf2628f2c6e93a45","libssh2/src/libssh2_config_cmake.h.in":"c4ef4d718df835cd319cc127bccb977877999c2810a9ea8f05c213e52a6afedb","libssh2/src/libssh2_priv.h":"a573bc975e0ea445384ddda9e4453281ae5e02fc97363754b35643df0a7447ff","libssh2/src/mac.c":"ba22c21d5720655ce0c4054282969c4c3ca8cba11b97c4807c973f39126df6a5","libssh2/src/mac.h":"c9a848d2fc185a08e8eaed9bd6c6a60bf514e1743f2384e2e0f902cd76d3cf22","libssh2/src/mbedtls.c":"4e080275937deefb4c69a892714ccbe2b6779792cfef2e84bb1f8843a72b52fc","libssh2/src/mbedtls.h":"aa28ee2387142a442820dc753eb9ba1f4e98bf3873b0f157227aab80b27f8f58","libssh2/src/misc.c":"c3af5641c4f0ac4d8b9552881f0d78daac0fdd4c3712470e3f77660afc3884d7","libssh2/src/misc.h":"a6302c24b5dec80cbdb225df5dfcd8b7433cc33b62589d0deadeb7795a061d5a","libssh2/src/openssl.c":"21422c5b392668a80a2cbc28fc21237958de2b195f40c0a3a9d756adff02865d","libssh2/src/openssl.h":"283ca7c994a68b1561e229dce13689eaeea898a8b7ac8b2a12b96d1eb95f9501","libssh2/src/os400qc3.c":"c0298b4d4ae0b052f8cbfb543b6a61ac813f928ad0463ef8b4682b63e60f07ab","libssh2/src/os400qc3.h":"008cc562836a4aba3d32a7199aa9a241e4d1ee97735e20e468b69a55d3770e1a","libssh2/src/packet.c":"e4a58055a3ce7ce1536e66dd5c23d8975a0f35c7d8c6aea34df80397375c1fb8","libssh2/src/packet.h":"94804a22d0104e03a6fc8c12d2448aa9fa62872f209288e93614be826464d5fd","libssh2/src/pem.c":"978da35a60e88abbb0a660ecb86b016a46fe0a54b718a5ed05e05b9b62cb8909","libssh2/src/publickey.c":"37f0141a3cfa7e8d402d78062f7efdc21ac67b1f426ee8a05d887268634e53ab","libssh2/src/scp.c":"d8e8caddfa7283d2396a21654d81bf52cb7a2c58b02b1610128512863991065f","libssh2/src/session.c":"2c3b16679cdd56d4dbf7dc4e0e16fac9a259d98db256bcd55618ce9e928b0832","libssh2/src/session.h":"e1dbb2fc9cae150ad904fb4d4b92d9462580cf64d347aac49a8774c38be43cad","libssh2/src/sftp.c":"71dac041a9efd91d58be2a67d05ff29ed980bc38f570e63e62ed599bf9bee3a5","libssh2/src/sftp.h":"a7d676a3aedeeb00dbd62426d77fcb4f08cfff48060e11badd38b84b13006929","libssh2/src/transport.c":"124826034d935f4e41401ffe3e93ea4931110515fe70be763d4759fa95574dff","libssh2/src/transport.h":"b4a2339d4c6dba27b70e3baab8b405f8b7ad4a79407ea4d99619396a39eff5ee","libssh2/src/userauth.c":"dc560b8c580f24e2dc34821baacbe299495e5ea590e065136243ade3abe0b505","libssh2/src/userauth.h":"066c857bdde9076524415dc2df2183eeb1eebd967d976f5828a08f3868311c2a","libssh2/src/userauth_kbd_packet.c":"0e240ace42eb39a242f37d0135e813cf0322d37e7cb4fa460748f9502630e17f","libssh2/src/userauth_kbd_packet.h":"ddcde15ae85f8fa8699a1a40e151e9b0e8eecdb9342f19d9a2a52ff7f2c55a11","libssh2/src/version.c":"340e9702249836ddcb4eaa6d3fb1337571d0624f959bd9c295b6f45866b5bdc6","libssh2/src/wincng.c":"38862c01dd05dbc491e4870f6ebb0147c69c462243b8faf3ba0b22bcf5596ec0","libssh2/src/wincng.h":"4dcb81b5b62c6f304b348712a4a514af4e1994c21a433d1d4215aa234e928527","libssh2/tests/CMakeLists.txt":"0aaef513eb613df7dc633d2c44e7c41e52f75c0c6a41b9a546333d3de538e174","libssh2/tests/Makefile.am":"84e17649e7281aae89859c3f6d58a0b38a1590a7d468dafafc9d12ee57a8f70a","libssh2/tests/etc/host":"6062d0b0b737e854d84c21c29ef1f0ced3ad422b261c55a704b7cd3852c6864d","libssh2/tests/etc/host.pub":"7b3ce53fe8f9de7241b0c3191d8011cdf8941316a0eb01ca584c5bce7143727f","libssh2/tests/etc/sshd_config":"88d7c0fec812b9c6440071b24b7f5d09e42616b15deb1cf95cd85465dba73e8f","libssh2/tests/etc/user":"537be3c7f9080a58d25440814b52ed3e7d5863cdf92d86b5199ba2bc40d545aa","libssh2/tests/etc/user.pub":"c5fb3cb330ec8adf6801e0fea30be1211fd8a9943c88623165276e0008ad1d68","libssh2/tests/key_dsa":"93f9eb7ba78313168e8ec23caf867a4c0a511b04080beb651363a3e65ca68fdd","libssh2/tests/key_dsa.pub":"7118e750fbecbda675b3827ec9d400e50423902458ceb5ed93b93d787958f6e2","libssh2/tests/key_dsa_wrong":"c9394613e0713737e8ddf9ee9dff071dde550a6b1d4416994b0885e7a2a5f1f1","libssh2/tests/key_dsa_wrong.pub":"551b569a6c1e7f5991f52b85c0a0cb90a0ff1f2b71a5b1fd7a3fd16a37ebbab7","libssh2/tests/key_ecdsa":"b93970e99c1e7c127f8ff0938a498947b78deca9eb5ee0327eaa4a56601a4cdc","libssh2/tests/key_ecdsa.pub":"ccf2ba05b25904bca99b2c4e17b79957a7d32cde36845085bd216dee1599b8e1","libssh2/tests/key_ed25519":"c61a8c1ec9310aa67e7d7bae29270e5e28e5df23c74d35b02ce61f09528b679b","libssh2/tests/key_ed25519.pub":"246841b61e4b873a0c1ce8fdf1fdaf488b28aae2907a55e292645ee9d268e7ab","libssh2/tests/key_ed25519_encrypted":"e353646ba0285900aee95d11f5e169f54ffdc1e40cffc581dc90d5e3bc765856","libssh2/tests/key_ed25519_encrypted.pub":"eb60029886bccea50ce5c7e86996a36fdc07357899eb47d0f57ce6136643660c","libssh2/tests/key_rsa":"60127ed6c5bfbb4bf79bfc83ea6279b5f6c8ac372c3a73b9783d9d66addfd44a","libssh2/tests/key_rsa.pub":"ecaf083d7669eb9ca254f87be23996fd204d7b237774ce06dee97d8334ab4ebf","libssh2/tests/key_rsa_encrypted":"ee3e59b6dc4cb2ba70a7404413fa97bc2a920595de6d54441a296e3c2e0b60f6","libssh2/tests/key_rsa_encrypted.pub":"de13b85322806c02b8e98c4c3a6e70715d004c66c7b7fb4655492621250b60c9","libssh2/tests/key_rsa_openssh":"468241070f29c2589479193142085631749a0c343017df3d488ba63c271115d7","libssh2/tests/key_rsa_openssh.pub":"fdda221563189dcfec0c77de4e35ae6dab923a809aa106b35dc2cf420d1467a2","libssh2/tests/libssh2_config_cmake.h.in":"6a4be516967a8abab08a6d7b7d45e9682aded1072127de039ddee8c54ba3ef8d","libssh2/tests/mansyntax.sh":"25648f291aa0d8964dbfec6177b4f71e5bd865dde7f5e809e65aa33e95261feb","libssh2/tests/openssh_fixture.c":"00b58683d2e9ba3fd205ec2e30288e903a615f9d6a67dc60377a7b41b4a014b6","libssh2/tests/openssh_fixture.h":"86a6fb659b5298d642ecd701d7043d4a9e09004823342b5720fe09e5cece35ce","libssh2/tests/openssh_server/Dockerfile":"95f954da149b947b19cd56d6d82583830b613d30c503a6651760e071b04a6340","libssh2/tests/openssh_server/authorized_keys":"a0b7581a57ca24ac44fdb130412de80f03724066367a0fb640b842952c2764ee","libssh2/tests/openssh_server/ca_ecdsa":"536a887baf9c84394e76dddcf584a1a6e94a2b97523cc7cedeb86f271f34570f","libssh2/tests/openssh_server/ca_ecdsa.pub":"67072237a78af8df03464d6597778659f307db9c4c61bf8dc9217aa3e2295217","libssh2/tests/openssh_server/ca_rsa":"52baa93a5f6915bb2d66eef7b9c7f7eec400d5fe5bc969015f46ab05b7e0238f","libssh2/tests/openssh_server/ca_rsa.pub":"8d0d5d1b43c0a2264e2e139eae6c60998c37b796b17a68b26ef969341f4e560e","libssh2/tests/openssh_server/ssh_host_ecdsa_key":"d877b929dcc2de7b23e2149527a05f34413b67c1514fd4bb0a3df0521018a972","libssh2/tests/openssh_server/ssh_host_ed25519_key":"c61a8c1ec9310aa67e7d7bae29270e5e28e5df23c74d35b02ce61f09528b679b","libssh2/tests/openssh_server/ssh_host_rsa_key":"e6a0a532ff7ea811c852024d2c3f63b4cba74f166ddb93173a5eec1303e1db27","libssh2/tests/ossfuzz/Makefile.am":"f77e592086d3e22d01b1d2c89c45e3e97e4784d9150671b9a2608af2d29ae93b","libssh2/tests/ossfuzz/ossfuzz.sh":"0f89558504409ecb472bac17500396daeeb29189d7df00241c2643f2dbccc514","libssh2/tests/ossfuzz/ssh2_client_fuzzer.cc":"cad5d7ed07cc1b7b0e3cf368d40e55a21455362ace4588de482d80a7d26c698c","libssh2/tests/ossfuzz/standaloneengine.cc":"aafdc8e08b6bc8a5114cb9e5e9f76cdf04cc58b34c69e9a1170ec461b0b97c9c","libssh2/tests/ossfuzz/testinput.h":"e6f6e895035c6f364274cd0c67ffe707108eed7310c008447519824af16e75c9","libssh2/tests/runner.c":"53b270f0c7ad4731d6df1a6d5cf3a3bfda7a38633da4cc56892afa7022acaaa1","libssh2/tests/session_fixture.c":"0c37f804cd6902146c3733881905f15761803be4a06cc2cd69baaaadfda0c5bb","libssh2/tests/session_fixture.h":"50a779d14d9739bb008e451f35fe63c9444f529d20a9a59674672dc3772fd7db","libssh2/tests/signed_key_ecdsa":"b47409dd6ad4d5c392a4805a9cb2d79e3d2c1448e03222cb23e8ebf255282f95","libssh2/tests/signed_key_ecdsa-cert.pub":"bf893326576b9a7a6279c5112c7e1cf0af149c2e996fc9d1f400891ffc725cfa","libssh2/tests/signed_key_ecdsa.pub":"2bf9b24434f87087001bd6af2ddcb5626a8275b9d8cb0419bb90439a311a191b","libssh2/tests/signed_key_rsa":"4a36fdde95101cc95163e0be6b1579daf4ecfd17eb2e98b8424e65c2db6aaf9b","libssh2/tests/signed_key_rsa-cert.pub":"0281dea684c93d7e8bd8f04cf31ec8b0c9c9b3f319d9c838e5b1d0319e449cfd","libssh2/tests/signed_key_rsa.pub":"b6b048c8e38c77c8942d1735eb2de10031365eb3e1b2633ad057c3f0a07f544f","libssh2/tests/simple.c":"94d9c54e8521a47014e5c037c348b244251f34e15a12020cb52d85878c82afc0","libssh2/tests/ssh2.c":"45263f9a8bf53e8cd3de5ad26ec0cc773d8e831e13668552bdaf43c05724aebe","libssh2/tests/ssh2.sh":"f0b962c9a3b47154c41a00aede1a692e658f6d1e6cbbc141a766227e27528f82","libssh2/tests/sshd_fixture.sh.in":"a83c89ea60ff5aad68846f5ffac740e58214230206dc6dba255cdb1252d99652","libssh2/tests/sshdwrap":"3f7d5407ce0b6c71629bc4991b47dcf40406b94f2eb2d4db530da198f4fea1fc","libssh2/tests/test_agent_forward_succeeds.c":"7938fc6518684298c7a88a89895fdb3e6f65e33b891a80a1c4175c90493da063","libssh2/tests/test_hostkey.c":"5aa2085c5da4817a5d98bb1aeae265c21fc5a18ea5fb4ea3cdd3847f766cc172","libssh2/tests/test_hostkey_hash.c":"e9050b600ce1b9fa7c956db534e0de90e98f35b897c9204988f2d2750c4eef05","libssh2/tests/test_keyboard_interactive_auth_fails_with_wrong_response.c":"e9b5dd0e29abcb60d950ea6e92b5bb68ccf7108043a85669c162dee8d3498e90","libssh2/tests/test_keyboard_interactive_auth_info_request.c":"9e570e219ea609fd402e523359d44ede77672b38d2f69e66f65578f57e2b876a","libssh2/tests/test_keyboard_interactive_auth_succeeds_with_correct_response.c":"5441dc87e5fdf422a5b60bc198b60e4c6ea53cfa11a8366da3b600e14264e938","libssh2/tests/test_password_auth_fails_with_wrong_password.c":"980e7dd6bd87a66f64db284016fb0c7f2b4ab34c61dce225777dd80c52759ecc","libssh2/tests/test_password_auth_fails_with_wrong_username.c":"f4bdffb1949e626d259751bdf65dd0603772c33a9bb3d872407a346f5dd98e8b","libssh2/tests/test_password_auth_succeeds_with_correct_credentials.c":"392d36f4bfb1f25f2d79b799df68a900b5ef76bbdc599a45fc136ebb2b9af8bc","libssh2/tests/test_public_key_auth_fails_with_wrong_key.c":"e573004cdeed1054e337384e5c82b2ba37660a27c3b715840600fd101d05eea1","libssh2/tests/test_public_key_auth_succeeds_with_correct_dsa_key.c":"542cbcc6cbc63037160fa09b5ea2cb714e32cd4dc77ba8aa86b0addab7b9e9af","libssh2/tests/test_public_key_auth_succeeds_with_correct_ecdsa_key.c":"e226a21bf771b09533565fbadec7f8aad6b14fb77529f9b530b51d4282d4c959","libssh2/tests/test_public_key_auth_succeeds_with_correct_ed25519_key.c":"f80b3b80ec23cddb13349a5f8d9f9c4b8da38fecb363c203c5069ef1386e8a0c","libssh2/tests/test_public_key_auth_succeeds_with_correct_ed25519_key_from_mem.c":"adf84c9371db5ad9aed92aeaddf136ab734979de03102f5366fa367f843f1513","libssh2/tests/test_public_key_auth_succeeds_with_correct_encrypted_ed25519_key.c":"1ec8b8f3e0499140ee041be497eff61d2ef1475e6a914f07ba622e49aa8b3b51","libssh2/tests/test_public_key_auth_succeeds_with_correct_encrypted_rsa_key.c":"b2969462870b6cfe0230a021e00f0908f3c36ffde372bf3fb1a1600394063036","libssh2/tests/test_public_key_auth_succeeds_with_correct_rsa_key.c":"5f631d8913fb5d3d6984fe84f946f7519db3d49afdbe80a34c29fce0f968b65a","libssh2/tests/test_public_key_auth_succeeds_with_correct_rsa_openssh_key.c":"62422ca501d5993991abac79e59f823d45f86362c9dd91d2287f79efd7577195","libssh2/tests/test_public_key_auth_succeeds_with_correct_signed_ecdsa_key.c":"af23c765d33d77e18a731b94d2fa4da1e112fb339266c5ceba668062eb8643ff","libssh2/tests/test_public_key_auth_succeeds_with_correct_signed_rsa_key.c":"5991e821d46945197e64c0d089db7ec8b92316c51c78aa15f7525b7ca69a8452","libssh2/vms/libssh2_config.h":"076f44cd91ac0b13da0a6ec5eca84c661977532e2081a174ceaa943dda30d29a","libssh2/vms/libssh2_make_example.dcl":"dafec5d6cf3a27b248ee7c02c593965e9870efcc5aff7e2957976ec3ba0eb900","libssh2/vms/libssh2_make_help.dcl":"b28f69e626da85f2b423122646be6daffb7f48d75e4073e6068c21e2d973366a","libssh2/vms/libssh2_make_kit.dcl":"0efdcae84c0b67eb9e019e9bafb4d9b55e0caad24d6615506d758a954a7c3675","libssh2/vms/libssh2_make_lib.dcl":"6ec2ab42eaa6dfdb020b450ed4102e665bf98fe9eeb31908c1a59ee066587e68","libssh2/vms/man2help.c":"cc5d9d2e6754c802699122bff71add54ee07c532504af0844d6ef508471f1ada","libssh2/vms/readme.vms":"eebc1bc452655d771d87c75d0290ebe2dc9288c23acc29ff30424dba8170ff01","libssh2/win32/GNUmakefile":"7e168c85e62eecd2a0a2d1160003ce9a7cb676d8c2c4363c108e95fec07d4167","libssh2/win32/Makefile.Watcom":"2f14dd5c136ab61fb71e0d35fbbb467622e324b38e51a4c673cf617b9f7ea03e","libssh2/win32/config.mk":"f3bb8eead790f4bff8b9b480f08591b36705762631e0a35d3dcfcc5ca437ddc0","libssh2/win32/libssh2.dsw":"b16e14f1e5ed93f52e450b03d18691bd15a17b13b69486551c61b455cf823d98","libssh2/win32/libssh2.rc":"a02ef600d2670dc16c53f1777dbed39a7be4ab442c955fd4f39e31ea822e8f5f","libssh2/win32/libssh2_config.h":"c7bc7118d3550d1d1798a95b91550b4a40697e4d3bcb5128fa79194ecdaab4c3","libssh2/win32/msvcproj.foot":"85c21ad71a2ae878242d9b370e96dbcb7433b77dc9fa4d1fc903ce0582e0f62d","libssh2/win32/msvcproj.head":"3a9edda7c4f545c43178c826cb0a83f9e2f38ed61cbe6b3002b9683cfebb4fb1","libssh2/win32/rules.mk":"b4743fbd23dae4cf65c5285234e70a1134af4b1c8ee7ba2c8a549e1736bfa5f3","libssh2/win32/test/GNUmakefile":"abbe7f5a47ff2c0252b4b790190f91e0a5d82e48d8e37c3dc1fbdd7f4098a9e5","libssh2/win32/tests.dsp":"73710a110000074bb299c9b780fb4fdc9e7a7edcefe19428de89c33d65e77841"},"package":"2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"}
\ No newline at end of file diff --git a/vendor/libssh2-sys/Cargo.toml b/vendor/libssh2-sys/Cargo.toml new file mode 100644 index 000000000..45f4a714f --- /dev/null +++ b/vendor/libssh2-sys/Cargo.toml @@ -0,0 +1,58 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +name = "libssh2-sys" +version = "0.3.0" +authors = [ + "Alex Crichton <alex@alexcrichton.com>", + "Wez Furlong <wez@wezfurlong.org>", + "Matteo Bigoi <bigo@crisidev.org>", +] +build = "build.rs" +links = "ssh2" +description = "Native bindings to the libssh2 library" +documentation = "https://docs.rs/libssh2-sys" +license = "MIT/Apache-2.0" +repository = "https://github.com/alexcrichton/ssh2-rs" + +[lib] +name = "libssh2_sys" +path = "lib.rs" + +[dependencies.libc] +version = "0.2" + +[dependencies.libz-sys] +version = "1.1.0" +features = ["libc"] +default-features = false + +[build-dependencies.cc] +version = "1.0.25" + +[build-dependencies.pkg-config] +version = "0.3.11" + +[features] +openssl-on-win32 = ["openssl-sys"] +vendored-openssl = ["openssl-sys/vendored"] +zlib-ng-compat = ["libz-sys/zlib-ng"] + +[target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg] +version = "0.2" + +[target."cfg(unix)".dependencies.openssl-sys] +version = "0.9.35" + +[target."cfg(windows)".dependencies.openssl-sys] +version = "0.9.35" +optional = true diff --git a/vendor/libssh2-sys/build.rs b/vendor/libssh2-sys/build.rs new file mode 100644 index 000000000..5f0282440 --- /dev/null +++ b/vendor/libssh2-sys/build.rs @@ -0,0 +1,239 @@ +extern crate cc; +extern crate pkg_config; + +#[cfg(target_env = "msvc")] +extern crate vcpkg; + +use std::env; +use std::fs; +use std::path::{Path, PathBuf}; +use std::process::Command; + +fn main() { + let zlib_ng_compat = env::var("CARGO_FEATURE_ZLIB_NG_COMPAT").is_ok(); + + if !zlib_ng_compat && try_vcpkg() { + return; + } + + // The system copy of libssh2 is not used by default because it + // can lead to having two copies of libssl loaded at once. + // See https://github.com/alexcrichton/ssh2-rs/pull/88 + println!("cargo:rerun-if-env-changed=LIBSSH2_SYS_USE_PKG_CONFIG"); + if env::var("LIBSSH2_SYS_USE_PKG_CONFIG").is_ok() { + if zlib_ng_compat { + panic!("LIBSSH2_SYS_USE_PKG_CONFIG set, but cannot use zlib-ng-compat with system libssh2"); + } + if let Ok(lib) = pkg_config::find_library("libssh2") { + for path in &lib.include_paths { + println!("cargo:include={}", path.display()); + } + return; + } + } + + if !Path::new("libssh2/.git").exists() { + let _ = Command::new("git") + .args(&["submodule", "update", "--init"]) + .status(); + } + + let target = env::var("TARGET").unwrap(); + let profile = env::var("PROFILE").unwrap(); + let dst = PathBuf::from(env::var_os("OUT_DIR").unwrap()); + let mut cfg = cc::Build::new(); + + let include = dst.join("include"); + println!("cargo:include={}", include.display()); + println!("cargo:root={}", dst.display()); + let build = dst.join("build"); + cfg.out_dir(&build); + fs::create_dir_all(&build).unwrap(); + fs::create_dir_all(&include).unwrap(); + + fs::copy("libssh2/include/libssh2.h", include.join("libssh2.h")).unwrap(); + fs::copy( + "libssh2/include/libssh2_publickey.h", + include.join("libssh2_publickey.h"), + ) + .unwrap(); + fs::copy( + "libssh2/include/libssh2_sftp.h", + include.join("libssh2_sftp.h"), + ) + .unwrap(); + + cfg.file("libssh2/src/agent.c") + .file("libssh2/src/bcrypt_pbkdf.c") + .file("libssh2/src/blowfish.c") + .file("libssh2/src/channel.c") + .file("libssh2/src/comp.c") + .file("libssh2/src/crypt.c") + .file("libssh2/src/global.c") + .file("libssh2/src/hostkey.c") + .file("libssh2/src/keepalive.c") + .file("libssh2/src/kex.c") + .file("libssh2/src/knownhost.c") + .file("libssh2/src/mac.c") + .file("libssh2/src/misc.c") + .file("libssh2/src/packet.c") + .file("libssh2/src/pem.c") + .file("libssh2/src/publickey.c") + .file("libssh2/src/scp.c") + .file("libssh2/src/session.c") + .file("libssh2/src/sftp.c") + .file("libssh2/src/transport.c") + .file("libssh2/src/userauth.c") + .file("libssh2/src/userauth_kbd_packet.c") + .include(&include) + .include("libssh2/src"); + + cfg.define("HAVE_LONGLONG", None); + + if target.contains("windows") { + cfg.include("libssh2/win32"); + cfg.define("LIBSSH2_WIN32", None); + cfg.file("libssh2/src/agent_win.c"); + + if env::var_os("CARGO_FEATURE_OPENSSL_ON_WIN32").is_some() { + cfg.define("LIBSSH2_OPENSSL", None); + cfg.define("HAVE_EVP_AES_128_CTR", None); + cfg.file("libssh2/src/openssl.c"); + println!("cargo:rustc-link-lib=static=libssl"); + println!("cargo:rustc-link-lib=static=libcrypto"); + } else { + cfg.define("LIBSSH2_WINCNG", None); + cfg.file("libssh2/src/wincng.c"); + } + } else { + cfg.flag("-fvisibility=hidden"); + cfg.define("HAVE_SNPRINTF", None); + cfg.define("HAVE_UNISTD_H", None); + cfg.define("HAVE_INTTYPES_H", None); + cfg.define("HAVE_STDLIB_H", None); + cfg.define("HAVE_SYS_SELECT_H", None); + cfg.define("HAVE_SYS_SOCKET_H", None); + cfg.define("HAVE_SYS_IOCTL_H", None); + cfg.define("HAVE_SYS_TIME_H", None); + cfg.define("HAVE_SYS_UN_H", None); + cfg.define("HAVE_O_NONBLOCK", None); + cfg.define("LIBSSH2_OPENSSL", None); + cfg.define("HAVE_LIBCRYPT32", None); + cfg.define("HAVE_EVP_AES_128_CTR", None); + cfg.define("HAVE_POLL", None); + cfg.define("HAVE_GETTIMEOFDAY", None); + + cfg.file("libssh2/src/openssl.c"); + + // Create `libssh2_config.h` + let config = fs::read_to_string("libssh2/src/libssh2_config_cmake.h.in").unwrap(); + let config = config + .lines() + .filter(|l| !l.contains("#cmakedefine")) + .collect::<Vec<_>>() + .join("\n"); + fs::write(build.join("libssh2_config.h"), &config).unwrap(); + cfg.include(&build); + } + + /* Enable newer diffie-hellman-group-exchange-sha1 syntax */ + cfg.define("LIBSSH2_DH_GEX_NEW", None); + + cfg.define("LIBSSH2_HAVE_ZLIB", None); + + if profile.contains("debug") { + cfg.define("LIBSSH2DEBUG", None); + } + + println!("cargo:rerun-if-env-changed=DEP_Z_INCLUDE"); + if let Some(path) = env::var_os("DEP_Z_INCLUDE") { + cfg.include(path); + } + + println!("cargo:rerun-if-env-changed=DEP_OPENSSL_INCLUDE"); + if let Some(path) = env::var_os("DEP_OPENSSL_INCLUDE") { + if let Some(path) = env::split_paths(&path).next() { + if let Some(path) = path.to_str() { + if path.len() > 0 { + cfg.include(path); + } + } + } + } + + let libssh2h = fs::read_to_string("libssh2/include/libssh2.h").unwrap(); + let version_line = libssh2h + .lines() + .find(|l| l.contains("LIBSSH2_VERSION")) + .unwrap(); + let version = &version_line[version_line.find('"').unwrap() + 1..version_line.len() - 1]; + + let pkgconfig = dst.join("lib/pkgconfig"); + fs::create_dir_all(&pkgconfig).unwrap(); + fs::write( + pkgconfig.join("libssh2.pc"), + fs::read_to_string("libssh2/libssh2.pc.in") + .unwrap() + .replace("@prefix@", dst.to_str().unwrap()) + .replace("@exec_prefix@", "") + .replace("@libdir@", dst.join("lib").to_str().unwrap()) + .replace("@includedir@", include.to_str().unwrap()) + .replace("@LIBS@", "") + .replace("@LIBSREQUIRED@", "") + .replace("@LIBSSH2VER@", version), + ) + .unwrap(); + + cfg.warnings(false); + cfg.compile("ssh2"); + + if target.contains("windows") { + println!("cargo:rustc-link-lib=bcrypt"); + println!("cargo:rustc-link-lib=crypt32"); + println!("cargo:rustc-link-lib=user32"); + println!("cargo:rustc-link-lib=ntdll"); + } +} + +#[cfg(not(target_env = "msvc"))] +fn try_vcpkg() -> bool { + false +} + +#[cfg(target_env = "msvc")] +fn try_vcpkg() -> bool { + vcpkg::Config::new() + .emit_includes(true) + .probe("libssh2") + .map(|_| { + // found libssh2 which depends on openssl and zlib + vcpkg::Config::new() + .lib_name("libssl") + .lib_name("libcrypto") + .probe("openssl") + .or_else(|_| { + // openssl 1.1 was not found, try openssl 1.0 + vcpkg::Config::new() + .lib_name("libeay32") + .lib_name("ssleay32") + .probe("openssl") + }) + .expect( + "configured libssh2 from vcpkg but could not \ + find openssl libraries that it depends on", + ); + + vcpkg::Config::new() + .lib_names("zlib", "zlib1") + .probe("zlib") + .expect( + "configured libssh2 from vcpkg but could not \ + find the zlib library that it depends on", + ); + + println!("cargo:rustc-link-lib=crypt32"); + println!("cargo:rustc-link-lib=gdi32"); + println!("cargo:rustc-link-lib=user32"); + }) + .is_ok() +} diff --git a/vendor/libssh2-sys/lib.rs b/vendor/libssh2-sys/lib.rs new file mode 100644 index 000000000..11fcbd0e6 --- /dev/null +++ b/vendor/libssh2-sys/lib.rs @@ -0,0 +1,779 @@ +#![doc(html_root_url = "http://alexcrichton.com/ssh2-rs")] +#![allow(bad_style)] +#![allow(unused_extern_crates)] + +extern crate libc; + +extern crate libz_sys; +#[cfg(unix)] +extern crate openssl_sys; + +use libc::ssize_t; +use libc::{c_char, c_int, c_long, c_uchar, c_uint, c_ulong, c_void, size_t}; + +pub const SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT: c_int = 1; +pub const SSH_DISCONNECT_PROTOCOL_ERROR: c_int = 2; +pub const SSH_DISCONNECT_KEY_EXCHANGE_FAILED: c_int = 3; +pub const SSH_DISCONNECT_RESERVED: c_int = 4; +pub const SSH_DISCONNECT_MAC_ERROR: c_int = 5; +pub const SSH_DISCONNECT_COMPRESSION_ERROR: c_int = 6; +pub const SSH_DISCONNECT_SERVICE_NOT_AVAILABLE: c_int = 7; +pub const SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED: c_int = 8; +pub const SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE: c_int = 9; +pub const SSH_DISCONNECT_CONNECTION_LOST: c_int = 10; +pub const SSH_DISCONNECT_BY_APPLICATION: c_int = 11; +pub const SSH_DISCONNECT_TOO_MANY_CONNECTIONS: c_int = 12; +pub const SSH_DISCONNECT_AUTH_CANCELLED_BY_USER: c_int = 13; +pub const SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE: c_int = 14; +pub const SSH_DISCONNECT_ILLEGAL_USER_NAME: c_int = 15; + +pub const LIBSSH2_FLAG_SIGPIPE: c_int = 1; +pub const LIBSSH2_FLAG_COMPRESS: c_int = 2; + +pub const LIBSSH2_HOSTKEY_TYPE_UNKNOWN: c_int = 0; +pub const LIBSSH2_HOSTKEY_TYPE_RSA: c_int = 1; +pub const LIBSSH2_HOSTKEY_TYPE_DSS: c_int = 2; +pub const LIBSSH2_HOSTKEY_TYPE_ECDSA_256: c_int = 3; +pub const LIBSSH2_HOSTKEY_TYPE_ECDSA_384: c_int = 4; +pub const LIBSSH2_HOSTKEY_TYPE_ECDSA_521: c_int = 5; +pub const LIBSSH2_HOSTKEY_TYPE_ED25519: c_int = 6; + +pub const LIBSSH2_METHOD_KEX: c_int = 0; +pub const LIBSSH2_METHOD_HOSTKEY: c_int = 1; +pub const LIBSSH2_METHOD_CRYPT_CS: c_int = 2; +pub const LIBSSH2_METHOD_CRYPT_SC: c_int = 3; +pub const LIBSSH2_METHOD_MAC_CS: c_int = 4; +pub const LIBSSH2_METHOD_MAC_SC: c_int = 5; +pub const LIBSSH2_METHOD_COMP_CS: c_int = 6; +pub const LIBSSH2_METHOD_COMP_SC: c_int = 7; +pub const LIBSSH2_METHOD_LANG_CS: c_int = 8; +pub const LIBSSH2_METHOD_LANG_SC: c_int = 9; +pub const LIBSSH2_METHOD_SIGN_ALGO: c_int = 10; + +pub const LIBSSH2_CHANNEL_PACKET_DEFAULT: c_uint = 32768; +pub const LIBSSH2_CHANNEL_WINDOW_DEFAULT: c_uint = 2 * 1024 * 1024; + +pub const LIBSSH2_ERROR_BANNER_RECV: c_int = -2; +pub const LIBSSH2_ERROR_BANNER_SEND: c_int = -3; +pub const LIBSSH2_ERROR_INVALID_MAC: c_int = -4; +pub const LIBSSH2_ERROR_KEX_FAILURE: c_int = -5; +pub const LIBSSH2_ERROR_ALLOC: c_int = -6; +pub const LIBSSH2_ERROR_SOCKET_SEND: c_int = -7; +pub const LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE: c_int = -8; +pub const LIBSSH2_ERROR_TIMEOUT: c_int = -9; +pub const LIBSSH2_ERROR_HOSTKEY_INIT: c_int = -10; +pub const LIBSSH2_ERROR_HOSTKEY_SIGN: c_int = -11; +pub const LIBSSH2_ERROR_DECRYPT: c_int = -12; +pub const LIBSSH2_ERROR_SOCKET_DISCONNECT: c_int = -13; +pub const LIBSSH2_ERROR_PROTO: c_int = -14; +pub const LIBSSH2_ERROR_PASSWORD_EXPIRED: c_int = -15; +pub const LIBSSH2_ERROR_FILE: c_int = -16; +pub const LIBSSH2_ERROR_METHOD_NONE: c_int = -17; +pub const LIBSSH2_ERROR_AUTHENTICATION_FAILED: c_int = -18; +pub const LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED: c_int = LIBSSH2_ERROR_AUTHENTICATION_FAILED; +pub const LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED: c_int = -19; +pub const LIBSSH2_ERROR_CHANNEL_OUTOFORDER: c_int = -20; +pub const LIBSSH2_ERROR_CHANNEL_FAILURE: c_int = -21; +pub const LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED: c_int = -22; +pub const LIBSSH2_ERROR_CHANNEL_UNKNOWN: c_int = -23; +pub const LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED: c_int = -24; +pub const LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED: c_int = -25; +pub const LIBSSH2_ERROR_CHANNEL_CLOSED: c_int = -26; +pub const LIBSSH2_ERROR_CHANNEL_EOF_SENT: c_int = -27; +pub const LIBSSH2_ERROR_SCP_PROTOCOL: c_int = -28; +pub const LIBSSH2_ERROR_ZLIB: c_int = -29; +pub const LIBSSH2_ERROR_SOCKET_TIMEOUT: c_int = -30; +pub const LIBSSH2_ERROR_SFTP_PROTOCOL: c_int = -31; +pub const LIBSSH2_ERROR_REQUEST_DENIED: c_int = -32; +pub const LIBSSH2_ERROR_METHOD_NOT_SUPPORTED: c_int = -33; +pub const LIBSSH2_ERROR_INVAL: c_int = -34; +pub const LIBSSH2_ERROR_INVALID_POLL_TYPE: c_int = -35; +pub const LIBSSH2_ERROR_PUBLICKEY_PROTOCOL: c_int = -36; +pub const LIBSSH2_ERROR_EAGAIN: c_int = -37; +pub const LIBSSH2_ERROR_BUFFER_TOO_SMALL: c_int = -38; +pub const LIBSSH2_ERROR_BAD_USE: c_int = -39; +pub const LIBSSH2_ERROR_COMPRESS: c_int = -40; +pub const LIBSSH2_ERROR_OUT_OF_BOUNDARY: c_int = -41; +pub const LIBSSH2_ERROR_AGENT_PROTOCOL: c_int = -42; +pub const LIBSSH2_ERROR_SOCKET_RECV: c_int = -43; +pub const LIBSSH2_ERROR_ENCRYPT: c_int = -44; +pub const LIBSSH2_ERROR_BAD_SOCKET: c_int = -45; +pub const LIBSSH2_ERROR_KNOWN_HOSTS: c_int = -46; +pub const LIBSSH2_ERROR_CHANNEL_WINDOW_FULL: c_int = -47; +pub const LIBSSH2_ERROR_KEYFILE_AUTH_FAILED: c_int = -48; +pub const LIBSSH2_ERROR_RANDGEN: c_int = -49; +pub const LIBSSH2_ERROR_MISSING_USERAUTH_BANNER: c_int = -50; +pub const LIBSSH2_ERROR_ALGO_UNSUPPORTED: c_int = -51; + +pub const LIBSSH2_FX_EOF: c_int = 1; +pub const LIBSSH2_FX_NO_SUCH_FILE: c_int = 2; +pub const LIBSSH2_FX_PERMISSION_DENIED: c_int = 3; +pub const LIBSSH2_FX_FAILURE: c_int = 4; +pub const LIBSSH2_FX_BAD_MESSAGE: c_int = 5; +pub const LIBSSH2_FX_NO_CONNECTION: c_int = 6; +pub const LIBSSH2_FX_CONNECTION_LOST: c_int = 7; +pub const LIBSSH2_FX_OP_UNSUPPORTED: c_int = 8; +pub const LIBSSH2_FX_INVALID_HANDLE: c_int = 9; +pub const LIBSSH2_FX_NO_SUCH_PATH: c_int = 10; +pub const LIBSSH2_FX_FILE_ALREADY_EXISTS: c_int = 11; +pub const LIBSSH2_FX_WRITE_PROTECT: c_int = 12; +pub const LIBSSH2_FX_NO_MEDIA: c_int = 13; +pub const LIBSSH2_FX_NO_SPACE_ON_FILESYSTEM: c_int = 14; +pub const LIBSSH2_FX_QUOTA_EXCEEDED: c_int = 15; +pub const LIBSSH2_FX_UNKNOWN_PRINCIPAL: c_int = 16; +pub const LIBSSH2_FX_LOCK_CONFLICT: c_int = 17; +pub const LIBSSH2_FX_DIR_NOT_EMPTY: c_int = 18; +pub const LIBSSH2_FX_NOT_A_DIRECTORY: c_int = 19; +pub const LIBSSH2_FX_INVALID_FILENAME: c_int = 20; +pub const LIBSSH2_FX_LINK_LOOP: c_int = 21; + +pub const LIBSSH2_HOSTKEY_HASH_MD5: c_int = 1; +pub const LIBSSH2_HOSTKEY_HASH_SHA1: c_int = 2; +pub const LIBSSH2_HOSTKEY_HASH_SHA256: c_int = 3; + +pub const LIBSSH2_KNOWNHOST_FILE_OPENSSH: c_int = 1; + +pub const LIBSSH2_KNOWNHOST_CHECK_MATCH: c_int = 0; +pub const LIBSSH2_KNOWNHOST_CHECK_MISMATCH: c_int = 1; +pub const LIBSSH2_KNOWNHOST_CHECK_NOTFOUND: c_int = 2; +pub const LIBSSH2_KNOWNHOST_CHECK_FAILURE: c_int = 3; + +pub const LIBSSH2_KNOWNHOST_TYPE_PLAIN: c_int = 1; +pub const LIBSSH2_KNOWNHOST_TYPE_SHA1: c_int = 2; +pub const LIBSSH2_KNOWNHOST_TYPE_CUSTOM: c_int = 3; +pub const LIBSSH2_KNOWNHOST_KEYENC_RAW: c_int = 1 << 16; +pub const LIBSSH2_KNOWNHOST_KEYENC_BASE64: c_int = 2 << 16; +pub const LIBSSH2_KNOWNHOST_KEY_RSA1: c_int = 1 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_SSHRSA: c_int = 2 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_SSHDSS: c_int = 3 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_ECDSA_256: c_int = 4 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_ECDSA_384: c_int = 5 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_ECDSA_521: c_int = 6 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_ED25519: c_int = 7 << 18; +pub const LIBSSH2_KNOWNHOST_KEY_UNKNOWN: c_int = 15 << 18; + +pub const LIBSSH2_FXF_READ: c_ulong = 0x00000001; +pub const LIBSSH2_FXF_WRITE: c_ulong = 0x00000002; +pub const LIBSSH2_FXF_APPEND: c_ulong = 0x00000004; +pub const LIBSSH2_FXF_CREAT: c_ulong = 0x00000008; +pub const LIBSSH2_FXF_TRUNC: c_ulong = 0x00000010; +pub const LIBSSH2_FXF_EXCL: c_ulong = 0x00000020; + +pub const LIBSSH2_SFTP_OPENFILE: c_int = 0; +pub const LIBSSH2_SFTP_OPENDIR: c_int = 1; + +pub const LIBSSH2_SFTP_ATTR_SIZE: c_ulong = 0x00000001; +pub const LIBSSH2_SFTP_ATTR_UIDGID: c_ulong = 0x00000002; +pub const LIBSSH2_SFTP_ATTR_PERMISSIONS: c_ulong = 0x00000004; +pub const LIBSSH2_SFTP_ATTR_ACMODTIME: c_ulong = 0x00000008; +pub const LIBSSH2_SFTP_ATTR_EXTENDED: c_ulong = 0x80000000; + +pub const LIBSSH2_SFTP_STAT: c_int = 0; +pub const LIBSSH2_SFTP_LSTAT: c_int = 1; +pub const LIBSSH2_SFTP_SETSTAT: c_int = 2; + +pub const LIBSSH2_SFTP_SYMLINK: c_int = 0; +pub const LIBSSH2_SFTP_READLINK: c_int = 1; +pub const LIBSSH2_SFTP_REALPATH: c_int = 2; + +pub const LIBSSH2_SFTP_RENAME_OVERWRITE: c_long = 0x1; +pub const LIBSSH2_SFTP_RENAME_ATOMIC: c_long = 0x2; +pub const LIBSSH2_SFTP_RENAME_NATIVE: c_long = 0x4; + +pub const LIBSSH2_INIT_NO_CRYPTO: c_int = 0x1; + +pub const LIBSSH2_SFTP_S_IFMT: c_ulong = 0o170000; +pub const LIBSSH2_SFTP_S_IFIFO: c_ulong = 0o010000; +pub const LIBSSH2_SFTP_S_IFCHR: c_ulong = 0o020000; +pub const LIBSSH2_SFTP_S_IFDIR: c_ulong = 0o040000; +pub const LIBSSH2_SFTP_S_IFBLK: c_ulong = 0o060000; +pub const LIBSSH2_SFTP_S_IFREG: c_ulong = 0o100000; +pub const LIBSSH2_SFTP_S_IFLNK: c_ulong = 0o120000; +pub const LIBSSH2_SFTP_S_IFSOCK: c_ulong = 0o140000; + +pub const LIBSSH2_CHANNEL_EXTENDED_DATA_NORMAL: c_int = 0; +pub const LIBSSH2_CHANNEL_EXTENDED_DATA_IGNORE: c_int = 1; +pub const LIBSSH2_CHANNEL_EXTENDED_DATA_MERGE: c_int = 2; + +pub const LIBSSH2_SESSION_BLOCK_INBOUND: c_int = 1; +pub const LIBSSH2_SESSION_BLOCK_OUTBOUND: c_int = 2; + +pub const LIBSSH2_TRACE_TRANS : c_int = 1<<1; +pub const LIBSSH2_TRACE_KEX : c_int = 1<<2; +pub const LIBSSH2_TRACE_AUTH : c_int = 1<<3; +pub const LIBSSH2_TRACE_CONN : c_int = 1<<4; +pub const LIBSSH2_TRACE_SCP : c_int = 1<<5; +pub const LIBSSH2_TRACE_SFTP : c_int = 1<<6; +pub const LIBSSH2_TRACE_ERROR : c_int = 1<<7; +pub const LIBSSH2_TRACE_PUBLICKEY : c_int = 1<<8; +pub const LIBSSH2_TRACE_SOCKET : c_int = 1<<9; +pub enum LIBSSH2_SESSION {} +pub enum LIBSSH2_AGENT {} +pub enum LIBSSH2_CHANNEL {} +pub enum LIBSSH2_LISTENER {} +pub enum LIBSSH2_KNOWNHOSTS {} +pub enum LIBSSH2_SFTP {} +pub enum LIBSSH2_SFTP_HANDLE {} + +pub type libssh2_int64_t = i64; +pub type libssh2_uint64_t = u64; + +// libssh2_struct_stat is a typedef for libc::stat on all platforms, however, +// Windows has a bunch of legacy around struct stat that makes things more +// complicated to validate with systest. +// The most reasonable looking solution to this is a newtype that derefs +// to libc::stat. +// We cannot use `pub struct libssh2_struct_stat(pub libc::stat)` because +// that triggers a `no tuple structs in FFI` error. +#[repr(C)] +pub struct libssh2_struct_stat(libc::stat); + +impl std::ops::Deref for libssh2_struct_stat { + type Target = libc::stat; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +#[repr(C)] +pub struct libssh2_agent_publickey { + pub magic: c_uint, + pub node: *mut c_void, + pub blob: *mut c_uchar, + pub blob_len: size_t, + pub comment: *mut c_char, +} + +#[repr(C)] +pub struct libssh2_knownhost { + pub magic: c_uint, + pub node: *mut c_void, + pub name: *mut c_char, + pub key: *mut c_char, + pub typemask: c_int, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct LIBSSH2_SFTP_ATTRIBUTES { + pub flags: c_ulong, + pub filesize: libssh2_uint64_t, + pub uid: c_ulong, + pub gid: c_ulong, + pub permissions: c_ulong, + pub atime: c_ulong, + pub mtime: c_ulong, +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct LIBSSH2_SFTP_STATVFS { + pub f_bsize: libssh2_uint64_t, + pub f_frsize: libssh2_uint64_t, + pub f_blocks: libssh2_uint64_t, + pub f_bfree: libssh2_uint64_t, + pub f_bavail: libssh2_uint64_t, + pub f_files: libssh2_uint64_t, + pub f_ffree: libssh2_uint64_t, + pub f_favail: libssh2_uint64_t, + pub f_fsid: libssh2_uint64_t, + pub f_flag: libssh2_uint64_t, + pub f_namemax: libssh2_uint64_t, +} + +pub type LIBSSH2_ALLOC_FUNC = extern "C" fn(size_t, *mut *mut c_void) -> *mut c_void; +pub type LIBSSH2_FREE_FUNC = extern "C" fn(*mut c_void, *mut *mut c_void); +pub type LIBSSH2_REALLOC_FUNC = extern "C" fn(*mut c_void, size_t, *mut *mut c_void) -> *mut c_void; +pub type LIBSSH2_PASSWD_CHANGEREQ_FUNC = extern "C" fn( + sess: *mut LIBSSH2_SESSION, + newpw: *mut *mut c_char, + newpw_len: *mut c_int, + abstrakt: *mut *mut c_void, +); + +pub type LIBSSH2_USERAUTH_KBDINT_RESPONSE_FUNC = extern "C" fn( + username: *const c_char, + username_len: c_int, + instruction: *const c_char, + instruction_len: c_int, + num_prompts: c_int, + prompts: *const LIBSSH2_USERAUTH_KBDINT_PROMPT, + responses: *mut LIBSSH2_USERAUTH_KBDINT_RESPONSE, + abstrakt: *mut *mut c_void, +); + +#[repr(C)] +pub struct LIBSSH2_USERAUTH_KBDINT_PROMPT { + pub text: *mut c_uchar, + pub length: size_t, + pub echo: c_uchar, +} + +#[repr(C)] +pub struct LIBSSH2_USERAUTH_KBDINT_RESPONSE { + pub text: *mut c_char, + pub length: c_uint, +} + +#[cfg(unix)] +pub type libssh2_socket_t = c_int; +#[cfg(all(windows, target_pointer_width = "32"))] +pub type libssh2_socket_t = u32; +#[cfg(all(windows, target_pointer_width = "64"))] +pub type libssh2_socket_t = u64; + +extern "C" { + // misc + pub fn libssh2_init(flag: c_int) -> c_int; + pub fn libssh2_exit(); + pub fn libssh2_free(sess: *mut LIBSSH2_SESSION, ptr: *mut c_void); + pub fn libssh2_hostkey_hash(session: *mut LIBSSH2_SESSION, hash_type: c_int) -> *const c_char; + pub fn libssh2_trace(session: *mut LIBSSH2_SESSION, bitmask: c_int) -> c_int; + + // session + pub fn libssh2_session_init_ex( + alloc: Option<LIBSSH2_ALLOC_FUNC>, + free: Option<LIBSSH2_FREE_FUNC>, + realloc: Option<LIBSSH2_REALLOC_FUNC>, + abstrakt: *mut c_void, + ) -> *mut LIBSSH2_SESSION; + pub fn libssh2_session_abstract(session: *mut LIBSSH2_SESSION) -> *mut *mut c_void; + pub fn libssh2_session_free(sess: *mut LIBSSH2_SESSION) -> c_int; + pub fn libssh2_session_banner_get(sess: *mut LIBSSH2_SESSION) -> *const c_char; + pub fn libssh2_session_banner_set(sess: *mut LIBSSH2_SESSION, banner: *const c_char) -> c_int; + pub fn libssh2_session_disconnect_ex( + sess: *mut LIBSSH2_SESSION, + reason: c_int, + description: *const c_char, + lang: *const c_char, + ) -> c_int; + pub fn libssh2_session_flag(sess: *mut LIBSSH2_SESSION, flag: c_int, value: c_int) -> c_int; + pub fn libssh2_session_get_blocking(session: *mut LIBSSH2_SESSION) -> c_int; + pub fn libssh2_session_get_timeout(sess: *mut LIBSSH2_SESSION) -> c_long; + pub fn libssh2_session_hostkey( + sess: *mut LIBSSH2_SESSION, + len: *mut size_t, + kind: *mut c_int, + ) -> *const c_char; + pub fn libssh2_session_method_pref( + sess: *mut LIBSSH2_SESSION, + method_type: c_int, + prefs: *const c_char, + ) -> c_int; + pub fn libssh2_session_methods(sess: *mut LIBSSH2_SESSION, method_type: c_int) + -> *const c_char; + pub fn libssh2_session_set_blocking(session: *mut LIBSSH2_SESSION, blocking: c_int); + pub fn libssh2_session_set_timeout(session: *mut LIBSSH2_SESSION, timeout: c_long); + pub fn libssh2_session_supported_algs( + session: *mut LIBSSH2_SESSION, + method_type: c_int, + algs: *mut *mut *const c_char, + ) -> c_int; + pub fn libssh2_session_last_errno(sess: *mut LIBSSH2_SESSION) -> c_int; + pub fn libssh2_session_last_error( + sess: *mut LIBSSH2_SESSION, + msg: *mut *mut c_char, + len: *mut c_int, + want_buf: c_int, + ) -> c_int; + pub fn libssh2_session_handshake(sess: *mut LIBSSH2_SESSION, socket: libssh2_socket_t) + -> c_int; + pub fn libssh2_keepalive_config( + sess: *mut LIBSSH2_SESSION, + want_reply: c_int, + interval: c_uint, + ); + pub fn libssh2_keepalive_send(sess: *mut LIBSSH2_SESSION, seconds_to_next: *mut c_int) + -> c_int; + pub fn libssh2_session_block_directions(sess: *mut LIBSSH2_SESSION) -> c_int; + + // agent + pub fn libssh2_agent_init(sess: *mut LIBSSH2_SESSION) -> *mut LIBSSH2_AGENT; + pub fn libssh2_agent_free(agent: *mut LIBSSH2_AGENT); + pub fn libssh2_agent_connect(agent: *mut LIBSSH2_AGENT) -> c_int; + pub fn libssh2_agent_disconnect(agent: *mut LIBSSH2_AGENT) -> c_int; + pub fn libssh2_agent_list_identities(agent: *mut LIBSSH2_AGENT) -> c_int; + pub fn libssh2_agent_get_identity( + agent: *mut LIBSSH2_AGENT, + store: *mut *mut libssh2_agent_publickey, + prev: *mut libssh2_agent_publickey, + ) -> c_int; + pub fn libssh2_agent_userauth( + agent: *mut LIBSSH2_AGENT, + username: *const c_char, + identity: *mut libssh2_agent_publickey, + ) -> c_int; + + // channels + pub fn libssh2_channel_free(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_close(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_wait_closed(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_wait_eof(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_eof(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_process_startup( + chan: *mut LIBSSH2_CHANNEL, + req: *const c_char, + req_len: c_uint, + msg: *const c_char, + msg_len: c_uint, + ) -> c_int; + pub fn libssh2_channel_flush_ex(chan: *mut LIBSSH2_CHANNEL, streamid: c_int) -> c_int; + pub fn libssh2_channel_write_ex( + chan: *mut LIBSSH2_CHANNEL, + stream_id: c_int, + buf: *const c_char, + buflen: size_t, + ) -> ssize_t; + pub fn libssh2_channel_get_exit_signal( + chan: *mut LIBSSH2_CHANNEL, + exitsignal: *mut *mut c_char, + exitsignal_len: *mut size_t, + errmsg: *mut *mut c_char, + errmsg_len: *mut size_t, + langtag: *mut *mut c_char, + langtag_len: *mut size_t, + ) -> c_int; + pub fn libssh2_channel_get_exit_status(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_open_ex( + sess: *mut LIBSSH2_SESSION, + channel_type: *const c_char, + channel_type_len: c_uint, + window_size: c_uint, + packet_size: c_uint, + message: *const c_char, + message_len: c_uint, + ) -> *mut LIBSSH2_CHANNEL; + pub fn libssh2_channel_read_ex( + chan: *mut LIBSSH2_CHANNEL, + stream_id: c_int, + buf: *mut c_char, + buflen: size_t, + ) -> ssize_t; + pub fn libssh2_channel_setenv_ex( + chan: *mut LIBSSH2_CHANNEL, + var: *const c_char, + varlen: c_uint, + val: *const c_char, + vallen: c_uint, + ) -> c_int; + pub fn libssh2_channel_send_eof(chan: *mut LIBSSH2_CHANNEL) -> c_int; + pub fn libssh2_channel_request_pty_ex( + chan: *mut LIBSSH2_CHANNEL, + term: *const c_char, + termlen: c_uint, + modes: *const c_char, + modeslen: c_uint, + width: c_int, + height: c_int, + width_px: c_int, + height_px: c_int, + ) -> c_int; + pub fn libssh2_channel_request_pty_size_ex( + chan: *mut LIBSSH2_CHANNEL, + width: c_int, + height: c_int, + width_px: c_int, + height_px: c_int, + ) -> c_int; + pub fn libssh2_channel_window_read_ex( + chan: *mut LIBSSH2_CHANNEL, + read_avail: *mut c_ulong, + window_size_initial: *mut c_ulong, + ) -> c_ulong; + pub fn libssh2_channel_window_write_ex( + chan: *mut LIBSSH2_CHANNEL, + window_size_initial: *mut c_ulong, + ) -> c_ulong; + pub fn libssh2_channel_receive_window_adjust2( + chan: *mut LIBSSH2_CHANNEL, + adjust: c_ulong, + force: c_uchar, + window: *mut c_uint, + ) -> c_int; + pub fn libssh2_channel_direct_tcpip_ex( + ses: *mut LIBSSH2_SESSION, + host: *const c_char, + port: c_int, + shost: *const c_char, + sport: c_int, + ) -> *mut LIBSSH2_CHANNEL; + pub fn libssh2_channel_forward_accept(listener: *mut LIBSSH2_LISTENER) -> *mut LIBSSH2_CHANNEL; + pub fn libssh2_channel_forward_cancel(listener: *mut LIBSSH2_LISTENER) -> c_int; + pub fn libssh2_channel_forward_listen_ex( + sess: *mut LIBSSH2_SESSION, + host: *const c_char, + port: c_int, + bound_port: *mut c_int, + queue_maxsize: c_int, + ) -> *mut LIBSSH2_LISTENER; + pub fn libssh2_channel_handle_extended_data2( + channel: *mut LIBSSH2_CHANNEL, + mode: c_int, + ) -> c_int; + pub fn libssh2_channel_request_auth_agent(channel: *mut LIBSSH2_CHANNEL) -> c_int; + + // userauth + pub fn libssh2_userauth_banner(sess: *mut LIBSSH2_SESSION, banner: *mut *mut c_char) -> c_int; + pub fn libssh2_userauth_authenticated(sess: *mut LIBSSH2_SESSION) -> c_int; + pub fn libssh2_userauth_list( + sess: *mut LIBSSH2_SESSION, + username: *const c_char, + username_len: c_uint, + ) -> *mut c_char; + pub fn libssh2_userauth_hostbased_fromfile_ex( + sess: *mut LIBSSH2_SESSION, + username: *const c_char, + username_len: c_uint, + publickey: *const c_char, + privatekey: *const c_char, + passphrase: *const c_char, + hostname: *const c_char, + hostname_len: c_uint, + local_username: *const c_char, + local_len: c_uint, + ) -> c_int; + pub fn libssh2_userauth_publickey_fromfile_ex( + sess: *mut LIBSSH2_SESSION, + username: *const c_char, + username_len: c_uint, + publickey: *const c_char, + privatekey: *const c_char, + passphrase: *const c_char, + ) -> c_int; + pub fn libssh2_userauth_publickey_frommemory( + sess: *mut LIBSSH2_SESSION, + username: *const c_char, + username_len: size_t, + publickeydata: *const c_char, + publickeydata_len: size_t, + privatekeydata: *const c_char, + privatekeydata_len: size_t, + passphrase: *const c_char, + ) -> c_int; + pub fn libssh2_userauth_password_ex( + session: *mut LIBSSH2_SESSION, + username: *const c_char, + username_len: c_uint, + password: *const c_char, + password_len: c_uint, + password_change_cb: Option<LIBSSH2_PASSWD_CHANGEREQ_FUNC>, + ) -> c_int; + pub fn libssh2_userauth_keyboard_interactive_ex( + session: *mut LIBSSH2_SESSION, + username: *const c_char, + username_len: c_uint, + callback: Option<LIBSSH2_USERAUTH_KBDINT_RESPONSE_FUNC>, + ) -> c_int; + + // knownhost + pub fn libssh2_knownhost_free(hosts: *mut LIBSSH2_KNOWNHOSTS); + pub fn libssh2_knownhost_addc( + hosts: *mut LIBSSH2_KNOWNHOSTS, + host: *const c_char, + salt: *const c_char, + key: *const c_char, + keylen: size_t, + comment: *const c_char, + commentlen: size_t, + typemask: c_int, + store: *mut *mut libssh2_knownhost, + ) -> c_int; + pub fn libssh2_knownhost_check( + hosts: *mut LIBSSH2_KNOWNHOSTS, + host: *const c_char, + key: *const c_char, + keylen: size_t, + typemask: c_int, + knownhost: *mut *mut libssh2_knownhost, + ) -> c_int; + pub fn libssh2_knownhost_checkp( + hosts: *mut LIBSSH2_KNOWNHOSTS, + host: *const c_char, + port: c_int, + key: *const c_char, + keylen: size_t, + typemask: c_int, + knownhost: *mut *mut libssh2_knownhost, + ) -> c_int; + pub fn libssh2_knownhost_del( + hosts: *mut LIBSSH2_KNOWNHOSTS, + entry: *mut libssh2_knownhost, + ) -> c_int; + pub fn libssh2_knownhost_get( + hosts: *mut LIBSSH2_KNOWNHOSTS, + store: *mut *mut libssh2_knownhost, + prev: *mut libssh2_knownhost, + ) -> c_int; + pub fn libssh2_knownhost_readfile( + hosts: *mut LIBSSH2_KNOWNHOSTS, + filename: *const c_char, + kind: c_int, + ) -> c_int; + pub fn libssh2_knownhost_readline( + hosts: *mut LIBSSH2_KNOWNHOSTS, + line: *const c_char, + len: size_t, + kind: c_int, + ) -> c_int; + pub fn libssh2_knownhost_writefile( + hosts: *mut LIBSSH2_KNOWNHOSTS, + filename: *const c_char, + kind: c_int, + ) -> c_int; + pub fn libssh2_knownhost_writeline( + hosts: *mut LIBSSH2_KNOWNHOSTS, + known: *mut libssh2_knownhost, + buffer: *mut c_char, + buflen: size_t, + outlen: *mut size_t, + kind: c_int, + ) -> c_int; + pub fn libssh2_knownhost_init(sess: *mut LIBSSH2_SESSION) -> *mut LIBSSH2_KNOWNHOSTS; + + // scp + #[deprecated(note = "dangerously unsafe on windows, use libssh2_scp_recv2 instead")] + pub fn libssh2_scp_recv( + sess: *mut LIBSSH2_SESSION, + path: *const c_char, + sb: *mut libc::stat, + ) -> *mut LIBSSH2_CHANNEL; + + pub fn libssh2_scp_recv2( + sess: *mut LIBSSH2_SESSION, + path: *const c_char, + sb: *mut libssh2_struct_stat, + ) -> *mut LIBSSH2_CHANNEL; + + pub fn libssh2_scp_send64( + sess: *mut LIBSSH2_SESSION, + path: *const c_char, + mode: c_int, + size: libssh2_int64_t, + mtime: libc::time_t, + atime: libc::time_t, + ) -> *mut LIBSSH2_CHANNEL; + + // sftp + pub fn libssh2_sftp_init(sess: *mut LIBSSH2_SESSION) -> *mut LIBSSH2_SFTP; + pub fn libssh2_sftp_shutdown(sftp: *mut LIBSSH2_SFTP) -> c_int; + pub fn libssh2_sftp_last_error(sftp: *mut LIBSSH2_SFTP) -> c_ulong; + pub fn libssh2_sftp_open_ex( + sftp: *mut LIBSSH2_SFTP, + filename: *const c_char, + filename_len: c_uint, + flags: c_ulong, + mode: c_long, + open_type: c_int, + ) -> *mut LIBSSH2_SFTP_HANDLE; + pub fn libssh2_sftp_close_handle(handle: *mut LIBSSH2_SFTP_HANDLE) -> c_int; + pub fn libssh2_sftp_mkdir_ex( + sftp: *mut LIBSSH2_SFTP, + path: *const c_char, + path_len: c_uint, + mode: c_long, + ) -> c_int; + pub fn libssh2_sftp_fsync(handle: *mut LIBSSH2_SFTP_HANDLE) -> c_int; + pub fn libssh2_sftp_fstat_ex( + handle: *mut LIBSSH2_SFTP_HANDLE, + attrs: *mut LIBSSH2_SFTP_ATTRIBUTES, + setstat: c_int, + ) -> c_int; + pub fn libssh2_sftp_fstatvfs( + handle: *mut LIBSSH2_SFTP_HANDLE, + attrs: *mut LIBSSH2_SFTP_STATVFS, + ) -> c_int; + pub fn libssh2_sftp_stat_ex( + sftp: *mut LIBSSH2_SFTP, + path: *const c_char, + path_len: c_uint, + stat_type: c_int, + attrs: *mut LIBSSH2_SFTP_ATTRIBUTES, + ) -> c_int; + pub fn libssh2_sftp_read( + handle: *mut LIBSSH2_SFTP_HANDLE, + buf: *mut c_char, + len: size_t, + ) -> ssize_t; + pub fn libssh2_sftp_symlink_ex( + sftp: *mut LIBSSH2_SFTP, + path: *const c_char, + path_len: c_uint, + target: *mut c_char, + target_len: c_uint, + link_type: c_int, + ) -> c_int; + pub fn libssh2_sftp_rename_ex( + sftp: *mut LIBSSH2_SFTP, + src: *const c_char, + src_len: c_uint, + dst: *const c_char, + dst_len: c_uint, + flags: c_long, + ) -> c_int; + pub fn libssh2_sftp_rmdir_ex( + sftp: *mut LIBSSH2_SFTP, + path: *const c_char, + path_len: c_uint, + ) -> c_int; + pub fn libssh2_sftp_write( + handle: *mut LIBSSH2_SFTP_HANDLE, + buffer: *const c_char, + len: size_t, + ) -> ssize_t; + pub fn libssh2_sftp_tell64(handle: *mut LIBSSH2_SFTP_HANDLE) -> libssh2_uint64_t; + pub fn libssh2_sftp_seek64(handle: *mut LIBSSH2_SFTP_HANDLE, off: libssh2_uint64_t); + pub fn libssh2_sftp_readdir_ex( + handle: *mut LIBSSH2_SFTP_HANDLE, + buffer: *mut c_char, + buffer_len: size_t, + longentry: *mut c_char, + longentry_len: size_t, + attrs: *mut LIBSSH2_SFTP_ATTRIBUTES, + ) -> c_int; + pub fn libssh2_sftp_unlink_ex( + sftp: *mut LIBSSH2_SFTP, + filename: *const c_char, + filename_len: c_uint, + ) -> c_int; +} + +#[test] +fn smoke() { + unsafe { libssh2_init(0) }; +} + +#[doc(hidden)] +pub fn issue_14344_workaround() {} + +pub fn init() { + use std::sync::Once; + + static INIT: Once = Once::new(); + INIT.call_once(|| unsafe { + platform_init(); + assert_eq!(libc::atexit(shutdown), 0); + }); + extern "C" fn shutdown() { + unsafe { + libssh2_exit(); + } + } + + #[cfg(unix)] + unsafe fn platform_init() { + // On Unix we want to funnel through openssl_sys to initialize OpenSSL, + // so be sure to tell libssh2 to not do its own thing as we've already + // taken care of it. + openssl_sys::init(); + assert_eq!(libssh2_init(LIBSSH2_INIT_NO_CRYPTO), 0); + } + + #[cfg(windows)] + unsafe fn platform_init() { + // On Windows we want to be sure to tell libssh2 to initialize + // everything, as we're not managing crypto elsewhere ourselves. Also to + // fix alexcrichton/git2-rs#202 + assert_eq!(libssh2_init(0), 0); + } +} |