1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-07-31 00:03:07 +03:00

examples: Use ssh_print_hash()

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Andreas Schneider
2018-08-17 13:13:12 +02:00
parent 9510a538c2
commit 5b07c1aa2c

View File

@ -33,7 +33,6 @@ clients must be made or how a client should react.
#endif #endif
int verify_knownhost(ssh_session session){ int verify_knownhost(ssh_session session){
char *hexa;
enum ssh_known_hosts_e state; enum ssh_known_hosts_e state;
char buf[10]; char buf[10];
unsigned char *hash = NULL; unsigned char *hash = NULL;
@ -47,7 +46,7 @@ int verify_knownhost(ssh_session session){
} }
rc = ssh_get_publickey_hash(srv_pubkey, rc = ssh_get_publickey_hash(srv_pubkey,
SSH_PUBLICKEY_HASH_SHA1, SSH_PUBLICKEY_HASH_SHA256,
&hash, &hash,
&hlen); &hlen);
ssh_key_free(srv_pubkey); ssh_key_free(srv_pubkey);
@ -62,7 +61,7 @@ int verify_knownhost(ssh_session session){
break; /* ok */ break; /* ok */
case SSH_KNOWN_HOSTS_CHANGED: case SSH_KNOWN_HOSTS_CHANGED:
fprintf(stderr,"Host key for server changed : server's one is now :\n"); fprintf(stderr,"Host key for server changed : server's one is now :\n");
ssh_print_hexa("Public key hash",hash, hlen); ssh_print_hash(SSH_PUBLICKEY_HASH_SHA256, hash, hlen);
ssh_clean_pubkey_hash(&hash); ssh_clean_pubkey_hash(&hash);
fprintf(stderr,"For security reason, connection will be stopped\n"); fprintf(stderr,"For security reason, connection will be stopped\n");
return -1; return -1;
@ -78,10 +77,10 @@ int verify_knownhost(ssh_session session){
/* fallback to SSH_SERVER_NOT_KNOWN behavior */ /* fallback to SSH_SERVER_NOT_KNOWN behavior */
FALL_THROUGH; FALL_THROUGH;
case SSH_SERVER_NOT_KNOWN: case SSH_SERVER_NOT_KNOWN:
hexa = ssh_get_hexa(hash, hlen); fprintf(stderr,
fprintf(stderr,"The server is unknown. Do you trust the host key ?\n"); "The server is unknown. Do you trust the host key (yes/no)?\n");
fprintf(stderr, "Public key hash: %s\n", hexa); ssh_print_hash(SSH_PUBLICKEY_HASH_SHA256, hash, hlen);
ssh_string_free_char(hexa);
if (fgets(buf, sizeof(buf), stdin) == NULL) { if (fgets(buf, sizeof(buf), stdin) == NULL) {
ssh_clean_pubkey_hash(&hash); ssh_clean_pubkey_hash(&hash);
return -1; return -1;