libssh: Fix matching user-specified MD5 hex key

Prior to this change a match would never be successful because it
was mistakenly coded to compare binary data from libssh to a
user-specified hex string (ie CURLOPT_SSH_HOST_PUBLIC_KEY_MD5).

Reported-by: fds242@users.noreply.github.com

Fixes https://github.com/curl/curl/issues/4971
Closes https://github.com/curl/curl/pull/4974
This commit is contained in:
Jay Satiro 2020-02-23 18:37:09 -05:00
parent e54b1885d1
commit 09aa807240
9 changed files with 159 additions and 8 deletions

View file

@ -85,7 +85,7 @@ test626 test627 test628 test629 test630 test631 test632 test633 test634 \
test635 test636 test637 test638 test639 test640 test641 test642 \
test643 test644 test645 test646 test647 test648 test649 test650 test651 \
test652 test653 test654 test655 test656 test658 test659 test660 test661 \
test662 test663 \
test662 test663 test664 test665 \
\
test700 test701 test702 test703 test704 test705 test706 test707 test708 \
test709 test710 test711 test712 test713 test714 test715 test716 test717 \

44
tests/data/test664 Normal file
View file

@ -0,0 +1,44 @@
<testcase>
<info>
<keywords>
SFTP
server key check
</keywords>
</info>
#
# Server-side
<reply>
<data>
test
</data>
</reply>
#
# Client-side
<client>
<server>
sftp
</server>
<name>
SFTP correct host key
</name>
<command>
--hostpubmd5 %SSHSRVMD5 --key curl_client_key --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%POSIX_PWD/log/file664.txt
</command>
<file name="log/file664.txt">
test
</file>
</client>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
0
</errorcode>
<valgrind>
disable
</valgrind>
</verify>
</testcase>

44
tests/data/test665 Normal file
View file

@ -0,0 +1,44 @@
<testcase>
<info>
<keywords>
SCP
server key check
</keywords>
</info>
#
# Server-side
<reply>
<data>
test
</data>
</reply>
#
# Client-side
<client>
<server>
scp
</server>
<name>
SCP correct host key
</name>
<command>
--hostpubmd5 %SSHSRVMD5 --key curl_client_key --pubkey curl_client_key.pub -u %USER: scp://%HOSTIP:%SSHPORT%POSIX_PWD/log/file665.txt
</command>
<file name="log/file665.txt">
test
</file>
</client>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
0
</errorcode>
<valgrind>
disable
</valgrind>
</verify>
</testcase>