StrongNameSignatureInformation.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Security / Cryptography / StrongNameSignatureInformation.cs / 1305376 / StrongNameSignatureInformation.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 

using System; 
using System.Diagnostics; 
using System.Security.Cryptography;
 
namespace System.Security.Cryptography {
    /// 
    ///     Details about a strong name signature
    ///  
    [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
    public sealed class StrongNameSignatureInformation { 
        private SignatureVerificationResult m_verificationResult; 
        private AsymmetricAlgorithm m_publicKey;
 
        // All strong name signatures use SHA1 as their hash algorithm
        private static readonly string StrongNameHashAlgorithm =
            CapiNative.GetAlgorithmName(CapiNative.AlgorithmId.Sha1);
 
        internal StrongNameSignatureInformation(AsymmetricAlgorithm publicKey) {
            Debug.Assert(publicKey != null, "publicKey != null"); 
 
            m_verificationResult = SignatureVerificationResult.Valid;
            m_publicKey = publicKey; 
        }

        internal StrongNameSignatureInformation(SignatureVerificationResult error) {
            Debug.Assert(error != SignatureVerificationResult.Valid, "error != SignatureVerificationResult.Valid"); 

            m_verificationResult = error; 
        } 

        ///  
        ///     Hash algorithm used in calculating the strong name signature
        /// 
        public string HashAlgorithm {
            get { return StrongNameHashAlgorithm; } 
        }
 
        ///  
        ///     HRESULT version of the result code
        ///  
        public int HResult {
            get { return CapiNative.HResultForVerificationResult(m_verificationResult); }
        }
 
        /// 
        ///     Is the strong name signature valid, or was there some form of error 
        ///  
        public bool IsValid {
            get { return m_verificationResult == SignatureVerificationResult.Valid; } 
        }

        /// 
        ///     Public key used to create the signature 
        /// 
        public AsymmetricAlgorithm PublicKey { 
            get { return m_publicKey; } 
        }
 
        /// 
        ///     Results of verifying the strong name signature
        /// 
        public SignatureVerificationResult VerificationResult { 
            get { return m_verificationResult; }
        } 
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK