[Mono-devel-list] Preliminary patch to change to the new SslClientStream
Carlos Guzmán Álvarez
carlosga at telefonica.net
Fri Nov 21 08:37:52 EST 2003
Hello:
> I need one example of how works SslClientStream, then and when this
> patch works I'll add Ssl support. If anybody knows why this changes
> break the connection... please tell me.
SslClientStream works as a normal stream, the handshake will be
negotiated in the first read/write orperation and after this all the
read/write data operations will be done in SSL/TLS mode.
In PgSqlClient i'm making this for init a SSL connection to a PostgreSQL
7.4 server:
initializeSocket();
if (settings.SSL)
{
// Send SSL request message
SSLRequest();
if (settings.SSL)
{
sslStream = new SslClientStream(
networkStream,
settings.ServerName,
true,
SecurityProtocolType.Default);
receive = new BinaryReader(sslStream);
send = new BinaryWriter(sslStream);
}
}
// Send Startup message
PgOutputPacket packet = new PgOutputPacket(settings.Encoding);
packet.WriteInt(PgCodes.PROTOCOL_VERSION3);
packet.WriteString("user");
packet.WriteString(settings.UserName);
if (settings.Database != null && settings.Database.Length > 0)
{
packet.WriteString("database");
packet.WriteString(settings.Database);
}
packet.Write((byte)0); // Terminator
// Handshake protocol will be negotiated here if the connection is using
SSL/TLS
SendData(packet.GetSimplePacketBytes());
--
Best regards
Carlos Guzmán Álvarez
Vigo-Spain
More information about the Mono-devel-list
mailing list