Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Security / Cryptography / X509Certificates / TimestampInformation.cs / 1305376 / TimestampInformation.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== using System; using System.Diagnostics; using System.Security.Cryptography; using System.Security.Permissions; namespace System.Security.Cryptography.X509Certificates { ////// Details about the timestamp applied to a manifest's Authenticode signature /// [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public sealed class TimestampInformation { private CapiNative.AlgorithmId m_hashAlgorithmId; private DateTime m_timestamp; private X509Chain m_timestampChain; private SignatureVerificationResult m_verificationResult; private X509Certificate2 m_timestamper; //// [System.Security.SecurityCritical] internal TimestampInformation(X509Native.AXL_AUTHENTICODE_TIMESTAMPER_INFO timestamper) { m_hashAlgorithmId = timestamper.algHash; m_verificationResult = (SignatureVerificationResult)timestamper.dwError; ulong filetime = ((ulong)((uint)timestamper.ftTimestamp.dwHighDateTime) << 32) | (ulong)((uint)timestamper.ftTimestamp.dwLowDateTime); m_timestamp = DateTime.FromFileTimeUtc((long)filetime); if (timestamper.pChainContext != IntPtr.Zero) { m_timestampChain = new X509Chain(timestamper.pChainContext); } } internal TimestampInformation(SignatureVerificationResult error) { Debug.Assert(error != SignatureVerificationResult.Valid, "error != SignatureVerificationResult.Valid"); m_verificationResult = error; } ///// /// Hash algorithm the timestamp signature was calculated with /// public string HashAlgorithm { get { return CapiNative.GetAlgorithmName(m_hashAlgorithmId); } } ////// HRESULT from verifying the timestamp /// public int HResult { get { return CapiNative.HResultForVerificationResult(m_verificationResult); } } ////// Is the signature of the timestamp valid /// public bool IsValid { get { // Timestamp signatures are valid only if they were created by a trusted chain return VerificationResult == SignatureVerificationResult.Valid || VerificationResult == SignatureVerificationResult.CertificateNotExplicitlyTrusted; } } ////// Chain of certificates used to verify the timestamp /// public X509Chain SignatureChain { [StorePermission(SecurityAction.Demand, OpenStore = true, EnumerateCertificates = true)] get { return m_timestampChain; } } ////// Certificate that signed the timestamp /// public X509Certificate2 SigningCertificate { [StorePermission(SecurityAction.Demand, OpenStore = true, EnumerateCertificates = true)] get { if (m_timestamper == null && SignatureChain != null) { m_timestamper = SignatureChain.ChainElements[0].Certificate; } return m_timestamper; } } ////// When the timestamp was applied, expressed in local time /// public DateTime Timestamp { get { return m_timestamp.ToLocalTime(); } } ////// Result of verifying the timestamp signature /// public SignatureVerificationResult VerificationResult { get { return m_verificationResult; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowCollection.cs
- DataService.cs
- FormViewDeleteEventArgs.cs
- ClientApiGenerator.cs
- ValidationError.cs
- NetSectionGroup.cs
- XPathSelectionIterator.cs
- Enum.cs
- XmlRootAttribute.cs
- TextEditorCopyPaste.cs
- SspiNegotiationTokenProvider.cs
- AssemblyBuilder.cs
- dataSvcMapFileLoader.cs
- DifferencingCollection.cs
- DataTemplateSelector.cs
- BufferBuilder.cs
- AssociationSetEnd.cs
- PixelFormats.cs
- _NetRes.cs
- DynamicILGenerator.cs
- ClientRolePrincipal.cs
- MetadataItemEmitter.cs
- XmlQueryTypeFactory.cs
- FontFamilyValueSerializer.cs
- DrawingContext.cs
- DependencyPropertyValueSerializer.cs
- CompilerTypeWithParams.cs
- ExpressionBuilder.cs
- ComNativeDescriptor.cs
- BitSet.cs
- UInt64Storage.cs
- RulePatternOps.cs
- AspProxy.cs
- ColumnResizeAdorner.cs
- IisTraceWebEventProvider.cs
- DocumentPageTextView.cs
- PropertyToken.cs
- xml.cs
- DebugView.cs
- ExpandCollapseProviderWrapper.cs
- StagingAreaInputItem.cs
- Graph.cs
- SQLDecimalStorage.cs
- TraceContext.cs
- SchemaReference.cs
- CategoryNameCollection.cs
- NameService.cs
- PersistencePipeline.cs
- DateTimeParse.cs
- Membership.cs
- NamespaceEmitter.cs
- ServiceModelSecurityTokenTypes.cs
- IPHostEntry.cs
- FlowDocumentView.cs
- ResourceDescriptionAttribute.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- FilterFactory.cs
- AssemblyAssociatedContentFileAttribute.cs
- DescendantBaseQuery.cs
- SQLDateTimeStorage.cs
- EntitySqlQueryCacheEntry.cs
- ComboBox.cs
- activationcontext.cs
- PerfCounters.cs
- RegexRunner.cs
- DeploymentSection.cs
- SqlRetyper.cs
- BuildManager.cs
- TextEditor.cs
- TrustManagerPromptUI.cs
- CookieHandler.cs
- Dictionary.cs
- JsonEncodingStreamWrapper.cs
- ListViewItemEventArgs.cs
- PageContent.cs
- HttpListenerElement.cs
- GenericIdentity.cs
- CodeCommentStatement.cs
- Math.cs
- RawStylusInputReport.cs
- ObjectListSelectEventArgs.cs
- InfoCardSymmetricCrypto.cs
- SessionEndingEventArgs.cs
- PersistNameAttribute.cs
- DataObject.cs
- StringInfo.cs
- SelectionPatternIdentifiers.cs
- Type.cs
- DataGridViewHitTestInfo.cs
- Pair.cs
- ExceptionWrapper.cs
- ValueUtilsSmi.cs
- XmlSecureResolver.cs
- GridSplitterAutomationPeer.cs
- ReturnEventArgs.cs
- ImageIndexConverter.cs
- AspCompat.cs
- CompilerParameters.cs
- EncryptedData.cs
- AdPostCacheSubstitution.cs