<PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" />

System.ServiceModel.Security.WSSecureConversation

namespace System.ServiceModel.Security { internal abstract class WSSecureConversation : WSSecurityTokenSerializer.SerializerEntries { protected class DerivedKeyTokenEntry : WSSecurityTokenSerializer.TokenEntry { public const string DefaultLabel = "WS-SecureConversation"; public DerivedKeyTokenEntry(WSSecureConversation parent, int maxKeyDerivationOffset, int maxKeyDerivationLabelLength, int maxKeyDerivationNonceLength); public virtual void ReadDerivedKeyTokenParameters(XmlDictionaryReader reader, SecurityTokenResolver tokenResolver, out string id, out string derivationAlgorithm, out string label, out int length, out byte[] nonce, out int offset, out int generation, out SecurityKeyIdentifierClause tokenToDeriveIdentifier, out SecurityToken tokenToDerive); public virtual SecurityToken CreateDerivedKeyToken(string id, string derivationAlgorithm, string label, int length, byte[] nonce, int offset, int generation, SecurityKeyIdentifierClause tokenToDeriveIdentifier, SecurityToken tokenToDerive); } protected abstract class SecurityContextTokenEntry : WSSecurityTokenSerializer.TokenEntry { protected WSSecureConversation Parent { get; } public SecurityContextTokenEntry(WSSecureConversation parent, SecurityStateEncoder securityStateEncoder, IList<Type> knownClaimTypes); protected abstract bool CanReadGeneration(XmlDictionaryReader reader); protected abstract bool CanReadGeneration(XmlElement element); protected abstract UniqueId ReadGeneration(XmlDictionaryReader reader); protected abstract UniqueId ReadGeneration(XmlElement element); protected virtual void WriteGeneration(XmlDictionaryWriter writer, SecurityContextSecurityToken sct); } public abstract class Driver : SecureConversationDriver { protected abstract SecureConversationDictionary DriverDictionary { get; } public Driver(); } public abstract SecureConversationDictionary SerializerDictionary { get; } public WSSecurityTokenSerializer WSSecurityTokenSerializer { get; } public virtual string DerivationAlgorithm { get; } protected WSSecureConversation(WSSecurityTokenSerializer tokenSerializer, int maxKeyDerivationOffset, int maxKeyDerivationLabelLength, int maxKeyDerivationNonceLength); public virtual bool IsAtDerivedKeyToken(XmlDictionaryReader reader); public virtual void ReadDerivedKeyTokenParameters(XmlDictionaryReader reader, SecurityTokenResolver tokenResolver, out string id, out string derivationAlgorithm, out string label, out int length, out byte[] nonce, out int offset, out int generation, out SecurityKeyIdentifierClause tokenToDeriveIdentifier, out SecurityToken tokenToDerive); public virtual SecurityToken CreateDerivedKeyToken(string id, string derivationAlgorithm, string label, int length, byte[] nonce, int offset, int generation, SecurityKeyIdentifierClause tokenToDeriveIdentifier, SecurityToken tokenToDerive); } }