public void VersionMismatchTest()
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
KeyExchangeAlgorithmRSA keyex = new KeyExchangeAlgorithmRSA();
PseudoRandomFunctionTLSGeneric prf = new PseudoRandomFunctionTLSGeneric("SHA1");
byte[] clientKeys = keyex.GetClientKeys(ProtocolVersion.TLS1_0, ProtocolVersion.TLS1_0, rsa);
byte[] master1 = keyex.GetMasterSecret(prf, new byte[32]);
keyex.ProcessClientKeys(ProtocolVersion.SSL3_0, ProtocolVersion.TLS1_0, new CertificatePrivateKey(keyex.CertificateKeyAlgorithm, rsa), clientKeys);
byte[] master2 = keyex.GetMasterSecret(prf, new byte[32]);
Assert.AreNotEqual (master1, master2);
clientKeys = keyex.GetClientKeys(ProtocolVersion.SSL3_0, ProtocolVersion.TLS1_0, rsa);
master1 = keyex.GetMasterSecret(prf, new byte[32]);
keyex.ProcessClientKeys(ProtocolVersion.TLS1_0, ProtocolVersion.TLS1_0, new CertificatePrivateKey(keyex.CertificateKeyAlgorithm, rsa), clientKeys);
master2 = keyex.GetMasterSecret(prf, new byte[32]);
Assert.AreNotEqual (master1, master2);
}