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
- CounterSetInstanceCounterDataSet.cs
- ToolStripPanelCell.cs
- OledbConnectionStringbuilder.cs
- DataSourceControl.cs
- ExceptQueryOperator.cs
- GridItem.cs
- PrePostDescendentsWalker.cs
- storepermissionattribute.cs
- SoapElementAttribute.cs
- Directory.cs
- ReceiveActivityDesignerTheme.cs
- UserUseLicenseDictionaryLoader.cs
- HostingEnvironmentException.cs
- XmlHierarchicalEnumerable.cs
- TextTreeObjectNode.cs
- SimpleWorkerRequest.cs
- SkewTransform.cs
- UserInitiatedRoutedEventPermission.cs
- SymDocumentType.cs
- XamlStream.cs
- SelectQueryOperator.cs
- ToolStripContentPanelRenderEventArgs.cs
- storepermissionattribute.cs
- IUnknownConstantAttribute.cs
- DynamicResourceExtensionConverter.cs
- WinFormsComponentEditor.cs
- CredentialCache.cs
- SafeBitVector32.cs
- Deserializer.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- DbExpressionVisitor.cs
- SymLanguageType.cs
- QueryOperatorEnumerator.cs
- DeclarationUpdate.cs
- CurrentChangedEventManager.cs
- IssuedTokensHeader.cs
- ListDictionaryInternal.cs
- DataGridPagerStyle.cs
- ComProxy.cs
- ApplicationDirectoryMembershipCondition.cs
- XmlAnyElementAttribute.cs
- BitVector32.cs
- PageAsyncTaskManager.cs
- ChildDocumentBlock.cs
- RadioButtonFlatAdapter.cs
- LocalValueEnumerator.cs
- ListBoxChrome.cs
- ViewGenerator.cs
- TaskFileService.cs
- TracedNativeMethods.cs
- FormatException.cs
- InboundActivityHelper.cs
- BitmapImage.cs
- FontStretchConverter.cs
- XamlBrushSerializer.cs
- StandardOleMarshalObject.cs
- ObjectFullSpanRewriter.cs
- PictureBoxDesigner.cs
- BitmapEffectDrawingContextWalker.cs
- XmlCompatibilityReader.cs
- ClientRoleProvider.cs
- EntityDataSourceEntityTypeFilterItem.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- UpdateCommand.cs
- filewebrequest.cs
- Command.cs
- CounterSet.cs
- EventMappingSettingsCollection.cs
- OdbcCommandBuilder.cs
- UIElement3DAutomationPeer.cs
- DivideByZeroException.cs
- Logging.cs
- BuildProvider.cs
- HttpFileCollection.cs
- SystemIPAddressInformation.cs
- NullRuntimeConfig.cs
- XmlBinaryReader.cs
- DBDataPermissionAttribute.cs
- ViewKeyConstraint.cs
- TrustVersion.cs
- TransactionalPackage.cs
- WebHostedComPlusServiceHost.cs
- Visual3DCollection.cs
- SoapProtocolImporter.cs
- Vector3DKeyFrameCollection.cs
- LogWriteRestartAreaState.cs
- UpdateInfo.cs
- ProcessHostServerConfig.cs
- AnonymousIdentificationModule.cs
- ContractValidationHelper.cs
- DiscardableAttribute.cs
- FixUpCollection.cs
- InvalidWMPVersionException.cs
- FlowDocumentPageViewerAutomationPeer.cs
- DataList.cs
- ACE.cs
- TokenBasedSet.cs
- IChannel.cs
- DocumentPage.cs
- Signature.cs