'Test that the KEXDH_REPLY message verifies the server.'

def test_KEXDH_REPLY(self):

    self.test_KEXINIT_group14()
    sharedSecret = common._MPpow(self.proto.g, self.proto.x, self.proto.p)
    h = sha1()
    h.update((common.NS(self.proto.ourVersionString) * 2))
    h.update((common.NS(self.proto.ourKexInitPayload) * 2))
    h.update(common.NS(self.blob))
    h.update(self.proto.e)
    h.update('\x00\x00\x00\x01\x02')
    h.update(sharedSecret)
    exchangeHash = h.digest()
    def _cbTestKEXDH_REPLY(value):
        self.assertIsNone(value)
        self.assertTrue(self.calledVerifyHostKey)
        self.assertEqual(self.proto.sessionID, exchangeHash)
    signature = self.privObj.sign(exchangeHash)
    d = self.proto.ssh_KEX_DH_GEX_GROUP(((common.NS(self.blob) + '\x00\x00\x00\x01\x02') + common.NS(signature)))
    d.addCallback(_cbTestKEXDH_REPLY)
    return d
