Ejemplo n.º 1
0
            public void Returns_ok_if_valid_certificate_and_chain()
            {
                //Arrange
                var funksjoneltTestmiljøSertifikater = CertificateChainUtility.FunksjoneltTestmiljøSertifikater();

                //Act
                var result = CertificateValidator.ValidateCertificateAndChain(CertificateResource.UnitTests.GetPostenCertificate(), "984661185", funksjoneltTestmiljøSertifikater);

                //Assert
                Assert.Equal(CertificateValidationType.Valid, result.Type);
            }
Ejemplo n.º 2
0
            public void Returns_fail_if_invalid_certificate_chain()
            {
                //Arrange
                var funksjoneltTestmiljøSertifikater = CertificateChainUtility.FunksjoneltTestmiljøSertifikater();

                //Act
                var result = CertificateValidator.ValidateCertificateAndChain(CertificateResource.UnitTests.GetValidSelfSignedTestCertificate(), "988015814", funksjoneltTestmiljøSertifikater);

                //Assert
                Assert.Equal(CertificateValidationType.InvalidChain, result.Type);
            }
        public static void ValidateAndThrowIfInvalid(X509Certificate2 senderCertificate, X509Certificate2Collection allowedChainCertificates)
        {
            var valideringsResultat = CertificateValidator.ValidateCertificateAndChain(
                senderCertificate,
                allowedChainCertificates
                );

            if (valideringsResultat.Type != CertificateValidationType.Valid)
            {
                throw new SertifikatException($"Sertifikatet som brukes for avsender er ikke gyldig. Prøver du å sende med et testsertifikat i produksjonsmiljø eller omvendt? Grunnen er '{valideringsResultat.Type.ToNorwegianString()}', beskrivelse: '{valideringsResultat.Message}'");
            }
        }
        private void ValidateDatabehandlerCertificateAndThrowIfInvalid(Databehandler databehandler, Miljø miljø)
        {
            var valideringsResultat = CertificateValidator.ValidateCertificateAndChain(
                databehandler.Sertifikat,
                databehandler.Organisasjonsnummer.Verdi,
                miljø.GodkjenteKjedeSertifikater
                );

            if (valideringsResultat.Type != CertificateValidationType.Valid)
            {
                throw new SecurityException($"Sertifikatet som brukes for { nameof(Databehandler) } er ikke gyldig. Prøver du å sende med et testsertifikat i produksjonsmiljø eller omvendt? Grunnen er '{valideringsResultat.Type.ToNorwegianString()}', beskrivelse: '{valideringsResultat.Message}'");
            }
        }
        private void ValidateResponseCertificate(X509Certificate2 certificate, string orgNr)
        {
            var certificateValidationResult = CertificateValidator.ValidateCertificateAndChain(
                certificate,
                orgNr,
                _certificateValidationProperties.AllowedChainCertificates
                );

            if (certificateValidationResult.Type != CertificateValidationType.Valid)
            {
                throw new SecurityException($"Sertifikatet som ble mottatt i responsen er ikke gyldig. Grunnen er '{certificateValidationResult.Type.ToNorwegianString()}', med melding '{certificateValidationResult.Message}'");
            }
        }
        internal void ValidateResponseCertificate(SignedXmlWithAgnosticId signed)
        {
            var          signature           = ResponseContainer.HeaderBinarySecurityToken.InnerText;
            var          value               = Convert.FromBase64String(signature);
            var          responseCertificate = new X509Certificate2(value);
            const string organizationNumberDirektoratetForForvaltningOgIkt = "991825827";

            var responseCertificateValidationResult = CertificateValidator.ValidateCertificateAndChain(
                responseCertificate,
                organizationNumberDirektoratetForForvaltningOgIkt,
                Environment.GodkjenteKjedeSertifikaterForRespons
                );

            if (responseCertificateValidationResult.Type != CertificateValidationType.Valid)
            {
                throw new SecurityException($"Sertifikatet som ble mottatt i responsen er ikke gyldig. Grunnen er '{responseCertificateValidationResult.Type.ToNorwegianString()}', med melding '{responseCertificateValidationResult.Message}'");
            }
        }