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
- SettingsContext.cs
- PopupRootAutomationPeer.cs
- XmlQueryType.cs
- Pool.cs
- TextEffect.cs
- FileFormatException.cs
- DrawingGroup.cs
- PropertyKey.cs
- ThrowOnMultipleAssignment.cs
- Pts.cs
- IDictionary.cs
- OneOfScalarConst.cs
- DataPagerFieldItem.cs
- Composition.cs
- BitmapEffectCollection.cs
- TableRow.cs
- DataSourceHelper.cs
- MethodBody.cs
- XPathAncestorIterator.cs
- DeferredReference.cs
- SQLSingleStorage.cs
- SQLMembershipProvider.cs
- PoisonMessageException.cs
- BaseParser.cs
- CompositeTypefaceMetrics.cs
- Compiler.cs
- MultilineStringConverter.cs
- FixedTextView.cs
- AssemblyBuilderData.cs
- ListControl.cs
- WebPartZoneDesigner.cs
- SqlNotificationEventArgs.cs
- ImpersonationContext.cs
- ListSourceHelper.cs
- ServiceBuildProvider.cs
- DataMemberAttribute.cs
- KeyFrames.cs
- QueueSurrogate.cs
- TextCharacters.cs
- Misc.cs
- SafeNativeMethods.cs
- LingerOption.cs
- BindToObject.cs
- RegexCaptureCollection.cs
- XmlNodeReader.cs
- FastEncoderWindow.cs
- Brush.cs
- CompareValidator.cs
- SimpleType.cs
- WinCategoryAttribute.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- InputLanguage.cs
- ProviderException.cs
- ButtonStandardAdapter.cs
- HashHelpers.cs
- InitializationEventAttribute.cs
- ListViewEditEventArgs.cs
- Pair.cs
- Collection.cs
- NavigatingCancelEventArgs.cs
- TypeGeneratedEventArgs.cs
- DataFormats.cs
- StateFinalizationDesigner.cs
- QueryInterceptorAttribute.cs
- PkcsMisc.cs
- DrawingAttributes.cs
- SingletonChannelAcceptor.cs
- ExeConfigurationFileMap.cs
- ToolStripLocationCancelEventArgs.cs
- ElementProxy.cs
- PropertySourceInfo.cs
- EqualityArray.cs
- TransportListener.cs
- XXXInfos.cs
- ReferencedType.cs
- PageAsyncTaskManager.cs
- FileResponseElement.cs
- Geometry3D.cs
- EqualityComparer.cs
- TraceProvider.cs
- EmptyQuery.cs
- File.cs
- _TLSstream.cs
- SystemIPInterfaceProperties.cs
- PropertyManager.cs
- IntranetCredentialPolicy.cs
- HostingEnvironmentSection.cs
- SqlDependency.cs
- fixedPageContentExtractor.cs
- WindowsSolidBrush.cs
- PathParser.cs
- DataPager.cs
- CharacterHit.cs
- PropertyNames.cs
- PageParser.cs
- DataExpression.cs
- TraceLog.cs
- AccessDataSource.cs
- Exceptions.cs
- XmlException.cs