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
- ExpressionBuilderContext.cs
- BitmapEffectCollection.cs
- ObjectToIdCache.cs
- OleDbParameterCollection.cs
- Property.cs
- ScopelessEnumAttribute.cs
- DataGridItem.cs
- CriticalHandle.cs
- PagedControl.cs
- WebReferencesBuildProvider.cs
- CacheChildrenQuery.cs
- StatusCommandUI.cs
- ScriptControlDescriptor.cs
- SecurityState.cs
- ForAllOperator.cs
- StaticTextPointer.cs
- EditorPartCollection.cs
- MessagePartProtectionMode.cs
- GenericXmlSecurityToken.cs
- QueuePathDialog.cs
- ServiceNameCollection.cs
- MapPathBasedVirtualPathProvider.cs
- CellConstantDomain.cs
- EpmTargetPathSegment.cs
- ExceptionWrapper.cs
- CompoundFileStreamReference.cs
- Bits.cs
- WebPartTransformer.cs
- EntityTransaction.cs
- ListViewCommandEventArgs.cs
- AppDomainShutdownMonitor.cs
- MatrixTransform.cs
- XsltQilFactory.cs
- XhtmlConformanceSection.cs
- ExceptionHelpers.cs
- LightweightEntityWrapper.cs
- WithStatement.cs
- PlatformCulture.cs
- SQLChars.cs
- filewebrequest.cs
- DependencyPropertyKind.cs
- TraceData.cs
- DetailsViewUpdateEventArgs.cs
- CroppedBitmap.cs
- CultureInfoConverter.cs
- StringBuilder.cs
- ValueQuery.cs
- SystemSounds.cs
- ParsedAttributeCollection.cs
- XPathNodeInfoAtom.cs
- GeometryGroup.cs
- StylusPointPropertyId.cs
- Knowncolors.cs
- RemotingAttributes.cs
- CompositeActivityMarkupSerializer.cs
- Page.cs
- RegexRunner.cs
- IBuiltInEvidence.cs
- AlphabeticalEnumConverter.cs
- LineGeometry.cs
- login.cs
- DotAtomReader.cs
- ProgressChangedEventArgs.cs
- BreadCrumbTextConverter.cs
- TablePattern.cs
- SpecialFolderEnumConverter.cs
- WsdlBuildProvider.cs
- BuildTopDownAttribute.cs
- VScrollProperties.cs
- ClientBuildManager.cs
- BaseDataBoundControl.cs
- StaticTextPointer.cs
- MiniAssembly.cs
- MemberListBinding.cs
- DbException.cs
- SystemThemeKey.cs
- IssuanceLicense.cs
- AsyncCompletedEventArgs.cs
- backend.cs
- ByteRangeDownloader.cs
- WorkflowServiceHostFactory.cs
- XPathAncestorIterator.cs
- DataGridViewCheckBoxColumn.cs
- InputLanguageEventArgs.cs
- HitTestWithPointDrawingContextWalker.cs
- IsolatedStorageFile.cs
- SqlBulkCopyColumnMapping.cs
- CheckBoxAutomationPeer.cs
- EntityDataReader.cs
- DataGridViewSelectedRowCollection.cs
- InputLangChangeRequestEvent.cs
- ReliabilityContractAttribute.cs
- SerializationEventsCache.cs
- XmlTextReaderImpl.cs
- DrawListViewColumnHeaderEventArgs.cs
- XomlCompilerHelpers.cs
- PngBitmapDecoder.cs
- Win32SafeHandles.cs
- WebExceptionStatus.cs
- WindowAutomationPeer.cs