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
- WorkerRequest.cs
- FormViewAutoFormat.cs
- ProxyWebPart.cs
- UIElement.cs
- CaseExpr.cs
- WorkflowApplicationIdleEventArgs.cs
- DataGridViewComboBoxColumn.cs
- CommandHelper.cs
- ScaleTransform3D.cs
- CollaborationHelperFunctions.cs
- TraceContext.cs
- ReadOnlyDictionary.cs
- WebBrowserHelper.cs
- SettingsPropertyCollection.cs
- SignedXmlDebugLog.cs
- WebPartVerbCollection.cs
- SqlBulkCopyColumnMappingCollection.cs
- TileBrush.cs
- CompatibleIComparer.cs
- WindowsScrollBarBits.cs
- StateBag.cs
- ArcSegment.cs
- DataGridViewToolTip.cs
- RemotingConfigParser.cs
- DataTableTypeConverter.cs
- UserControlBuildProvider.cs
- JournalEntry.cs
- ToolStripCodeDomSerializer.cs
- StorageMappingItemLoader.cs
- ViewLoader.cs
- WebPartsPersonalization.cs
- CommunicationObject.cs
- UpDownEvent.cs
- HtmlPageAdapter.cs
- HtmlWindow.cs
- ItemsPanelTemplate.cs
- DataGridViewSelectedRowCollection.cs
- Viewport3DAutomationPeer.cs
- PasswordDeriveBytes.cs
- DisplayNameAttribute.cs
- StringUtil.cs
- FlatButtonAppearance.cs
- PeerPresenceInfo.cs
- ServiceOperationUIEditor.cs
- CapabilitiesSection.cs
- PublisherMembershipCondition.cs
- IDataContractSurrogate.cs
- BuildManagerHost.cs
- OptionUsage.cs
- HtmlForm.cs
- DispatcherOperation.cs
- TabletDevice.cs
- Timeline.cs
- BypassElementCollection.cs
- SerialReceived.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- GeometryConverter.cs
- IntSecurity.cs
- FixedBufferAttribute.cs
- TimeoutException.cs
- AnimationLayer.cs
- ValidatorCollection.cs
- LookupNode.cs
- CompositionAdorner.cs
- XmlEntityReference.cs
- NumericExpr.cs
- ClusterRegistryConfigurationProvider.cs
- Pen.cs
- RadialGradientBrush.cs
- CryptoApi.cs
- GroupStyle.cs
- HtmlCalendarAdapter.cs
- TextElementEnumerator.cs
- TableItemPattern.cs
- FixedStringLookup.cs
- ResourceWriter.cs
- TransportSecurityHelpers.cs
- MenuScrollingVisibilityConverter.cs
- EventSinkHelperWriter.cs
- PeerDuplexChannelListener.cs
- DelegateBodyWriter.cs
- SqlInternalConnectionSmi.cs
- File.cs
- SiteIdentityPermission.cs
- TextShapeableCharacters.cs
- WebPartConnectionsCloseVerb.cs
- KeySpline.cs
- ServiceCredentialsElement.cs
- ToolStrip.cs
- RightsManagementInformation.cs
- DbMetaDataFactory.cs
- Matrix.cs
- ModelVisual3D.cs
- TemplateBindingExpressionConverter.cs
- FormViewPageEventArgs.cs
- RubberbandSelector.cs
- ComponentEditorForm.cs
- SharedPersonalizationStateInfo.cs
- ListViewUpdateEventArgs.cs
- IndexerNameAttribute.cs