Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- Transform.cs
- TransformCryptoHandle.cs
- OSFeature.cs
- OutKeywords.cs
- EventLogLink.cs
- FontFaceLayoutInfo.cs
- Size3D.cs
- Calendar.cs
- SettingsBase.cs
- X509CertificateCollection.cs
- FormViewUpdateEventArgs.cs
- _SslSessionsCache.cs
- SelectedDatesCollection.cs
- BitmapPalettes.cs
- CodeAttributeDeclaration.cs
- DocumentViewerBaseAutomationPeer.cs
- GrabHandleGlyph.cs
- SimpleFieldTemplateUserControl.cs
- CustomExpressionEventArgs.cs
- OperationContextScope.cs
- ExpandCollapseProviderWrapper.cs
- DomNameTable.cs
- Metafile.cs
- ClientScriptManagerWrapper.cs
- ProfileProvider.cs
- __Filters.cs
- ControlOperationBehavior.cs
- PersonalizationStateQuery.cs
- SafeFileHandle.cs
- OrthographicCamera.cs
- TextElementEnumerator.cs
- ModelService.cs
- RegistryKey.cs
- PenLineJoinValidation.cs
- ItemMap.cs
- Baml6ConstructorInfo.cs
- EntityConnectionStringBuilder.cs
- MulticastNotSupportedException.cs
- GlyphRunDrawing.cs
- OutputWindow.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ObjectPersistData.cs
- EncryptedKey.cs
- PointUtil.cs
- HttpPostedFile.cs
- Helpers.cs
- COM2Enum.cs
- Boolean.cs
- PersonalizationStateInfo.cs
- SpellerError.cs
- ScriptingAuthenticationServiceSection.cs
- COM2PropertyDescriptor.cs
- StrokeFIndices.cs
- NativeMethods.cs
- PriorityChain.cs
- FlowDocumentScrollViewer.cs
- EventSinkHelperWriter.cs
- StreamGeometry.cs
- BoundsDrawingContextWalker.cs
- ImageMap.cs
- DictionaryBase.cs
- ArglessEventHandlerProxy.cs
- TextBlock.cs
- BaseCollection.cs
- MetadataHelper.cs
- HtmlInputText.cs
- XmlDataProvider.cs
- ReachSerializerAsync.cs
- SoapFormatterSinks.cs
- DispatchWrapper.cs
- LZCodec.cs
- XmlWhitespace.cs
- DataSetFieldSchema.cs
- ChannelDispatcherCollection.cs
- IndexedWhereQueryOperator.cs
- ScrollableControlDesigner.cs
- RuleSettings.cs
- TypeDependencyAttribute.cs
- ObjectParameter.cs
- InProcStateClientManager.cs
- SqlError.cs
- WebColorConverter.cs
- MatrixUtil.cs
- DataListItemCollection.cs
- DependsOnAttribute.cs
- SqlBulkCopy.cs
- StubHelpers.cs
- Figure.cs
- XmlUnspecifiedAttribute.cs
- WindowsStatic.cs
- XPathExpr.cs
- TaiwanLunisolarCalendar.cs
- DataListAutoFormat.cs
- ListViewItem.cs
- IntSecurity.cs
- RequestCacheManager.cs
- XmlnsDictionary.cs
- PresentationAppDomainManager.cs
- shaperfactoryquerycacheentry.cs
- SynchronizedKeyedCollection.cs