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
- ChildDocumentBlock.cs
- SiteMapPath.cs
- WebPartEditorOkVerb.cs
- SafeMILHandle.cs
- ReceiveParametersContent.cs
- XmlWriter.cs
- TraceData.cs
- TreeNodeBinding.cs
- SolidBrush.cs
- SecurityElement.cs
- TemplateControlBuildProvider.cs
- PublishLicense.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- VBCodeProvider.cs
- AssemblyGen.cs
- AddInProcess.cs
- DiagnosticTrace.cs
- AspNetHostingPermission.cs
- ValuePattern.cs
- ProbeMatchesApril2005.cs
- SQLUtility.cs
- DataGridAddNewRow.cs
- DataSourceProvider.cs
- TemplatedEditableDesignerRegion.cs
- AuthenticationSection.cs
- ConfigurationPropertyAttribute.cs
- ThicknessConverter.cs
- ListItemCollection.cs
- SmiXetterAccessMap.cs
- GeometryCollection.cs
- WindowsGraphics.cs
- SessionIDManager.cs
- StaticDataManager.cs
- Listbox.cs
- ComboBoxItem.cs
- RenderDataDrawingContext.cs
- GradientBrush.cs
- CopyNodeSetAction.cs
- EventsTab.cs
- XmlStringTable.cs
- MsmqIntegrationChannelListener.cs
- ButtonChrome.cs
- TransformerTypeCollection.cs
- ObjectDataSourceStatusEventArgs.cs
- MaskedTextProvider.cs
- OrCondition.cs
- FontStretchConverter.cs
- GeneratedView.cs
- DataControlFieldHeaderCell.cs
- InternalBufferManager.cs
- FlowDocumentReaderAutomationPeer.cs
- CultureTableRecord.cs
- ControlCachePolicy.cs
- XmlCustomFormatter.cs
- Int64.cs
- RegexMatchCollection.cs
- FontFamilyConverter.cs
- SQLDateTime.cs
- RuntimeHandles.cs
- LeafCellTreeNode.cs
- ObjectContext.cs
- HttpProfileBase.cs
- SerializationInfo.cs
- XmlStringTable.cs
- GridViewCancelEditEventArgs.cs
- GridViewSelectEventArgs.cs
- AssemblyBuilder.cs
- BackStopAuthenticationModule.cs
- AssemblyBuilder.cs
- DataBindingsDialog.cs
- SwitchLevelAttribute.cs
- MessageDecoder.cs
- SQLResource.cs
- WorkflowElementDialogWindow.xaml.cs
- GroupItem.cs
- PointAnimationUsingPath.cs
- CollectionView.cs
- ParameterCollection.cs
- WebPartVerbCollection.cs
- DebugView.cs
- EmbossBitmapEffect.cs
- AdCreatedEventArgs.cs
- arclist.cs
- Point3DConverter.cs
- WsdlBuildProvider.cs
- AxDesigner.cs
- ProviderUtil.cs
- TextRunCacheImp.cs
- Soap.cs
- MemberHolder.cs
- ObjectTag.cs
- TypeInitializationException.cs
- ReadOnlyDictionary.cs
- SmtpFailedRecipientException.cs
- QilVisitor.cs
- PartBasedPackageProperties.cs
- XmlSchemaSimpleType.cs
- OdbcInfoMessageEvent.cs
- RegexTypeEditor.cs
- documentation.cs