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
- QueryOperationResponseOfT.cs
- TraceSection.cs
- LineGeometry.cs
- SmiEventSink.cs
- SurrogateSelector.cs
- ViewStateModeByIdAttribute.cs
- CacheAxisQuery.cs
- ReadOnlyDictionary.cs
- ContentPresenter.cs
- HuffCodec.cs
- SqlDataSourceCache.cs
- BaseTemplateBuildProvider.cs
- AuthenticationConfig.cs
- SerializerWriterEventHandlers.cs
- ScriptBehaviorDescriptor.cs
- StringInfo.cs
- PageThemeBuildProvider.cs
- QilVisitor.cs
- IconBitmapDecoder.cs
- IListConverters.cs
- FileSecurity.cs
- OracleDataReader.cs
- DetailsViewCommandEventArgs.cs
- TileBrush.cs
- AddressHeaderCollectionElement.cs
- CultureSpecificStringDictionary.cs
- NativeCompoundFileAPIs.cs
- PartialCachingAttribute.cs
- UrlRoutingHandler.cs
- DefaultParameterValueAttribute.cs
- RelationshipEnd.cs
- ReadOnlyActivityGlyph.cs
- LateBoundBitmapDecoder.cs
- MobileCapabilities.cs
- DBConnection.cs
- FixedSOMImage.cs
- ClickablePoint.cs
- DockPattern.cs
- Collection.cs
- ConstraintEnumerator.cs
- LoadGrammarCompletedEventArgs.cs
- odbcmetadatacollectionnames.cs
- ManipulationStartingEventArgs.cs
- WmlLiteralTextAdapter.cs
- CreateUserWizardDesigner.cs
- QilChoice.cs
- DesignerInterfaces.cs
- MultipleFilterMatchesException.cs
- SByte.cs
- OdbcTransaction.cs
- CryptoConfig.cs
- FixedSOMFixedBlock.cs
- PackageRelationshipCollection.cs
- HttpDebugHandler.cs
- XmlWriterDelegator.cs
- SecurityException.cs
- HtmlControlPersistable.cs
- FutureFactory.cs
- SymbolMethod.cs
- LongValidatorAttribute.cs
- CustomAttributeSerializer.cs
- GraphicsState.cs
- HtmlInputHidden.cs
- __Filters.cs
- dbenumerator.cs
- CodeIterationStatement.cs
- SchemaTableOptionalColumn.cs
- ReadOnlyDataSource.cs
- DataGridCell.cs
- CompleteWizardStep.cs
- PrintingPermission.cs
- RenderContext.cs
- DataListCommandEventArgs.cs
- ProfileBuildProvider.cs
- TableItemProviderWrapper.cs
- URIFormatException.cs
- CatalogZoneAutoFormat.cs
- PersistenceTypeAttribute.cs
- SafeSecurityHandles.cs
- ErrorHandler.cs
- DataGridViewRowsRemovedEventArgs.cs
- PrintSchema.cs
- AutomationElementCollection.cs
- XmlChoiceIdentifierAttribute.cs
- TraceShell.cs
- SafeWaitHandle.cs
- GestureRecognizer.cs
- ReadOnlyPropertyMetadata.cs
- RijndaelManagedTransform.cs
- ConnectionPool.cs
- SizeAnimationClockResource.cs
- XmlAttributeCollection.cs
- SHA256Cng.cs
- TabletDeviceInfo.cs
- Comparer.cs
- IntPtr.cs
- MarkupProperty.cs
- TdsParser.cs
- WebConvert.cs
- CompoundFileIOPermission.cs