You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------
 | |
| // Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| //------------------------------------------------------------
 | |
| using System;
 | |
| using System.Security.Cryptography;
 | |
| using RSTR = System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse;
 | |
| 
 | |
| namespace System.IdentityModel.Tokens
 | |
| {
 | |
|     /// <summary>
 | |
|     /// This class can be used for issuing the asymmetric key based token.
 | |
|     /// </summary>
 | |
|     public class AsymmetricProofDescriptor : ProofDescriptor
 | |
|     {
 | |
|         SecurityKeyIdentifier _keyIdentifier;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Constructor for extensibility 
 | |
|         /// </summary>
 | |
|         public AsymmetricProofDescriptor()
 | |
|         {   
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Constructs a proof token based on RSA key.
 | |
|         /// </summary>
 | |
|         /// <param name="rsaAlgorithm"></param>
 | |
|         public AsymmetricProofDescriptor( RSA rsaAlgorithm )
 | |
|         {
 | |
|             if ( rsaAlgorithm == null )
 | |
|             {
 | |
|                 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull( "rsaAlgorithm" );
 | |
|             }
 | |
| 
 | |
|             _keyIdentifier = new SecurityKeyIdentifier(new RsaKeyIdentifierClause(rsaAlgorithm));
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Constructs a proof token based on key identifier.
 | |
|         /// </summary>
 | |
|         /// <param name="keyIdentifier"></param>
 | |
|         public AsymmetricProofDescriptor( SecurityKeyIdentifier keyIdentifier )
 | |
|         {
 | |
|             if ( keyIdentifier == null )
 | |
|             {
 | |
|                 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull( "keyIdentifier" );
 | |
|             }
 | |
|             //
 | |
|             // This is a key identifier for an asymmetric key
 | |
|             //
 | |
|             _keyIdentifier = keyIdentifier;
 | |
|         }
 | |
| 
 | |
|         #region ProofDescriptor Overrides
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Basically nothing to write into the RSTR's requested proof token.
 | |
|         /// </summary>
 | |
|         /// <param name="response"></param>
 | |
|         public override void ApplyTo( RSTR response )
 | |
|         {
 | |
|             if ( response == null )
 | |
|             {
 | |
|                 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull( "response" );
 | |
|             }
 | |
|             //
 | |
|             // Nothing else to do for an asymmetric key
 | |
|             //
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// This is the key identifier that the requestor has provided from the use key.
 | |
|         /// This can be echo back inside the saml token if needed. This would be either 
 | |
|         /// </summary>
 | |
|         public override SecurityKeyIdentifier KeyIdentifier
 | |
|         {
 | |
|             get { return _keyIdentifier; }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| }
 |