//----------------------------------------------------------------------- // <copyright file="UseKey.cs" company="Microsoft"> // Copyright (c) Microsoft Corporation. All rights reserved. // </copyright> //----------------------------------------------------------------------- namespace System.IdentityModel.Protocols.WSTrust { using System.IdentityModel.Tokens; /// <summary> /// This optional element enables the client to request the Identity provider to issue a token /// containing his public key which is specified under the 'UseKey' element. However, the client /// has to prove possesion of the key. In a WS-Security based SOAP message the client can add /// his certificate as an endorsing token to the Security header to prove possession of the key. /// </summary> public class UseKey { SecurityToken _token; SecurityKeyIdentifier _ski; /// <summary> /// Constructor for extensibility point /// </summary> public UseKey() : base() { } /// <summary> /// Creates an instance of <see cref="UseKey"/>. /// </summary> /// <param name="ski">A security key identifier which represents the existing key that should be used. </param> public UseKey(SecurityKeyIdentifier ski) : this(ski, null) { } /// <summary> /// Creates an instance of <see cref="UseKey"/>. /// </summary> /// <param name="token">A token which represents existing key that should be used.</param> public UseKey(SecurityToken token) : this(null, token) { } /// <summary> /// Creates an instance of <see cref="UseKey"/>. /// </summary> /// <param name="ski">A security key identifier which represents the existing key that should be used. </param> /// <param name="token">A token which represents existing key that should be used.</param> public UseKey(SecurityKeyIdentifier ski, SecurityToken token) { _ski = ski; _token = token; } /// <summary> /// Gets the security token. /// </summary> public SecurityToken Token { get { return _token; } } /// <summary> /// Gets the security key identifier. /// </summary> public SecurityKeyIdentifier SecurityKeyIdentifier { get { return _ski; } } } }