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
- ConfigurationStrings.cs
- FixedSOMTextRun.cs
- StylusPointDescription.cs
- _ShellExpression.cs
- X509AsymmetricSecurityKey.cs
- BeginEvent.cs
- CompressedStack.cs
- CardSpacePolicyElement.cs
- UIElementPropertyUndoUnit.cs
- Calendar.cs
- ExtensionSimplifierMarkupObject.cs
- SslStreamSecurityUpgradeProvider.cs
- Exceptions.cs
- DSACryptoServiceProvider.cs
- SqlUDTStorage.cs
- ClonableStack.cs
- TypeGeneratedEventArgs.cs
- CurrencyWrapper.cs
- PassportIdentity.cs
- EventLogEntry.cs
- GeneralTransform.cs
- HtmlAnchor.cs
- XamlWrappingReader.cs
- Identity.cs
- WizardSideBarListControlItem.cs
- Scheduler.cs
- loginstatus.cs
- VirtualDirectoryMappingCollection.cs
- BinaryFormatterWriter.cs
- WebPartTracker.cs
- TrackingStringDictionary.cs
- ReliableChannelListener.cs
- XmlToDatasetMap.cs
- OleDbConnection.cs
- SecurityKeyType.cs
- PathFigureCollectionValueSerializer.cs
- AppSecurityManager.cs
- PropertyGridView.cs
- FastEncoder.cs
- ZipFileInfo.cs
- StringResourceManager.cs
- AssertFilter.cs
- ReadOnlyMetadataCollection.cs
- MessageQuerySet.cs
- ContextQuery.cs
- Condition.cs
- XmlSchemaImporter.cs
- BamlRecords.cs
- PagerSettings.cs
- HttpListenerException.cs
- DataSpaceManager.cs
- SAPICategories.cs
- IERequestCache.cs
- SqlEnums.cs
- RIPEMD160.cs
- IntSecurity.cs
- WebPartEditorCancelVerb.cs
- _OverlappedAsyncResult.cs
- TypeUtils.cs
- CollectionConverter.cs
- WebContext.cs
- TraceHandlerErrorFormatter.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- GridViewDeleteEventArgs.cs
- WorkflowRuntimeServiceElementCollection.cs
- Material.cs
- Double.cs
- FileUtil.cs
- ConstructorBuilder.cs
- TerminateDesigner.cs
- XmlTextAttribute.cs
- RayMeshGeometry3DHitTestResult.cs
- MetadataItem_Static.cs
- HelpProvider.cs
- StrokeCollectionConverter.cs
- FileSystemEventArgs.cs
- securitycriticaldataClass.cs
- RoamingStoreFileUtility.cs
- NullableDecimalMinMaxAggregationOperator.cs
- BufferModeSettings.cs
- RecognitionResult.cs
- ProfileBuildProvider.cs
- EventEntry.cs
- TdsParser.cs
- Table.cs
- GorillaCodec.cs
- Brush.cs
- CriticalFinalizerObject.cs
- WebPartEditorOkVerb.cs
- ActivityMarkupSerializer.cs
- _ListenerResponseStream.cs
- EventPropertyMap.cs
- SerializationHelper.cs
- SetStoryboardSpeedRatio.cs
- Normalizer.cs
- ChtmlCalendarAdapter.cs
- BindingCompleteEventArgs.cs
- RadioButtonPopupAdapter.cs
- XmlSiteMapProvider.cs
- TextEditorThreadLocalStore.cs