From 68ed5c07d554bfbbca55978842ba9088c0b10180 Mon Sep 17 00:00:00 2001 From: Martin Regen Date: Wed, 14 Sep 2016 12:55:41 +0200 Subject: [PATCH] cr feedback. keep set methods, but private. catch the bc exception and respect the throwOnError parameter. --- .../X509AuthorityKeyIdentifierExtension.cs | 3 +++ .../Opc.Ua.Core/Security/Certificates/X509CRL.cs | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Stack/Opc.Ua.Core/Security/Certificates/X509AuthorityKeyIdentifierExtension.cs b/Stack/Opc.Ua.Core/Security/Certificates/X509AuthorityKeyIdentifierExtension.cs index 8816980465..4ba5b6b99c 100644 --- a/Stack/Opc.Ua.Core/Security/Certificates/X509AuthorityKeyIdentifierExtension.cs +++ b/Stack/Opc.Ua.Core/Security/Certificates/X509AuthorityKeyIdentifierExtension.cs @@ -160,6 +160,7 @@ namespace Opc.Ua public string KeyId { get { return m_keyId; } + private set { m_keyId = value; } } /// @@ -168,6 +169,7 @@ namespace Opc.Ua public string[] AuthorityNames { get { return m_authorityNames; } + private set { m_authorityNames = value; } } /// @@ -176,6 +178,7 @@ namespace Opc.Ua public string SerialNumber { get { return m_serialNumber; } + private set { m_serialNumber = value; } } #endregion diff --git a/Stack/Opc.Ua.Core/Security/Certificates/X509CRL.cs b/Stack/Opc.Ua.Core/Security/Certificates/X509CRL.cs index 830dfe4188..82f1c19ec3 100644 --- a/Stack/Opc.Ua.Core/Security/Certificates/X509CRL.cs +++ b/Stack/Opc.Ua.Core/Security/Certificates/X509CRL.cs @@ -114,8 +114,19 @@ namespace Opc.Ua public bool VerifySignature(X509Certificate2 issuer, bool throwOnError) { m_issuer = issuer; - Org.BouncyCastle.X509.X509Certificate bccert = new X509CertificateParser().ReadCertificate(issuer.RawData); - m_crl.Verify(bccert.GetPublicKey()); + try + { + Org.BouncyCastle.X509.X509Certificate bccert = new X509CertificateParser().ReadCertificate(issuer.RawData); + m_crl.Verify(bccert.GetPublicKey()); + } + catch (Exception) + { + if (throwOnError) + { + throw new ServiceResultException(StatusCodes.BadCertificateInvalid, "Could not verify signature on CRL."); + } + return false; + } return true; }