summaryrefslogtreecommitdiff
path: root/src/cssh.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cssh.c')
-rw-r--r--src/cssh.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/cssh.c b/src/cssh.c
index c45f310..0ef0a78 100644
--- a/src/cssh.c
+++ b/src/cssh.c
@@ -222,7 +222,7 @@ static int accept_server( ssh_session session, unsigned char *hash, size_t hlen
fprintf( stderr, "Do you want to write this new key into the known host file for future usage?\n" );
if( get_yes_or_no( ) ) {
- if( ssh_write_knownhost( session ) < 0 ) {
+ if( ssh_session_update_known_hosts( session ) != SSH_OK ) {
fprintf( stderr, "ERROR: error while writing known host file: %s\n",
strerror( errno ) );
return -1;
@@ -234,12 +234,12 @@ static int accept_server( ssh_session session, unsigned char *hash, size_t hlen
static int verify_knownhost( ssh_session session )
{
- int state;
+ enum ssh_known_hosts_e state;
- state = ssh_is_server_known( session );
+ state = ssh_session_is_known_server( session );
ssh_key srv_pubkey;
- int rc = ssh_get_publickey( session, &srv_pubkey );
+ int rc = ssh_get_server_publickey( session, &srv_pubkey );
if( rc < 0 ) {
fprintf( stderr, "ERROR: Failed to get public key of host: %s\n",
ssh_get_error( session ) );
@@ -262,11 +262,12 @@ static int verify_knownhost( ssh_session session )
ssh_clean_pubkey_hash( &hash );
return 0;
- case SSH_SERVER_KNOWN_CHANGED:
- fprintf( stderr, "ERROR: Host key for server changed : server's one is now:\n" );
- ssh_print_hexa( "Public key hash", hash, hlen );
+ case SSH_SERVER_KNOWN_CHANGED: {
+ char *hexa = ssh_get_hexa( hash, hlen );
+ fprintf( stderr, "ERROR: Host key for server changed : server's one is now:\n%s\n", hexa );
+ ssh_string_free_char( hexa );
ssh_clean_pubkey_hash( &hash );
- return -1;
+ } return -1;
case SSH_SERVER_FOUND_OTHER:
fprintf( stderr, "ERROR: The server gave us an unexpected host key, this could be an attack\n" );