diff --git a/Difi.Felles.Utility/CertificateChainValidator.cs b/Difi.Felles.Utility/CertificateChainValidator.cs
index b721023..960f1b8 100755
--- a/Difi.Felles.Utility/CertificateChainValidator.cs
+++ b/Difi.Felles.Utility/CertificateChainValidator.cs
@@ -1,6 +1,5 @@
using System;
using System.Linq;
-using System.Net.Mime;
using System.Security.Cryptography.X509Certificates;
using Difi.Felles.Utility.Exceptions;
@@ -23,8 +22,8 @@ public CertificateChainValidator(X509Certificate2Collection sertifikatLager)
///
public bool ErGyldigSertifikatkjede(X509Certificate2 sertifikat)
{
- X509ChainStatus[] kjedestatus;
- return ErGyldigSertifikatkjede(sertifikat, out kjedestatus);
+ X509ChainStatus[] chainStatuses;
+ return ErGyldigSertifikatkjede(sertifikat, out chainStatuses);
}
///
@@ -36,15 +35,15 @@ public bool ErGyldigSertifikatkjede(X509Certificate2 sertifikat)
///
public bool ErGyldigSertifikatkjede(X509Certificate2 sertifikat, out X509ChainStatus[] kjedestatus)
{
- var chain = ByggSertifikatKjede(sertifikat);
+ var chain = BuildCertificateChain(sertifikat);
kjedestatus = chain.ChainStatus;
- ValiderAtBrukerKunSertifikatLagerEllerKastException(chain,sertifikat);
+ ValidateThatUsingOnlyValidatorCertificatesOrThrow(chain,sertifikat);
- return ErGyldigSertifikatKjede(chain);
+ return IsValidCertificateChain(chain);
}
- private X509Chain ByggSertifikatKjede(X509Certificate2 sertifikat)
+ private X509Chain BuildCertificateChain(X509Certificate2 sertifikat)
{
var chain = new X509Chain
{
@@ -54,34 +53,34 @@ private X509Chain ByggSertifikatKjede(X509Certificate2 sertifikat)
return chain;
}
- private void ValiderAtBrukerKunSertifikatLagerEllerKastException(X509Chain chain, X509Certificate2 sertifikat)
+ private void ValidateThatUsingOnlyValidatorCertificatesOrThrow(X509Chain chain, X509Certificate2 sertifikat)
{
foreach (var chainElement in chain.ChainElements)
{
- var erSertifikatSomValideres = ErSammeSertifikat(chainElement.Certificate, sertifikat);
- if (erSertifikatSomValideres) { continue; }
+ var isCertificateToValidate = IsSameCertificate(chainElement.Certificate, sertifikat);
+ if (isCertificateToValidate) { continue; }
- var erISertifikatlager = SertifikatLager.Cast().Any(lagerSertifikat => ErSammeSertifikat(chainElement.Certificate, lagerSertifikat));
- if (erISertifikatlager) { continue; }
+ var isValidatorCertificate = SertifikatLager.Cast().Any(lagerSertifikat => IsSameCertificate(chainElement.Certificate, lagerSertifikat));
+ if (isValidatorCertificate) { continue; }
var chainAsString = chain.ChainElements.Cast().Aggregate("",(result, curr) => GetCertificateInfo(result, curr.Certificate));
- var lagerAsString = SertifikatLager.Cast().Aggregate("", GetCertificateInfo);
+ var validatorCertificatesAsString = SertifikatLager.Cast().Aggregate("", GetCertificateInfo);
throw new CertificateChainValidationException($"Validering av sertifikat '{sertifikat.Subject}' (thumbprint '{sertifikat.Thumbprint}') feilet. Dette skjer fordi kjeden ble bygd " +
- $"med følgende sertifikater {chainAsString}, men kun følgende er godkjent for å bygge kjeden: {lagerAsString}. Dette skjer som oftest " +
+ $"med følgende sertifikater {chainAsString}, men kun følgende er godkjent for å bygge kjeden: {validatorCertificatesAsString}. Dette skjer som oftest " +
"om sertifikater blir hentet fra Certificate Store på Windows, og det tillates ikke under validering. Det er kun gyldig å bygge en " +
"kjede med de sertifikatene sendt inn til validatoren.");
}
}
- private static bool ErSammeSertifikat(X509Certificate2 sertifikat1, X509Certificate2 sertifikat2)
+ private static bool IsSameCertificate(X509Certificate2 certificate1, X509Certificate2 certificate2)
{
- return sertifikat2.Thumbprint == sertifikat1.Thumbprint;
+ return certificate2.Thumbprint == certificate1.Thumbprint;
}
- private static string GetCertificateInfo(string current, X509Certificate2 chainchain)
+ private static string GetCertificateInfo(string current, X509Certificate2 certificate)
{
- return current + $"'{chainchain.Subject}' {Environment.NewLine}";
+ return current + $"'{certificate.Subject}' {Environment.NewLine}";
}
public X509ChainPolicy ChainPolicy()
@@ -96,9 +95,9 @@ public X509ChainPolicy ChainPolicy()
return policy;
}
- private static bool ErGyldigSertifikatKjede(X509Chain chain)
+ private static bool IsValidCertificateChain(X509Chain chain)
{
- if (!HarForventetLengde(chain, 3)) return false;
+ if (!HasExpectedLength(chain, 3)) return false;
var detailedErrorInformation = chain.ChainStatus;
switch (detailedErrorInformation.Length)
@@ -106,16 +105,16 @@ private static bool ErGyldigSertifikatKjede(X509Chain chain)
case 0:
return true;
case 1:
- var erUntrustedRootStatus = detailedErrorInformation.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot;
- return erUntrustedRootStatus;
+ var isUntrustedRootStatus = detailedErrorInformation.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot;
+ return isUntrustedRootStatus;
default:
return false;
}
}
- private static bool HarForventetLengde(X509Chain chain, int kjedelengde)
+ private static bool HasExpectedLength(X509Chain chain, int chainLength)
{
- return chain.ChainElements.Count == kjedelengde;
+ return chain.ChainElements.Count == chainLength;
}
}
}
\ No newline at end of file