//----------------------------------------------------------------------- // <copyright file="ProtectedKey.cs" company="Microsoft"> // Copyright (c) Microsoft Corporation. All rights reserved. // </copyright> //----------------------------------------------------------------------- namespace System.IdentityModel.Protocols.WSTrust { using System.IdentityModel.Tokens; /// <summary> /// This class are used in defining Entropy and RequestProofToken element inside the /// RequestSecurityToken and RequestSecurityTokenResponse. /// </summary> public class ProtectedKey { byte[] _secret; EncryptingCredentials _wrappingCredentials; /// <summary> /// Use this constructor if we want to send the key material in clear text. /// </summary> /// <param name="secret">The key material that needs to be protected.</param> public ProtectedKey(byte[] secret) { _secret = secret; } /// <summary> /// Use this constructor if we want to send the key material encrypted. /// </summary> /// <param name="secret">The key material that needs to be protected.</param> /// <param name="wrappingCredentials">The encrypting credentials used to encrypt the key material.</param> public ProtectedKey(byte[] secret, EncryptingCredentials wrappingCredentials) { _secret = secret; _wrappingCredentials = wrappingCredentials; } /// <summary> /// Gets the key material. /// </summary> public byte[] GetKeyBytes() { return _secret; } /// <summary> /// Gets the encrypting credentials. Null means that the keys are not encrypted. /// </summary> public EncryptingCredentials WrappingCredentials { get { return _wrappingCredentials; } } } }