From: Sebastien Pouliot Date: Sun, 27 Mar 2011 20:54:02 +0000 (-0400) Subject: Do not throw in IsSelfSigned on non-RSA based certificates X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=b7d72d0c6af1bee9b870312d40e8df62ee38754b;p=mono.git Do not throw in IsSelfSigned on non-RSA based certificates * X509Certificate.cs: Handle DSA or DSA paramaters-only certificates in IsSeldSigned --- diff --git a/mcs/class/Mono.Security/Mono.Security.X509/X509Certificate.cs b/mcs/class/Mono.Security/Mono.Security.X509/X509Certificate.cs index e951e4bede2..c28e2f6bdbc 100644 --- a/mcs/class/Mono.Security/Mono.Security.X509/X509Certificate.cs +++ b/mcs/class/Mono.Security/Mono.Security.X509/X509Certificate.cs @@ -534,10 +534,20 @@ namespace Mono.Security.X509 { public bool IsSelfSigned { get { - if (m_issuername == m_subject) - return VerifySignature (RSA); - else + if (m_issuername != m_subject) return false; + + try { + if (RSA != null) + return VerifySignature (RSA); + else if (DSA != null) + return VerifySignature (DSA); + else + return false; // e.g. a certificate with only DSA parameters + } + catch (CryptographicException) { + return false; + } } }