예제 #1
0
        /// <summary>
        /// Verifies if the digital signature on the AS4 Message is valid.
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public bool VerifySignature(VerifySignatureConfig config)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            var verifier = new SignatureVerificationStrategy(EnvelopeDocument);

            return(verifier.VerifySignature(config));
        }
예제 #2
0
            public async Task ThenVerifySignatureFailsWithUntrustedCertificate()
            {
                var as4Message = await GetAS4Message(Properties.Resources.as4_soap_untrusted_signed_message);

                // Assert to make sure that our arranged AS4Message is indeed signed.
                Assert.True(as4Message.IsSigned);

                var verificationStrategy = new SignatureVerificationStrategy(as4Message.EnvelopeDocument);

                // Act / Assert
                Assert.Throws <System.Security.Cryptography.CryptographicException>(
                    () => verificationStrategy.VerifySignature(AllowedUnknownRootCertAuthorityConfig()));
            }
예제 #3
0
            public async Task ThenSignStrategyVerifiesAS4MessageCorrectly()
            {
                // Arrange
                var as4Message = await GetAS4Message(Properties.Resources.as4_soap_signed_message);

                // Assert to make sure that our arranged AS4Message is indeed signed.
                Assert.True(as4Message.IsSigned);

                var verificationStrategy = new SignatureVerificationStrategy(as4Message.EnvelopeDocument);

                bool validSignature = verificationStrategy.VerifySignature(AllowedUnknownRootCertAuthorityConfig());

                Assert.True(validSignature);
            }