75 lines
2.6 KiB
C#
75 lines
2.6 KiB
C#
|
//------------------------------------------------------------
|
||
|
// 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<SecurityKey> 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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|