private static MessagingContext ContextWithSignedPullRequest(string expectedMpc, X509Certificate2 signingCertificate)
        {
            AS4Message message = AS4Message.Create(new PullRequest($"pr-{Guid.NewGuid()}", expectedMpc));

            message = AS4MessageUtils.SignWithCertificate(message, signingCertificate);

            return(new MessagingContext(message, MessagingContextMode.Send));
        }
        private static async Task <AS4Message> SignedUserMessage(string messageId)
        {
            AS4Message userMessage = AS4Message.Create(new UserMessage(messageId));

            userMessage.AddAttachment(new FilledAttachment());
            userMessage = await SerializeDeserializeMime(userMessage);

            return(AS4MessageUtils.SignWithCertificate(userMessage, new StubCertificateRepository().GetStubCertificate()));
        }
コード例 #3
0
        private static MessagingContext CreateSignedUserMessageWrappedInContext()
        {
            MessagingContext messagingContext = CreateUserMessageWrappedInContext();
            AS4Message       as4Message       = messagingContext.AS4Message;

            AS4MessageUtils.SignWithCertificate(as4Message, new StubCertificateRepository().GetStubCertificate());

            return(messagingContext);
        }
コード例 #4
0
        private static AS4Message SignedUserMessage(string messageId, SendingProcessingMode nrrPMode, X509Certificate2 cert)
        {
            AS4Message userMessage = AS4Message.Create(new UserMessage(messageId), nrrPMode);

            userMessage.AddAttachment(
                new Attachment(
                    id: "payload",
                    content: new MemoryStream(Encoding.UTF8.GetBytes("some content!")),
                    contentType: "text/plain"));

            return(AS4MessageUtils.SignWithCertificate(userMessage, cert));
        }
コード例 #5
0
        private static AS4Message SignedNRReceipt(X509Certificate2 cert, AS4Message signedUserMessage, Func <int, int> selection)
        {
            IEnumerable <Reference> hashes =
                signedUserMessage
                .SecurityHeader
                .GetReferences()
                .Select(r =>
            {
                r.DigestValue = r.DigestValue.Select(v => (byte)selection(v)).ToArray();
                return(Reference.CreateFromReferenceElement(r));
            });

            AS4Message receipt = AS4Message.Create(
                new Receipt(
                    messageId: $"receipt-{Guid.NewGuid()}",
                    refToMessageId: signedUserMessage.GetPrimaryMessageId(),
                    nonRepudiation: new NonRepudiationInformation(hashes)));

            return(AS4MessageUtils.SignWithCertificate(receipt, cert));
        }
        protected static async Task <AS4Message> NRRReceiptHashes(
            string messageId,
            AS4Message signedUserMessage,
            Func <byte[], byte[]> adaptHashes)
        {
            IEnumerable <Reference> references = signedUserMessage.SecurityHeader.GetReferences()
                                                 .Select(r => new Reference(
                                                             uri: r.Uri,
                                                             transforms: new ReferenceTransform[0],
                                                             digestMethod: new ReferenceDigestMethod(Constants.SignAlgorithms.Sha256),
                                                             digestValue: adaptHashes(r.DigestValue)));

            var receipt = new Receipt(
                messageId: $"receipt-{Guid.NewGuid()}",
                refToMessageId: messageId,
                nonRepudiation: new NonRepudiationInformation(references));

            return(await SerializeDeserializeSoap(
                       AS4MessageUtils.SignWithCertificate(
                           AS4Message.Create(receipt),
                           new StubCertificateRepository().GetStubCertificate())));
        }
            public async Task Succeeds_Verify_Bundled_Signed_AS4Message()
            {
                // Arrange
                var user       = new UserMessage($"user-{Guid.NewGuid()}");
                var receipt    = new Receipt($"receipt-{Guid.NewGuid()}", $"user-{Guid.NewGuid()}");
                var as4Message = AS4Message.Create(user);

                as4Message.AddMessageUnit(receipt);
                var        cert   = new X509Certificate2(holodeck_partya_certificate, certificate_password, X509KeyStorageFlags.Exportable);
                AS4Message signed = AS4MessageUtils.SignWithCertificate(as4Message, cert);

                signed = await SerializeDeserializeSoap(signed);

                var ctx = new MessagingContext(signed, MessagingContextMode.Receive)
                {
                    ReceivingPMode = ReceivingPModeWithAllowedSigningVerification()
                };

                // Act
                StepResult result = await ExerciseVerify(ctx);

                Assert.True(result.Succeeded);
            }
コード例 #8
0
 private static AS4Message SignAS4MessageWithCertificate(AS4Message message, X509Certificate2 certificate)
 {
     return(AS4MessageUtils.SignWithCertificate(message, certificate));
 }