Skip to content

Commit

Permalink
Fikser etter draforespørsel
Browse files Browse the repository at this point in the history
- Output av info for sertifikater, deprecating av metoder, info til utvikler og bedre navn på klasser, metoder og variabler
- Fjerner tester for metoder som er deprecated. Disse blir ikke endret. Fjerner også tester i CertificateChainValidator som er like mtp logikk. Vi er nå helt uavhengige av Windows Certificate Store, så tester fra prod til test og andre veien er unødvendig.
  • Loading branch information
Aleksander Aas Sjåfjell committed Sep 27, 2016
1 parent 640fa31 commit 23289b5
Show file tree
Hide file tree
Showing 13 changed files with 191 additions and 292 deletions.
149 changes: 21 additions & 128 deletions Difi.Felles.Utility.Tester/CertificateChainValidatorTests.cs
Original file line number Diff line number Diff line change
@@ -1,167 +1,60 @@
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using Difi.Felles.Utility.Exceptions;
using Difi.Felles.Utility.Utilities;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Difi.Felles.Utility.Utilities;
using Xunit;
using Assert = Xunit.Assert;

namespace Difi.Felles.Utility.Tester
{

public class CertificateChainValidatorTests
{

public class ErGyldigSertifikatkjedeMethod : CertificateChainValidatorTests
public class ValidateCertificateChain : CertificateChainValidatorTests
{
[Fact]
public void Gyldig_produksjonssertifikat_når_validerer_mot_produksjonskjede()
{
//Arrange
var produksjonssertifikat = SertifikatUtility.GetProduksjonsMottakerSertifikatOppslagstjenesten();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());
var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(produksjonssertifikat);

//Assert
Assert.True(erGyldigResponssertifikat);
}

[Fact]
public void Gyldig_testsertifikat_når_validerer_mot_testkjede()
{
//Arrange
var testSertifikat = SertifikatUtility.GetFunksjoneltTestmiljøMottakerSertifikatOppslagstjenesten();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.FunksjoneltTestmiljøSertifikater());
var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(testSertifikat);

//Assert
Assert.True(erGyldigResponssertifikat);
}

[Fact]
public void Gyldig_produksjonssertifikat_og_kjedestatus_når_validerer_mot_produksjonskjede()
public void Valid_with_correct_root_and_intermediate()
{
//Arrange
var produksjonssertifikat = SertifikatUtility.GetProduksjonsMottakerSertifikatOppslagstjenesten();
X509ChainStatus[] kjedestatus;
var productionCertificate = SertifikatUtility.GetProduksjonsMottakerSertifikatOppslagstjenesten();
var certificateChainValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());
var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(produksjonssertifikat, out kjedestatus);
var result = certificateChainValidator.Validate(productionCertificate);

//Assert
const int forventetAntallStatusElementer = 0;
Assert.True(erGyldigResponssertifikat);
Assert.Equal(forventetAntallStatusElementer, kjedestatus.Length);
Assert.Equal(CertificateValidationType.Valid, result.Type);
Assert.Contains("et gyldig sertifikat", result.Message);
}

[Fact]
public void Gyldig_testsertifikat_og_kjedestatus_når_validerer_mot_testkjede()
public void Fails_with_wrong_root_and_intermediate()
{
//Arrange
var testSertifikat = SertifikatUtility.GetFunksjoneltTestmiljøMottakerSertifikatOppslagstjenesten();
X509ChainStatus[] kjedestatus;
var productionCertificate = SertifikatUtility.GetProduksjonsMottakerSertifikatOppslagstjenesten();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.FunksjoneltTestmiljøSertifikater());
var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(testSertifikat, out kjedestatus);
var certificateChainValidator = new CertificateChainValidator(CertificateChainUtility.FunksjoneltTestmiljøSertifikater());
var result = certificateChainValidator.Validate(productionCertificate);

//Assert
Assert.True(erGyldigResponssertifikat);
Assert.True((kjedestatus.Length == 0) || (kjedestatus.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot));
}

[Fact]
public void Feiler_med_selvsignert_sertifikat_når_validerer_mot_produksjonskjede()
{
//Arrange
var selvsignertSertifikat = SertifikatUtility.GetEnhetstesterSelvsignertSertifikat();
Assert.Equal(CertificateValidationType.InvalidChain, result.Type);
Assert.Contains("blir hentet fra Certificate Store på Windows", result.Message);

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());

var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(selvsignertSertifikat);

//Assert
Assert.False(erGyldigResponssertifikat);
}

[Fact]
public void Feiler_med_selvsignert_sertifikat_når_validerer_mot_testkjede()
public void Fails_with_self_signed_certificate()
{
//Arrange
var selvsignertSertifikat = SertifikatUtility.GetEnhetstesterSelvsignertSertifikat();
var selfSignedCertificate = SertifikatUtility.GetEnhetstesterSelvsignertSertifikat();
var certificateChainValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.FunksjoneltTestmiljøSertifikater());

var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(selvsignertSertifikat);
var result = certificateChainValidator.Validate(selfSignedCertificate);

//Assert
Assert.False(erGyldigResponssertifikat);
}

[Fact]
public void Feiler_med_selvsignert_sertifikat_og_kjedestatus_når_validerer_mot_produksjonskjede()
{
//Arrange
var selvsignertSertifikat = SertifikatUtility.GetEnhetstesterSelvsignertSertifikat();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());

X509ChainStatus[] kjedestatus;
var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(selvsignertSertifikat, out kjedestatus);

//Assert
Assert.False(erGyldigResponssertifikat);
Assert.True(kjedestatus.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot);
}

[Fact]
public void Feiler_med_selvsignert_sertifikat_og_kjedestatus_når_validerer_mot_testkjede()
{
var selvsignertSertifikat = SertifikatUtility.GetEnhetstesterSelvsignertSertifikat();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.FunksjoneltTestmiljøSertifikater());

X509ChainStatus[] kjedestatus;
var erGyldigResponssertifikat = sertifikatValidator.ErGyldigSertifikatkjede(selvsignertSertifikat, out kjedestatus);

//Assert
Assert.False(erGyldigResponssertifikat);
Assert.True(kjedestatus.ElementAt(0).Status == X509ChainStatusFlags.UntrustedRoot);
}

[Fact]
public void Feiler_med_produksjonssertifikat_når_validerer_mot_testkjede()
{
//Arrange
var produksjonssertifikat = SertifikatUtility.GetProduksjonsMottakerSertifikatOppslagstjenesten();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.FunksjoneltTestmiljøSertifikater());
var erGyldigSertifikatkjede = sertifikatValidator.ErGyldigSertifikatkjede(produksjonssertifikat);

Assert.False(erGyldigSertifikatkjede);
}

[Fact]
public void Feiler_med_testsertifikat_når_validerer_mot_produksjonskjede()
{
//Arrange
var testsertifikat = SertifikatUtility.GetFunksjoneltTestmiljøMottakerSertifikatOppslagstjenesten();

//Act
var sertifikatValidator = new CertificateChainValidator(CertificateChainUtility.ProduksjonsSertifikater());
var erGyldigSertifikatkjede = sertifikatValidator.ErGyldigSertifikatkjede(testsertifikat);
Assert.Equal(CertificateValidationType.InvalidChain, result.Type);
Assert.Contains("sertifikatet er selvsignert", result.Message);

Assert.False(erGyldigSertifikatkjede);
}
}
}
Expand Down
Loading

0 comments on commit 23289b5

Please sign in to comment.