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
- Quaternion.cs
- DataControlFieldHeaderCell.cs
- WindowsListView.cs
- WrappedIUnknown.cs
- StreamWriter.cs
- IndexOutOfRangeException.cs
- AliasExpr.cs
- WindowsListViewSubItem.cs
- ExpressionStringBuilder.cs
- PageBuildProvider.cs
- BufferedStream.cs
- TrayIconDesigner.cs
- ToolStripMenuItem.cs
- EncryptedPackage.cs
- CodeDomConfigurationHandler.cs
- ApplicationInfo.cs
- ValidatorCollection.cs
- ImageAutomationPeer.cs
- PerformanceCounterLib.cs
- Bezier.cs
- ObjectHandle.cs
- ConfigXmlAttribute.cs
- PaperSource.cs
- WindowsRichEdit.cs
- ParameterModifier.cs
- PropertyDescriptor.cs
- DataTableReader.cs
- HttpFileCollection.cs
- XmlStreamStore.cs
- RectValueSerializer.cs
- LogAppendAsyncResult.cs
- AsymmetricKeyExchangeFormatter.cs
- TagPrefixAttribute.cs
- LocalizedNameDescriptionPair.cs
- ChildTable.cs
- MostlySingletonList.cs
- DataGridViewMethods.cs
- HelpEvent.cs
- XPathParser.cs
- DataGridViewRowHeaderCell.cs
- DataMisalignedException.cs
- Variable.cs
- IHttpResponseInternal.cs
- TextEndOfParagraph.cs
- ObjectListFieldCollection.cs
- StagingAreaInputItem.cs
- ManifestResourceInfo.cs
- NumberFormatInfo.cs
- SymbolTable.cs
- SingleObjectCollection.cs
- TreeNodeStyleCollection.cs
- AbstractExpressions.cs
- CounterSet.cs
- VerticalAlignConverter.cs
- HttpServerVarsCollection.cs
- DateTimeFormatInfo.cs
- FixedSOMLineCollection.cs
- SqlServices.cs
- IsolatedStorageFileStream.cs
- OrthographicCamera.cs
- XmlUrlResolver.cs
- AsymmetricSignatureDeformatter.cs
- FragmentQuery.cs
- TableTextElementCollectionInternal.cs
- SqlDataSourceCommandParser.cs
- CngKeyCreationParameters.cs
- DrawListViewSubItemEventArgs.cs
- FastPropertyAccessor.cs
- PasswordBoxAutomationPeer.cs
- ProjectionCamera.cs
- UniqueContractNameValidationBehavior.cs
- DateTime.cs
- BufferedStream.cs
- PageAsyncTask.cs
- complextypematerializer.cs
- TableLayoutSettings.cs
- TextLineBreak.cs
- DbConnectionPoolGroupProviderInfo.cs
- ManipulationVelocities.cs
- AdornerHitTestResult.cs
- OrderedDictionaryStateHelper.cs
- DSASignatureDeformatter.cs
- precedingsibling.cs
- InvalidProgramException.cs
- LZCodec.cs
- Matrix3DStack.cs
- ScrollChrome.cs
- ConfigXmlCDataSection.cs
- CellConstant.cs
- SqlBuilder.cs
- MimeTextImporter.cs
- ParameterBuilder.cs
- LinkButton.cs
- Identifier.cs
- WebPartRestoreVerb.cs
- SimpleBitVector32.cs
- PassportAuthentication.cs
- TraceContext.cs
- versioninfo.cs
- MessageSecurityProtocol.cs