Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1305376 / safex509handles.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // SafeX509Handles.cs // namespace System.Security.Cryptography.X509Certificates { using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using System.Runtime.Versioning; using Microsoft.Win32.SafeHandles; // Since we need sometimes to delete the key container associated with a cert // context, the handle used in this class is actually a pointer // to a CERT_CTX unmanaged structure defined in COMX509Certificate.h [System.Security.SecurityCritical] // auto-generated internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertContextHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertContextHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertContextHandle InvalidHandle { get { return new SafeCertContextHandle(IntPtr.Zero); } } internal IntPtr pCertContext { get { if (handle == IntPtr.Zero) return IntPtr.Zero; return Marshal.ReadIntPtr(handle); } } // This method handles the case where pCert == NULL [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } [System.Security.SecurityCritical] // auto-generated internal sealed class SafeCertStoreHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertStoreHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertStoreHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertStoreHandle InvalidHandle { get { return new SafeCertStoreHandle(IntPtr.Zero); } } // This method handles the case where hCertStore == NULL [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreeCertStoreContext(handle); return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // SafeX509Handles.cs // namespace System.Security.Cryptography.X509Certificates { using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using System.Runtime.Versioning; using Microsoft.Win32.SafeHandles; // Since we need sometimes to delete the key container associated with a cert // context, the handle used in this class is actually a pointer // to a CERT_CTX unmanaged structure defined in COMX509Certificate.h [System.Security.SecurityCritical] // auto-generated internal sealed class SafeCertContextHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertContextHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertContextHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertContextHandle InvalidHandle { get { return new SafeCertContextHandle(IntPtr.Zero); } } internal IntPtr pCertContext { get { if (handle == IntPtr.Zero) return IntPtr.Zero; return Marshal.ReadIntPtr(handle); } } // This method handles the case where pCert == NULL [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } [System.Security.SecurityCritical] // auto-generated internal sealed class SafeCertStoreHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeCertStoreHandle() : base (true) {} // 0 is an Invalid Handle internal SafeCertStoreHandle(IntPtr handle) : base (true) { SetHandle(handle); } internal static SafeCertStoreHandle InvalidHandle { get { return new SafeCertStoreHandle(IntPtr.Zero); } } // This method handles the case where hCertStore == NULL [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreeCertStoreContext(handle); return true; } } } // 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
- assemblycache.cs
- SystemTcpStatistics.cs
- _ListenerResponseStream.cs
- ValueType.cs
- HotSpotCollection.cs
- HiddenFieldDesigner.cs
- StorageMappingFragment.cs
- CleanUpVirtualizedItemEventArgs.cs
- RectAnimationClockResource.cs
- String.cs
- DataGridViewColumnConverter.cs
- WebPartPersonalization.cs
- SqlDependency.cs
- BuildResultCache.cs
- Transform.cs
- _ChunkParse.cs
- DataGridTextBoxColumn.cs
- KeyTime.cs
- DataObjectEventArgs.cs
- CompilerHelpers.cs
- TagPrefixInfo.cs
- WebPartCloseVerb.cs
- ProjectionNode.cs
- WebBrowsableAttribute.cs
- SecurityPermission.cs
- SiteMapDataSourceDesigner.cs
- DependencySource.cs
- WindowsListViewGroup.cs
- SiteOfOriginContainer.cs
- ContextMenuStrip.cs
- BrowserDefinition.cs
- TypeBuilder.cs
- ResourceDescriptionAttribute.cs
- QuaternionRotation3D.cs
- SQLChars.cs
- ClonableStack.cs
- PathNode.cs
- PersistenceTypeAttribute.cs
- InfoCardRSACryptoProvider.cs
- CodeConditionStatement.cs
- InstancePersistenceEvent.cs
- AsymmetricSecurityProtocol.cs
- GiveFeedbackEvent.cs
- SafePEFileHandle.cs
- HtmlSelect.cs
- XmlSchemaParticle.cs
- KnowledgeBase.cs
- DataSourceListEditor.cs
- XamlTypeMapper.cs
- FileLogRecord.cs
- SiteMapSection.cs
- AppDomainResourcePerfCounters.cs
- DesignerProperties.cs
- SettingsContext.cs
- SiteOfOriginPart.cs
- DocumentSchemaValidator.cs
- HttpHandlersSection.cs
- SQLByteStorage.cs
- util.cs
- UInt16Storage.cs
- DictionaryCustomTypeDescriptor.cs
- DateTimeOffsetConverter.cs
- WsdlImporter.cs
- BindingOperations.cs
- DataSourceDescriptorCollection.cs
- DocumentOrderQuery.cs
- CacheRequest.cs
- XmlProcessingInstruction.cs
- LinkedResource.cs
- HttpHandlersSection.cs
- _AutoWebProxyScriptWrapper.cs
- QueryOutputWriterV1.cs
- MouseGesture.cs
- NameValueConfigurationElement.cs
- cache.cs
- DataGridViewColumnTypePicker.cs
- Visual3DCollection.cs
- ipaddressinformationcollection.cs
- PolicyValidator.cs
- AudioBase.cs
- IBuiltInEvidence.cs
- FlowPosition.cs
- XmlReader.cs
- OutputWindow.cs
- ObfuscationAttribute.cs
- FormViewInsertedEventArgs.cs
- DrawingGroup.cs
- SQLBoolean.cs
- TypeDescriptionProvider.cs
- Roles.cs
- TableCell.cs
- HttpHostedTransportConfiguration.cs
- HighlightComponent.cs
- ButtonBase.cs
- StyleHelper.cs
- AsyncPostBackErrorEventArgs.cs
- PolicyChain.cs
- ListViewHitTestInfo.cs
- WebBrowserContainer.cs
- DataGridViewColumnCollectionEditor.cs