Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Guzmán Álvarez <carlos@mono-cvs.ximian.com>2004-05-11 20:41:59 +0400
committerCarlos Guzmán Álvarez <carlos@mono-cvs.ximian.com>2004-05-11 20:41:59 +0400
commit6f94dbbcefb7ea41512a4071458413ea8ba1969b (patch)
treea0a93860f5e7bde94e23931af6c9a82139792bb3 /mcs/class/Mono.Security
parent8ac8a83197399166926c2a1de3c3042e48182474 (diff)
2004-05-11 Carlos Guzman Alvarez <carlosga@telefonica.net>
* Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs: - Added fix for better handling of exceptions when building the X509 Certificate chain. svn path=/trunk/mcs/; revision=27117
Diffstat (limited to 'mcs/class/Mono.Security')
-rw-r--r--mcs/class/Mono.Security/ChangeLog7
-rwxr-xr-xmcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/ChangeLog7
-rw-r--r--mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs23
3 files changed, 31 insertions, 6 deletions
diff --git a/mcs/class/Mono.Security/ChangeLog b/mcs/class/Mono.Security/ChangeLog
index 638bd51a4b6..236840ba508 100644
--- a/mcs/class/Mono.Security/ChangeLog
+++ b/mcs/class/Mono.Security/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-11 Carlos Guzman Alvarez <carlosga@telefonica.net>
+
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
+
+ - Added fix for better handling of exceptions when
+ building the X509 Certificate chain.
+
2004-05-11 Sebastien Pouliot <sebastien@ximian.com>
* Mono.Security_test.dll.sources: Added unit tests for Mono.Security.
diff --git a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/ChangeLog b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/ChangeLog
index 313ee3639b0..a31e6eddc41 100755
--- a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/ChangeLog
+++ b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-11 Carlos Guzman Alvarez <carlosga@telefonica.net>
+
+ * Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs:
+
+ - Added fix for better handling of exceptions when
+ building the X509 Certificate chain.
+
2004-04-22 Sebastien Pouliot <sebastien@ximian.com>
* TlsClientCertificateVerify.cs: Use Buffer.BlockCopy instead of
diff --git a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs
index 10516229876..bbf85e0f931 100644
--- a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs
+++ b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Client/TlsServerCertificate.cs
@@ -102,7 +102,7 @@ namespace Mono.Security.Protocol.Tls.Handshake.Client
buffer);
}
}
-
+
this.validateCertificates(certificates);
}
@@ -223,7 +223,18 @@ namespace Mono.Security.Protocol.Tls.Handshake.Client
chain.Remove (leaf);
X509Chain verify = new X509Chain (chain);
- if (!verify.Build (leaf))
+ bool result = false;
+
+ try
+ {
+ result = verify.Build (leaf);
+ }
+ catch (Exception)
+ {
+ result = false;
+ }
+
+ if (!result)
{
switch (verify.Status)
{
@@ -244,25 +255,25 @@ namespace Mono.Security.Protocol.Tls.Handshake.Client
case X509ChainStatusFlags.NotTimeValid:
// WinError.h CERT_E_EXPIRED 0x800B0101
- description = AlertDescription.CertificateExpired;
+ description = AlertDescription.CertificateExpired;
errors.Add ((int)-2146762495);
break;
case X509ChainStatusFlags.PartialChain:
// WinError.h CERT_E_CHAINING 0x800B010A
- description = AlertDescription.UnknownCA;
+ description = AlertDescription.UnknownCA;
errors.Add ((int)-2146762486);
break;
case X509ChainStatusFlags.UntrustedRoot:
// WinError.h CERT_E_UNTRUSTEDROOT 0x800B0109
- description = AlertDescription.UnknownCA;
+ description = AlertDescription.UnknownCA;
errors.Add ((int)-2146762487);
break;
default:
// unknown error
- description = AlertDescription.CertificateUnknown;
+ description = AlertDescription.CertificateUnknown;
errors.Add ((int)verify.Status);
break;
}