Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1 / 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 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 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); 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 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 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); 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
- SqlCommandSet.cs
- TextRangeSerialization.cs
- XsdDateTime.cs
- RestHandler.cs
- TypedTableBase.cs
- Size3DConverter.cs
- ViewKeyConstraint.cs
- CodePageUtils.cs
- cookiecollection.cs
- FrameSecurityDescriptor.cs
- KeyBinding.cs
- LogicalCallContext.cs
- SmtpException.cs
- DataGridColumnHeader.cs
- OutputCacheProfile.cs
- EtwTrace.cs
- CanonicalXml.cs
- DataGridColumnStyleMappingNameEditor.cs
- IndexedString.cs
- WindowsListViewSubItem.cs
- StylusDownEventArgs.cs
- RadioButton.cs
- SqlBuilder.cs
- MessageBox.cs
- ResourceKey.cs
- GregorianCalendarHelper.cs
- XmlSerializationGeneratedCode.cs
- Package.cs
- XmlObjectSerializerWriteContext.cs
- WsatConfiguration.cs
- LineProperties.cs
- Char.cs
- Thread.cs
- UriTemplateMatch.cs
- AnimationStorage.cs
- BinaryUtilClasses.cs
- XmlTypeAttribute.cs
- DataServiceQuery.cs
- TrackingServices.cs
- FloaterBaseParaClient.cs
- Track.cs
- CellConstant.cs
- GroupItemAutomationPeer.cs
- StreamSecurityUpgradeInitiator.cs
- ISAPIRuntime.cs
- AuthenticatingEventArgs.cs
- SchemaContext.cs
- ContravarianceAdapter.cs
- userdatakeys.cs
- ReadonlyMessageFilter.cs
- CallContext.cs
- AddressAccessDeniedException.cs
- HttpCapabilitiesSectionHandler.cs
- SecurityToken.cs
- CommandEventArgs.cs
- SynchronizationHandlesCodeDomSerializer.cs
- BasicExpressionVisitor.cs
- TextTabProperties.cs
- LingerOption.cs
- Rectangle.cs
- ProcessHostMapPath.cs
- MenuAutoFormat.cs
- CounterSample.cs
- WindowsListViewSubItem.cs
- SessionEndingEventArgs.cs
- ColumnClickEvent.cs
- Common.cs
- IERequestCache.cs
- WebPartEditorApplyVerb.cs
- EncryptedKey.cs
- PrivilegedConfigurationManager.cs
- CompilationRelaxations.cs
- mediaeventshelper.cs
- DBSchemaTable.cs
- ReadOnlyPropertyMetadata.cs
- StrokeIntersection.cs
- RayMeshGeometry3DHitTestResult.cs
- QueryParameter.cs
- CopyNodeSetAction.cs
- Size3D.cs
- Vars.cs
- NamedElement.cs
- Partitioner.cs
- CompleteWizardStep.cs
- TypedTableBaseExtensions.cs
- BlurBitmapEffect.cs
- SystemBrushes.cs
- ValueTypeFixupInfo.cs
- SwitchElementsCollection.cs
- SharedPerformanceCounter.cs
- ItemDragEvent.cs
- LinkedResource.cs
- Adorner.cs
- MarshalDirectiveException.cs
- SecurityPolicySection.cs
- shaper.cs
- ByteStorage.cs
- GuidConverter.cs
- XmlException.cs
- WSDualHttpSecurityElement.cs