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
- SqlProcedureAttribute.cs
- CommandBinding.cs
- ServiceMemoryGates.cs
- ExtenderProvidedPropertyAttribute.cs
- MobileControlsSectionHelper.cs
- WindowsListViewGroup.cs
- XmlSchemaSimpleType.cs
- WebServiceTypeData.cs
- FileAuthorizationModule.cs
- ToolConsole.cs
- EventLogSession.cs
- MethodAccessException.cs
- Cursor.cs
- NamespaceQuery.cs
- hresults.cs
- QilCloneVisitor.cs
- Fault.cs
- Simplifier.cs
- ScaleTransform.cs
- SqlGatherProducedAliases.cs
- WebServiceResponseDesigner.cs
- XmlAttributeCollection.cs
- RoutedEventValueSerializer.cs
- FileStream.cs
- WindowsEditBoxRange.cs
- BamlLocalizer.cs
- XhtmlTextWriter.cs
- SqlVersion.cs
- BufferBuilder.cs
- AuthenticationModuleElementCollection.cs
- _ConnectStream.cs
- XmlSerializerFactory.cs
- StringInfo.cs
- CdpEqualityComparer.cs
- GuidTagList.cs
- ComNativeDescriptor.cs
- ToolStripPanelRenderEventArgs.cs
- GridViewRowCollection.cs
- SecurityException.cs
- precedingsibling.cs
- BindingNavigator.cs
- LocalsItemDescription.cs
- XmlAnyElementAttributes.cs
- NextPreviousPagerField.cs
- COM2ICategorizePropertiesHandler.cs
- DynamicRendererThreadManager.cs
- QilGenerator.cs
- XslCompiledTransform.cs
- TextRangeBase.cs
- GB18030Encoding.cs
- WithParamAction.cs
- DocumentSequenceHighlightLayer.cs
- CodeBinaryOperatorExpression.cs
- CircleHotSpot.cs
- PropertyGeneratedEventArgs.cs
- SQLByteStorage.cs
- XmlSubtreeReader.cs
- HwndKeyboardInputProvider.cs
- WebPart.cs
- AutoCompleteStringCollection.cs
- TypeExtension.cs
- AssemblyHelper.cs
- FileLogRecordHeader.cs
- ColorAnimationBase.cs
- MaskInputRejectedEventArgs.cs
- StrokeIntersection.cs
- WebPartConnectionsCancelEventArgs.cs
- SystemIPGlobalStatistics.cs
- ProcessingInstructionAction.cs
- InternalResources.cs
- QueryParameter.cs
- MasterPageBuildProvider.cs
- GotoExpression.cs
- RepeatButtonAutomationPeer.cs
- MarkupCompilePass1.cs
- WebPartUtil.cs
- DBConnection.cs
- Rotation3D.cs
- OdbcParameterCollection.cs
- DataObjectAttribute.cs
- DataServiceRequest.cs
- CreatingCookieEventArgs.cs
- odbcmetadatacolumnnames.cs
- DrawingContextDrawingContextWalker.cs
- XmlDocumentType.cs
- Wizard.cs
- RowToFieldTransformer.cs
- DataSvcMapFileSerializer.cs
- SmiXetterAccessMap.cs
- WebPartConnectionsCloseVerb.cs
- WebServiceAttribute.cs
- SortedDictionary.cs
- DataDesignUtil.cs
- SiteMapProvider.cs
- SortExpressionBuilder.cs
- EnumCodeDomSerializer.cs
- DispatcherHookEventArgs.cs
- NotifyParentPropertyAttribute.cs
- OverrideMode.cs
- DataColumnCollection.cs