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
- SqlDuplicator.cs
- SqlDataSourceView.cs
- EntityWrapperFactory.cs
- WebControlAdapter.cs
- UrlPath.cs
- TextFormatterHost.cs
- CryptoStream.cs
- BuilderInfo.cs
- SqlBinder.cs
- RenderData.cs
- Inflater.cs
- DesignerAdapterUtil.cs
- CodeEntryPointMethod.cs
- DataGridViewCheckBoxColumn.cs
- EventEntry.cs
- MonthChangedEventArgs.cs
- DesigntimeLicenseContextSerializer.cs
- HeaderUtility.cs
- Debug.cs
- MissingSatelliteAssemblyException.cs
- WebPartsSection.cs
- SchemaImporterExtensionElement.cs
- ThreadStaticAttribute.cs
- AspNetCompatibilityRequirementsMode.cs
- ChannelServices.cs
- HandlerBase.cs
- UserMapPath.cs
- Console.cs
- Opcode.cs
- XmlConvert.cs
- UniqueID.cs
- SineEase.cs
- UInt32Converter.cs
- EntityDataSourceContextDisposingEventArgs.cs
- SynchronizationFilter.cs
- AsymmetricKeyExchangeFormatter.cs
- ZipFileInfoCollection.cs
- ColumnPropertiesGroup.cs
- DefaultValidator.cs
- DependencyPropertyChangedEventArgs.cs
- NativeMethods.cs
- Roles.cs
- ObjectListDataBindEventArgs.cs
- Italic.cs
- XmlArrayItemAttribute.cs
- hebrewshape.cs
- JobInputBins.cs
- ReturnValue.cs
- RubberbandSelector.cs
- AccessedThroughPropertyAttribute.cs
- SmtpTransport.cs
- LinearQuaternionKeyFrame.cs
- ElapsedEventArgs.cs
- AudioFileOut.cs
- WebPartDisplayModeCollection.cs
- ControlBindingsCollection.cs
- BrowserDefinition.cs
- PropertyIDSet.cs
- DTCTransactionManager.cs
- DataGridViewColumnConverter.cs
- MenuItemStyleCollection.cs
- printdlgexmarshaler.cs
- tibetanshape.cs
- WSHttpBinding.cs
- FrameworkReadOnlyPropertyMetadata.cs
- Interlocked.cs
- PlaceHolder.cs
- SafeSerializationManager.cs
- ProfileParameter.cs
- Debugger.cs
- PolyLineSegmentFigureLogic.cs
- XPathNavigatorKeyComparer.cs
- AddInController.cs
- ScaleTransform3D.cs
- MetaData.cs
- ThicknessAnimationUsingKeyFrames.cs
- FontUnit.cs
- BindingContext.cs
- ProxyDataContractResolver.cs
- EnvelopedSignatureTransform.cs
- TableCell.cs
- RectangleF.cs
- AppDomainFactory.cs
- counter.cs
- Thread.cs
- EncryptedData.cs
- WindowsListView.cs
- SearchExpression.cs
- DataGridParentRows.cs
- GridViewRowEventArgs.cs
- OleDbRowUpdatedEvent.cs
- ReadOnlyObservableCollection.cs
- Annotation.cs
- GeometryHitTestResult.cs
- HttpCapabilitiesSectionHandler.cs
- NativeMethods.cs
- CodeArgumentReferenceExpression.cs
- StackSpiller.Bindings.cs
- ParamArrayAttribute.cs
- ProcessThread.cs