public Message SetupExecution() { ThrowIfProcessingStarted(); SetProcessingStarted(); bool signBody = false; if (ElementContainer.SourceSigningToken != null) { if (_signatureParts == null) { throw TraceUtility.ThrowHelperError(new ArgumentNullException(nameof(SignatureParts)), Message); } signBody = _signatureParts.IsBodyIncluded; } bool encryptBody = false; if (ElementContainer.SourceEncryptionToken != null) { if (_encryptionParts == null) { throw TraceUtility.ThrowHelperError(new ArgumentNullException(nameof(EncryptionParts)), Message); } encryptBody = _encryptionParts.IsBodyIncluded; } SecurityAppliedMessage message = new SecurityAppliedMessage(Message, this, signBody, encryptBody); Message = message; return(message); }
public override void ApplyBodySecurity(XmlDictionaryWriter writer, IPrefixGenerator prefixGenerator) { SecurityAppliedMessage message = SecurityAppliedMessage; switch (message.BodyProtectionMode) { case MessagePartProtectionMode.None: return; case MessagePartProtectionMode.Sign: var ms = new MemoryStream(); if (CanCanonicalizeAndFragment(writer)) { message.WriteBodyToSignWithFragments(ms, false, null, writer); } else { message.WriteBodyToSign(ms); } ms.Position = 0; AddReference("#" + message.BodyId, ms); return; case MessagePartProtectionMode.SignThenEncrypt: throw new PlatformNotSupportedException(); case MessagePartProtectionMode.Encrypt: throw new PlatformNotSupportedException(); case MessagePartProtectionMode.EncryptThenSign: throw new PlatformNotSupportedException(); default: Fx.Assert("Invalid MessagePartProtectionMode"); return; } }