+2006-04-10 Sebastien Pouliot <sebastien@ximian.com>
+
+ * ClientSessionCache.cs: The session id can be zero-length (like our
+ own server class).
+ * SslServerStream.cs: Adapt code to fixes made in cipher suite and
+ message processing changes in client code.
+
2006-03-16 Sebastien Pouliot <sebastien@ximian.com>
* CipherSuiteFactory.cs: Fix bad key exchange values for non-export
this.protocol.SendRecord(HandshakeType.Certificate);
// If the negotiated cipher is a KeyEx cipher send ServerKeyExchange
- if (this.context.Cipher.ExchangeAlgorithmType == ExchangeAlgorithmType.RsaKeyX)
+ if (this.context.Cipher.IsExportable)
{
this.protocol.SendRecord(HandshakeType.ServerKeyExchange);
}
// If the negotiated cipher is a KeyEx cipher or
// the client certificate is required send the CertificateRequest message
- if (this.context.Cipher.ExchangeAlgorithmType == ExchangeAlgorithmType.RsaKeyX ||
+ if (this.context.Cipher.IsExportable ||
((ServerContext)this.context).ClientCertificateRequired)
{
this.protocol.SendRecord(HandshakeType.CertificateRequest);
// Send ChangeCipherSpec and ServerFinished messages
this.protocol.SendChangeCipherSpec();
+ this.protocol.SendRecord (HandshakeType.Finished);
// The handshake is finished
this.context.HandshakeState = HandshakeState.Finished;
+ // Reset Handshake messages information
+ this.context.HandshakeMessages.Reset ();
+
// Clear Key Info
this.context.ClearKeyInfo();
}