Exemple #1
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));
        }