[pgsqlclient-checkins] pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls TlsAbstr
Status: Inactive
Brought to you by:
carlosga_fb
Update of /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls In directory sc8-pr-cvs1:/tmp/cvs-serv8391 Modified Files: TlsAbstractCipherSuite.cs TlsCipherSuite.cs TlsSocket.cs TlsSslCipherSuite.cs Log Message: * TlsSocket.cs: * TlsAbstractCipherSuite.cs: * TlsCipherSuite.cs: * TlsSslCipherSuite.cs: - Moved MAC generation methods to specific CipherSuite classes. Index: TlsAbstractCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/TlsAbstractCipherSuite.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsAbstractCipherSuite.cs 20 Oct 2003 10:00:20 -0000 1.1 --- TlsAbstractCipherSuite.cs 21 Oct 2003 12:17:10 -0000 1.2 *************** *** 236,239 **** --- 236,243 ---- #region ABSTRACT_METHODS + public abstract byte[] GenerateClientRecordMAC(TlsContentType contentType, byte[] fragment); + + public abstract byte[] GenerateServerRecordMAC(TlsContentType contentType, byte[] fragment); + public abstract byte[] EncryptRecord(byte[] fragment, byte[] mac); Index: TlsCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/TlsCipherSuite.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TlsCipherSuite.cs 20 Oct 2003 09:58:29 -0000 1.3 --- TlsCipherSuite.cs 21 Oct 2003 12:17:10 -0000 1.4 *************** *** 114,117 **** --- 114,157 ---- #endregion + #region MAC_GENERATION_METHOD + + public override byte[] GenerateServerRecordMAC(TlsContentType contentType, byte[] fragment) + { + TlsStream data = new TlsStream(); + byte[] result = null; + + data.Write(context.ReadSequenceNumber); + data.Write((byte)contentType); + data.Write((short)TlsProtocol.Tls1); + data.Write((short)fragment.Length); + data.Write(fragment); + + result = serverHMAC.ComputeHash(data.ToArray()); + + data.Reset(); + + return result; + } + + public override byte[] GenerateClientRecordMAC(TlsContentType contentType, byte[] fragment) + { + TlsStream data = new TlsStream(); + byte[] result = null; + + data.Write(context.WriteSequenceNumber); + data.Write((byte)contentType); + data.Write((short)TlsProtocol.Tls1); + data.Write((short)fragment.Length); + data.Write(fragment); + + result = clientHMAC.ComputeHash(data.ToArray()); + + data.Reset(); + + return result; + } + + #endregion + #region KEY_GENERATION_METODS Index: TlsSocket.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/TlsSocket.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TlsSocket.cs 20 Oct 2003 22:00:32 -0000 1.5 --- TlsSocket.cs 21 Oct 2003 12:17:10 -0000 1.6 *************** *** 270,274 **** { // Calculate message MAC ! byte[] mac = encodeClientRecordMAC(contentType, fragment); // Encrypt the message --- 270,274 ---- { // Calculate message MAC ! byte[] mac = this.session.Context.Cipher.GenerateClientRecordMAC(contentType, fragment); // Encrypt the message *************** *** 308,312 **** // Check MAC code ! byte[] mac = this.encodeServerRecordMAC(contentType, dcrFragment); // Check that the mac is correct --- 308,312 ---- // Check MAC code ! byte[] mac = this.session.Context.Cipher.GenerateServerRecordMAC(contentType, dcrFragment); // Check that the mac is correct *************** *** 510,549 **** this.inputBuffer.SetLength(0); this.inputBuffer.Position = 0; - } - - private byte[] encodeServerRecordMAC(TlsContentType contentType, byte[] fragment) - { - TlsStream data = new TlsStream(); - byte[] result = null; - - data.Write(session.Context.ReadSequenceNumber); - data.Write((byte)contentType); - data.Write((short)TlsProtocol.Tls1); - data.Write((short)fragment.Length); - data.Write(fragment); - - result = session.Context.Cipher.ServerHMAC.ComputeHash(data.ToArray()); - - data.Reset(); - - return result; - } - - private byte[] encodeClientRecordMAC(TlsContentType contentType, byte[] fragment) - { - TlsStream data = new TlsStream(); - byte[] result = null; - - data.Write(session.Context.WriteSequenceNumber); - data.Write((byte)contentType); - data.Write((short)TlsProtocol.Tls1); - data.Write((short)fragment.Length); - data.Write(fragment); - - result = session.Context.Cipher.ClientHMAC.ComputeHash(data.ToArray()); - - data.Reset(); - - return result; } --- 510,513 ---- Index: TlsSslCipherSuite.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security.Protocol.Tls/Mono.Security.Protocol.Tls/TlsSslCipherSuite.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TlsSslCipherSuite.cs 21 Oct 2003 09:31:41 -0000 1.2 --- TlsSslCipherSuite.cs 21 Oct 2003 12:17:10 -0000 1.3 *************** *** 114,117 **** --- 114,131 ---- #endregion + #region MAC_GENERATION_METHOD + + public override byte[] GenerateServerRecordMAC(TlsContentType contentType, byte[] fragment) + { + throw new NotSupportedException(); + } + + public override byte[] GenerateClientRecordMAC(TlsContentType contentType, byte[] fragment) + { + throw new NotSupportedException(); + } + + #endregion + #region KEY_GENERATION_METODS |