Skip to content

Commit

Permalink
Forbedringer etter draforespørsel med @froden
Browse files Browse the repository at this point in the history
- Fikset navn på metode og renskrev tekstene til å bli litt bedre
- Ble usikkerhet på om chain.ChainStatus alltid sier noe om kjeden validerte eller ikke, siden vi ikke bruker det resultatet direkte. Dette er sjekket opp og blir eksplisitt detailedErrorInformation som beskrevet i Microsoft documentation. ™
  • Loading branch information
Aleksander Aas Sjåfjell committed Sep 21, 2016
1 parent 3bfba14 commit a670014
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions Difi.Felles.Utility/CertificateChainValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public bool ErGyldigSertifikatkjede(X509Certificate2 sertifikat, out X509ChainSt
var chain = ByggSertifikatKjede(sertifikat);
kjedestatus = chain.ChainStatus;

ValiderBrukerValidatorSertifikaterEllerKastException(chain,sertifikat);
ValiderAtBrukerKunSertifikatLagerEllerKastException(chain,sertifikat);

return ErGyldigSertifikatKjede(chain);
}
Expand All @@ -54,7 +54,7 @@ private X509Chain ByggSertifikatKjede(X509Certificate2 sertifikat)
return chain;
}

private void ValiderBrukerValidatorSertifikaterEllerKastException(X509Chain chain, X509Certificate2 sertifikat)
private void ValiderAtBrukerKunSertifikatLagerEllerKastException(X509Chain chain, X509Certificate2 sertifikat)
{
foreach (var chainElement in chain.ChainElements)
{
Expand All @@ -69,8 +69,8 @@ private void ValiderBrukerValidatorSertifikaterEllerKastException(X509Chain chai

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 " +
$"om sertifikater blir hentet fra Certificate Store på Windows, og det tillates ikke under validering. Det er kun gyldig å bygge en " +
$"kjede med input {nameof(SertifikatLager)}.");
"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.");
}
}

Expand Down Expand Up @@ -100,13 +100,14 @@ private static bool ErGyldigSertifikatKjede(X509Chain chain)
{
if (!HarForventetLengde(chain, 3)) return false;

switch (chain.ChainStatus.Length)
var detailedErrorInformation = chain.ChainStatus;
switch (detailedErrorInformation.Length)
{
case 0:
return true;
case 1:
var erUntrustedStatus = chain.ChainStatus.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot;
return erUntrustedStatus;
var erUntrustedRootStatus = detailedErrorInformation.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot;
return erUntrustedRootStatus;
default:
return false;
}
Expand Down

0 comments on commit a670014

Please sign in to comment.