File: System\ServiceModel\Security\ReceiveSecurityHeaderEntry.cs
Project: ndp\cdf\src\WCF\ServiceModel\System.ServiceModel.csproj (System.ServiceModel)
//----------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------
 
namespace System.ServiceModel.Security
{
    struct ReceiveSecurityHeaderEntry
    {
        internal ReceiveSecurityHeaderElementCategory elementCategory;
        internal object element;
        internal ReceiveSecurityHeaderBindingModes bindingMode;
        internal string id;
        internal string encryptedFormId;
        internal string encryptedFormWsuId;
        internal bool signed;
        internal bool encrypted;
        internal byte[] decryptedBuffer;
        internal TokenTracker supportingTokenTracker;
        internal bool doubleEncrypted;
 
        public bool MatchesId(string id, bool requiresEncryptedFormId)
        {
            if (doubleEncrypted)
            {
                return (this.encryptedFormId == id || this.encryptedFormWsuId == id);
            }
            else
            {
                if (requiresEncryptedFormId)
                {
                    return this.encryptedFormId == id;
                }
                else
                {
                    return this.id == id;
                }
            }
        }
 
        public void PreserveIdBeforeDecryption()
        {
            this.encryptedFormId = this.id;
        }
 
        public void SetElement(
            ReceiveSecurityHeaderElementCategory elementCategory, object element,
            ReceiveSecurityHeaderBindingModes bindingMode, string id, bool encrypted, byte[] decryptedBuffer, TokenTracker supportingTokenTracker)
        {
            this.elementCategory = elementCategory;
            this.element = element;
            this.bindingMode = bindingMode;
            this.encrypted = encrypted;
            this.decryptedBuffer = decryptedBuffer;
            this.supportingTokenTracker = supportingTokenTracker;
            this.id = id;
        }
    }
}