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
- IPipelineRuntime.cs
- CommonObjectSecurity.cs
- HostUtils.cs
- NotifyIcon.cs
- InternalTypeHelper.cs
- Column.cs
- TextPattern.cs
- VariableValue.cs
- EntitySetBaseCollection.cs
- OleDbWrapper.cs
- DataGridViewColumnStateChangedEventArgs.cs
- SQLStringStorage.cs
- Renderer.cs
- ServiceDeploymentInfo.cs
- OutputCacheProfileCollection.cs
- _HTTPDateParse.cs
- DesignerValidationSummaryAdapter.cs
- SortAction.cs
- XmlSchemaComplexType.cs
- AssemblySettingAttributes.cs
- OpenTypeLayoutCache.cs
- ArrayElementGridEntry.cs
- BindingMAnagerBase.cs
- CompiledELinqQueryState.cs
- DataSourceCache.cs
- Identity.cs
- DynamicResourceExtension.cs
- FormClosingEvent.cs
- FilterQuery.cs
- CharEnumerator.cs
- WebEventCodes.cs
- DesignerProperties.cs
- AuthorizationRuleCollection.cs
- messageonlyhwndwrapper.cs
- IndexedString.cs
- ObjectResult.cs
- DeferredElementTreeState.cs
- TextDecorations.cs
- PersistenceProviderBehavior.cs
- ClosableStream.cs
- DbConnectionStringCommon.cs
- AutomationPatternInfo.cs
- NamespaceTable.cs
- Transactions.cs
- BufferedOutputStream.cs
- CompiledIdentityConstraint.cs
- Listbox.cs
- TextDecoration.cs
- DetailsViewCommandEventArgs.cs
- MenuCommandService.cs
- TableItemProviderWrapper.cs
- Subordinate.cs
- TimeZoneNotFoundException.cs
- ConfigurationLockCollection.cs
- FastEncoder.cs
- RequestCachingSection.cs
- RuntimeIdentifierPropertyAttribute.cs
- EntryWrittenEventArgs.cs
- MarkupCompilePass2.cs
- BidOverLoads.cs
- DbConnectionInternal.cs
- OutputCacheSettings.cs
- ScriptComponentDescriptor.cs
- Parameter.cs
- EntityViewGenerationAttribute.cs
- Brushes.cs
- EncryptedPackageFilter.cs
- XPathSelectionIterator.cs
- EnterpriseServicesHelper.cs
- OleAutBinder.cs
- ListSourceHelper.cs
- XamlVector3DCollectionSerializer.cs
- NumberFormatInfo.cs
- TracingConnectionListener.cs
- IdentityManager.cs
- DiagnosticTrace.cs
- URLString.cs
- Form.cs
- ConnectionPoint.cs
- SystemSounds.cs
- RenderingBiasValidation.cs
- baseshape.cs
- XmlEntityReference.cs
- ColorContext.cs
- ZipArchive.cs
- AxHost.cs
- OperationCanceledException.cs
- PageCatalogPartDesigner.cs
- SpeakCompletedEventArgs.cs
- SettingsAttributeDictionary.cs
- FormsAuthenticationCredentials.cs
- XomlCompiler.cs
- Table.cs
- CompilerError.cs
- HierarchicalDataBoundControl.cs
- DependentTransaction.cs
- BlobPersonalizationState.cs
- SequenceDesigner.xaml.cs
- CodeAttributeArgumentCollection.cs
- CombinedTcpChannel.cs