Thread: [pgsqlclient-checkins] pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls CipherS
Status: Inactive
Brought to you by:
carlosga_fb
Update of /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29139 Modified Files: CipherSuite.cs SecurityProtocolType.cs SslClientStream.cs TlsCipherSuite.cs TlsContext.cs TlsSslCipherSuite.cs Log Message: 2004-02-18 Carlos Guzmán Álvarez <car...@te...> * Mono.Security.Protocol.Tls/CipherSuite.cs: * Mono.Security.Protocol.Tls/TlsCipherSuite.cs: * Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs: * Mono.Security.Protocol.Tls/TlsContext.cs: - Added some optimizations proposed by Sebastien Pouliot. * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: - Changes on Common Name detection and certificate error handling ( Thanks to Sebastien Pouliot for his feedback ). * Mono.Security.Protocol.Tls/SecurityProtocolType.cs: - Added Serializable attribute ( Thanks to Sebastien Pouliot for his feedback ). * Mono.Security.Protocol.Tls/SslClientStream.cs: - Fix for ServerCertificate property Index: CipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/CipherSuite.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CipherSuite.cs 17 Feb 2004 17:52:12 -0000 1.2 --- CipherSuite.cs 18 Feb 2004 15:28:13 -0000 1.3 *************** *** 37,40 **** --- 37,46 ---- internal abstract class CipherSuite { + #region Static Fields + + public static byte[] EmptyArray = new byte[0]; + + #endregion + #region Fields *************** *** 221,225 **** this.ivSize = ivSize; this.blockSize = blockSize; ! this.keyBlockSize = this.keyMaterialSize*2 + this.HashSize*2 + this.ivSize*2; } --- 227,231 ---- this.ivSize = ivSize; this.blockSize = blockSize; ! this.keyBlockSize = (this.keyMaterialSize + this.HashSize + this.ivSize) << 1; } Index: SecurityProtocolType.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SecurityProtocolType.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SecurityProtocolType.cs 17 Feb 2004 17:52:12 -0000 1.2 --- SecurityProtocolType.cs 18 Feb 2004 15:28:13 -0000 1.3 *************** *** 28,31 **** --- 28,32 ---- { [Flags] + [Serializable] public enum SecurityProtocolType { Index: SslClientStream.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SslClientStream.cs 17 Feb 2004 22:04:16 -0000 1.7 --- SslClientStream.cs 18 Feb 2004 15:28:13 -0000 1.8 *************** *** 222,226 **** get { ! if (!this.context.HandshakeFinished) { if (this.context.ServerSettings.Certificates != null && --- 222,226 ---- get { ! if (this.context.HandshakeFinished) { if (this.context.ServerSettings.Certificates != null && Index: TlsCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsCipherSuite.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TlsCipherSuite.cs 17 Feb 2004 17:52:12 -0000 1.2 --- TlsCipherSuite.cs 18 Feb 2004 15:28:13 -0000 1.3 *************** *** 126,131 **** else { ! this.Context.ClientWriteIV = new byte[0]; ! this.Context.ServerWriteIV = new byte[0]; } } --- 126,131 ---- else { ! this.Context.ClientWriteIV = CipherSuite.EmptyArray; ! this.Context.ServerWriteIV = CipherSuite.EmptyArray; } } Index: TlsContext.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsContext.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsContext.cs 17 Feb 2004 22:04:55 -0000 1.3 --- TlsContext.cs 18 Feb 2004 15:28:13 -0000 1.4 *************** *** 89,92 **** --- 89,96 ---- private TlsStream handshakeMessages; + + // Secure Random generator + private RandomNumberGenerator random; + #endregion *************** *** 96,99 **** --- 100,104 ---- internal const short TLS1_PROTOCOL_CODE = (0x03 << 8) | 0x01; internal const short SSL3_PROTOCOL_CODE = (0x03 << 8) | 0x00; + internal const long UNIX_BASE_TICKS = 621355968000000000; #endregion *************** *** 292,295 **** --- 297,301 ---- this.handshakeMessages = new TlsStream(); this.sessionId = null; + this.random = RandomNumberGenerator.Create(); // Set client settings *************** *** 304,311 **** public int GetUnixTime() { ! DateTime now = DateTime.Now.ToUniversalTime(); ! TimeSpan unixTime = now.Subtract(new DateTime(1970, 1, 1)); ! ! return (int)unixTime.TotalSeconds; } --- 310,316 ---- public int GetUnixTime() { ! DateTime now = DateTime.UtcNow; ! ! return (int)(now.Ticks - UNIX_BASE_TICKS / TimeSpan.TicksPerSecond); } *************** *** 314,319 **** byte[] secureBytes = new byte[count]; ! RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); ! rng.GetNonZeroBytes(secureBytes); return secureBytes; --- 319,323 ---- byte[] secureBytes = new byte[count]; ! this.random.GetNonZeroBytes(secureBytes); return secureBytes; Index: TlsSslCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsSslCipherSuite.cs 10 Feb 2004 09:43:42 -0000 1.1 --- TlsSslCipherSuite.cs 18 Feb 2004 15:28:13 -0000 1.2 *************** *** 190,195 **** else { ! this.Context.ClientWriteIV = new byte[0]; ! this.Context.ServerWriteIV = new byte[0]; } } --- 190,195 ---- else { ! this.Context.ClientWriteIV = CipherSuite.EmptyArray; ! this.Context.ServerWriteIV = CipherSuite.EmptyArray; } } |