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
- MsmqInputSessionChannel.cs
- HttpStreamXmlDictionaryReader.cs
- Stackframe.cs
- XamlSerializerUtil.cs
- CodeBinaryOperatorExpression.cs
- DivideByZeroException.cs
- DigestComparer.cs
- DataBindingCollection.cs
- Int16.cs
- RotateTransform3D.cs
- isolationinterop.cs
- AutoResetEvent.cs
- InputBinding.cs
- _ProxyChain.cs
- AutomationPeer.cs
- HttpModuleCollection.cs
- CalloutQueueItem.cs
- ExtensionWindow.cs
- Configuration.cs
- TextEditorDragDrop.cs
- SystemResources.cs
- PseudoWebRequest.cs
- FormViewPageEventArgs.cs
- ExtractorMetadata.cs
- RegisteredScript.cs
- SByteStorage.cs
- Debug.cs
- MatrixCamera.cs
- MediaElementAutomationPeer.cs
- RuleElement.cs
- GridViewDeleteEventArgs.cs
- CheckBoxAutomationPeer.cs
- ReferenceEqualityComparer.cs
- ErrorEventArgs.cs
- DesignerActionPanel.cs
- CharacterString.cs
- IndexedSelectQueryOperator.cs
- DrawingGroup.cs
- Helpers.cs
- updatecommandorderer.cs
- ExplicitDiscriminatorMap.cs
- DataSetViewSchema.cs
- Variant.cs
- TemplatedMailWebEventProvider.cs
- ContentPosition.cs
- SuppressMergeCheckAttribute.cs
- IPEndPoint.cs
- MetadataItemSerializer.cs
- XsltCompileContext.cs
- CustomCredentialPolicy.cs
- SymbolEqualComparer.cs
- AdRotator.cs
- Style.cs
- UIElement.cs
- MetafileHeaderWmf.cs
- TreeNodeSelectionProcessor.cs
- DBSchemaRow.cs
- SimpleNameService.cs
- HtmlForm.cs
- LinkGrep.cs
- DocumentSchemaValidator.cs
- TextWriterEngine.cs
- COSERVERINFO.cs
- SHA1CryptoServiceProvider.cs
- MsmqPoisonMessageException.cs
- Util.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- CodeGenerator.cs
- RegistrationServices.cs
- DataObjectSettingDataEventArgs.cs
- TreeNodeBinding.cs
- ToggleProviderWrapper.cs
- VisualStyleElement.cs
- TextElementEnumerator.cs
- WmlListAdapter.cs
- FunctionNode.cs
- XhtmlBasicCommandAdapter.cs
- EntityViewGenerationAttribute.cs
- EventTrigger.cs
- SmiGettersStream.cs
- StylesEditorDialog.cs
- DisableDpiAwarenessAttribute.cs
- NavigationEventArgs.cs
- LiteralTextContainerControlBuilder.cs
- WebControlParameterProxy.cs
- WebGetAttribute.cs
- KeyInstance.cs
- CookieProtection.cs
- BitmapVisualManager.cs
- _AutoWebProxyScriptWrapper.cs
- DataGridViewSelectedCellCollection.cs
- SoapServerMethod.cs
- DocumentCollection.cs
- _ServiceNameStore.cs
- DataKeyArray.cs
- Nodes.cs
- SqlFacetAttribute.cs
- TimeoutConverter.cs
- UnsafeNetInfoNativeMethods.cs
- OdbcDataAdapter.cs