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())); }
private static MessagingContext CreateSignedUserMessageWrappedInContext() { MessagingContext messagingContext = CreateUserMessageWrappedInContext(); AS4Message as4Message = messagingContext.AS4Message; AS4MessageUtils.SignWithCertificate(as4Message, new StubCertificateRepository().GetStubCertificate()); return(messagingContext); }
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)); }
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); }
private static AS4Message SignAS4MessageWithCertificate(AS4Message message, X509Certificate2 certificate) { return(AS4MessageUtils.SignWithCertificate(message, certificate)); }