[pgsqlclient-checkins] pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls SslHand
Status: Inactive
Brought to you by:
carlosga_fb
From: Carlos Guzm?n ?l. <car...@us...> - 2004-04-09 08:55:38
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32641 Modified Files: SslHandshakeHash.cs TlsClientSettings.cs Log Message: 2004-04-09 Carlos Guzman Alvarez <car...@te...> * Mono.Security.Protocol.Tls/TlsClientSettings.cs: - Added new CertificateRSA property. * Mono.Security.Protocol.Tls/SslHandshakeHash.cs: - Added two new methods: CreateSignature and VerifySignature. * Mono.Security.Protocol.Tls.Handshake.Client/TlsCertificateVerify.cs: - Added Ssl3 implementation. * Mono.Security.Protocol.Tls.Handshake.Server/TlsCertificateVerify.cs: - Added initial implementation. Index: SslHandshakeHash.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/SslHandshakeHash.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SslHandshakeHash.cs 15 Mar 2004 13:18:30 -0000 1.2 --- SslHandshakeHash.cs 9 Apr 2004 08:42:21 -0000 1.3 *************** *** 124,127 **** --- 124,157 ---- } + public byte[] CreateSignature(RSA rsa) + { + if (rsa == null) + { + throw new CryptographicUnexpectedOperationException ("missing key"); + } + + RSASslSignatureFormatter f = new RSASslSignatureFormatter(rsa); + f.SetHashAlgorithm("SslHash"); + + return f.CreateSignature(this.Hash); + } + + public bool VerifySignature(RSA rsa, byte[] rgbSignature) + { + if (rsa == null) + { + throw new CryptographicUnexpectedOperationException ("missing key"); + } + if (rgbSignature == null) + { + throw new ArgumentNullException ("rgbSignature"); + } + + RSASslSignatureDeformatter d = new RSASslSignatureDeformatter(rsa); + d.SetHashAlgorithm("SslHash"); + + return d.VerifySignature(this.Hash, rgbSignature); + } + #endregion Index: TlsClientSettings.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/Mono.Security/Mono.Security/Mono.Security.Protocol.Tls/TlsClientSettings.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TlsClientSettings.cs 10 Feb 2004 09:43:42 -0000 1.1 --- TlsClientSettings.cs 9 Apr 2004 08:42:21 -0000 1.2 *************** *** 26,29 **** --- 26,31 ---- using System.Text; using System.Security.Cryptography.X509Certificates; + using Mono.Security.Cryptography; + using X509 = Mono.Security.X509; namespace Mono.Security.Protocol.Tls *************** *** 37,40 **** --- 39,43 ---- private SecurityCompressionType compressionMethod; private X509Certificate clientCertificate; + private RSAManaged certificateRSA; #endregion *************** *** 70,76 **** { get { return this.clientCertificate; } ! set { this.clientCertificate = value; } } #endregion --- 73,87 ---- { get { return this.clientCertificate; } ! set ! { ! this.clientCertificate = value; ! this.UpdateCertificateRSA(); ! } } + public RSAManaged CertificateRSA + { + get { return this.certificateRSA; } + } #endregion *************** *** 86,89 **** --- 97,122 ---- #endregion + + #region Methods + + public void UpdateCertificateRSA() + { + if (this.clientCertificate == null) + { + this.certificateRSA = null; + } + else + { + X509.X509Certificate cert = new X509.X509Certificate(this.clientCertificate.GetRawCertData()); + + this.certificateRSA = new RSAManaged( + cert.RSA.KeySize); + + this.certificateRSA.ImportParameters( + cert.RSA.ExportParameters(false)); + } + } + + #endregion } } |