Diff

Differences From Artifact [cd4954e546]:

To Artifact [23fa55f597]:


3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3495
3496
3497
3498
3499
3500
3501









3502
3503
3504
3505
3506
3507
3508







-
-
-
-
-
-
-
-
-







    hkey = hostkey->newkey(hostkeydata, hostkeylen);
    if (!hkey ||
	!hostkey->verifysig(hkey, sigdata, siglen, exchange_hash, 20)) {
	bombout(("Server's host key did not match the signature supplied"));
	crReturn(0);
    }

    /*
     * Expect SSH2_MSG_NEWKEYS from server.
     */
    crWaitUntil(ispkt);
    if (pktin.type != SSH2_MSG_NEWKEYS) {
	bombout(("expected new-keys packet from server"));
	crReturn(0);
    }

    /*
     * Authenticate remote host: verify host key. (We've already
     * checked the signature of the exchange hash.)
     */
    keystr = hostkey->fmtkey(hkey);
    fingerprint = hostkey->fingerprint(hkey);
    verify_ssh_host_key(savedhost, savedport, hostkey->keytype,
3525
3526
3527
3528
3529
3530
3531









3532
3533
3534
3535
3536
3537
3538
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538







+
+
+
+
+
+
+
+
+







    hostkey->freekey(hkey);

    /*
     * Send SSH2_MSG_NEWKEYS.
     */
    ssh2_pkt_init(SSH2_MSG_NEWKEYS);
    ssh2_pkt_send();

    /*
     * Expect SSH2_MSG_NEWKEYS from server.
     */
    crWaitUntil(ispkt);
    if (pktin.type != SSH2_MSG_NEWKEYS) {
	bombout(("expected new-keys packet from server"));
	crReturn(0);
    }

    /*
     * Create and initialise session keys.
     */
    cscipher = cscipher_tobe;
    sccipher = sccipher_tobe;
    csmac = csmac_tobe;