Skip to content

Commit

Permalink
Fjerner sertifikat fra liste over de som brukes for å bygge kjede
Browse files Browse the repository at this point in the history
- Og prettyprinter listen. Nå ser den pittelittegranne finere ut!
  • Loading branch information
Aleksander Aas Sjåfjell committed Sep 27, 2016
1 parent 964aa72 commit 640fa31
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions Difi.Felles.Utility/CertificateChainValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,14 @@ private SertifikatValideringsResultat ValidateThatUsingOnlyValidatorCertificates
var isValidatorCertificate = SertifikatLager.Cast<X509Certificate2>().Any(lagerSertifikat => IsSameCertificate(chainElement.Certificate, lagerSertifikat));
if (isValidatorCertificate) { continue; }

var chainAsString = chain.ChainElements.Cast<X509ChainElement>().Aggregate("",(result, curr) => GetCertificateInfo(result, curr.Certificate));
var validatorCertificatesAsString = SertifikatLager.Cast<X509Certificate2>().Aggregate("", GetCertificateInfo);
var chainAsString = chain.ChainElements
.Cast<X509ChainElement>()
.Where(c => c.Certificate.Thumbprint != sertifikat.Thumbprint)
.Aggregate("",(result, curr) => GetCertificateInfo(result, curr.Certificate));

var validatorCertificatesAsString = SertifikatLager
.Cast<X509Certificate2>()
.Aggregate("", GetCertificateInfo);

return UsedExternalCertificatesResult(sertifikat, chainAsString, validatorCertificatesAsString);
}
Expand All @@ -102,7 +108,11 @@ private SertifikatValideringsResultat ValidateThatUsingOnlyValidatorCertificates

private static SertifikatValideringsResultat UsedExternalCertificatesResult(X509Certificate2 sertifikat, string chainAsString, string validatorCertificatesAsString)
{
return new SertifikatValideringsResultat(SertifikatValideringType.UgyldigKjede, $"Validering av sertifikat '{sertifikat.Info()}' feilet. Dette skjer fordi kjeden ble bygd 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.");
return new SertifikatValideringsResultat(SertifikatValideringType.UgyldigKjede,
$"Validering av sertifikat '{sertifikat.Info()}' feilet. {Environment.NewLine}" +
$"Dette skjer fordi kjeden ble bygd med følgende sertifikater: {Environment.NewLine}{chainAsString}, " +
$"men kun følgende er godkjent for å bygge kjeden: {Environment.NewLine}{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 IsSameCertificate(X509Certificate2 certificate1, X509Certificate2 certificate2)
Expand Down

0 comments on commit 640fa31

Please sign in to comment.