* First format the key into a string.
*/
int len = rsastr_len(&hostkey);
+ char fingerprint[100];
char *keystr = malloc(len);
if (!keystr)
fatalbox("Out of memory");
rsastr_fmt(keystr, &hostkey);
- verify_ssh_host_key(savedhost, keystr);
+ rsa_fingerprint(fingerprint, sizeof(fingerprint), &hostkey);
+ verify_ssh_host_key(savedhost, "rsa", keystr, fingerprint);
free(keystr);
}
static struct ssh_mac *scmac_tobe = NULL;
static struct ssh_compress *cscomp_tobe = NULL;
static struct ssh_compress *sccomp_tobe = NULL;
- static char *hostkeydata, *sigdata, *keystr;
+ static char *hostkeydata, *sigdata, *keystr, *fingerprint;
static int hostkeylen, siglen;
static unsigned char exchange_hash[20];
static unsigned char keyspace[40];
* checked the signature of the exchange hash.)
*/
keystr = hostkey->fmtkey();
- verify_ssh_host_key(savedhost, keystr);
+ fingerprint = hostkey->fingerprint();
+ verify_ssh_host_key(savedhost, hostkey->keytype, keystr, fingerprint);
+ logevent("Host key fingerprint is:");
+ logevent(fingerprint);
+ free(fingerprint);
free(keystr);
/*