//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Security.Tokens { using System.Collections.ObjectModel; using System.ServiceModel; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Tokens; sealed class DerivedKeySecurityTokenStub : SecurityToken { string id; string derivationAlgorithm; string label; int length; byte[] nonce; int offset; int generation; SecurityKeyIdentifierClause tokenToDeriveIdentifier; public DerivedKeySecurityTokenStub(int generation, int offset, int length, string label, byte[] nonce, SecurityKeyIdentifierClause tokenToDeriveIdentifier, string derivationAlgorithm, string id) { this.id = id; this.generation = generation; this.offset = offset; this.length = length; this.label = label; this.nonce = nonce; this.tokenToDeriveIdentifier = tokenToDeriveIdentifier; this.derivationAlgorithm = derivationAlgorithm; } public override string Id { get { return this.id; } } public override DateTime ValidFrom { #pragma warning suppress 56503 // Property does not make sense for Derived Key tokens. get { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException()); } } public override DateTime ValidTo { #pragma warning suppress 56503 // Property does not make sense for Derived Key tokens. get { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException()); } } public override ReadOnlyCollection SecurityKeys { get { return null; } } public SecurityKeyIdentifierClause TokenToDeriveIdentifier { get { return this.tokenToDeriveIdentifier; } } public DerivedKeySecurityToken CreateToken(SecurityToken tokenToDerive, int maxKeyLength) { DerivedKeySecurityToken result = new DerivedKeySecurityToken(this.generation, this.offset, this.length, this.label, this.nonce, tokenToDerive, this.tokenToDeriveIdentifier, this.derivationAlgorithm, this.Id); result.InitializeDerivedKey(maxKeyLength); return result; } } }