Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1 / 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 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 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); 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 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 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } 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 [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); 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
- NativeMethods.cs
- TextTreeFixupNode.cs
- FlowDocumentReader.cs
- ListViewUpdatedEventArgs.cs
- PropertyBuilder.cs
- Parser.cs
- BlurEffect.cs
- HttpVersion.cs
- XmlEventCache.cs
- WebPartTransformerAttribute.cs
- RuntimeConfigLKG.cs
- PasswordBox.cs
- ConfigurationValue.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ReflectionPermission.cs
- DataGridAutoFormatDialog.cs
- DataDesignUtil.cs
- SqlBooleanMismatchVisitor.cs
- EntityContainerEmitter.cs
- RepeaterItem.cs
- DetailsViewInsertEventArgs.cs
- ThrowHelper.cs
- NetTcpBindingCollectionElement.cs
- odbcmetadatacolumnnames.cs
- SqlConnectionString.cs
- ViewGenResults.cs
- BorderGapMaskConverter.cs
- SqlBuffer.cs
- DataGridColumnDropSeparator.cs
- AttributeUsageAttribute.cs
- propertytag.cs
- ConnectionAcceptor.cs
- BindingCompleteEventArgs.cs
- OdbcHandle.cs
- UpdatePanelTrigger.cs
- XmlSchemaExporter.cs
- ComplexBindingPropertiesAttribute.cs
- TextSearch.cs
- WindowsListViewSubItem.cs
- IPipelineRuntime.cs
- DataControlButton.cs
- AncestorChangedEventArgs.cs
- XPathAncestorQuery.cs
- EmitterCache.cs
- DrawingContextDrawingContextWalker.cs
- AppDomainResourcePerfCounters.cs
- TransportChannelFactory.cs
- SQLInt16.cs
- ConstraintEnumerator.cs
- WindowsListViewItemCheckBox.cs
- CachingHintValidation.cs
- SoapExtensionTypeElementCollection.cs
- ObjectDataSourceChooseTypePanel.cs
- InheritanceRules.cs
- MetaChildrenColumn.cs
- NavigatorOutput.cs
- Composition.cs
- SoapSchemaImporter.cs
- xml.cs
- DescendantQuery.cs
- MD5.cs
- DefaultBindingPropertyAttribute.cs
- XmlNode.cs
- RowVisual.cs
- OdbcConnectionOpen.cs
- DataBindingCollection.cs
- CursorConverter.cs
- LoginView.cs
- FormViewInsertedEventArgs.cs
- HitTestDrawingContextWalker.cs
- TransactionProxy.cs
- SslStream.cs
- VectorAnimationUsingKeyFrames.cs
- cache.cs
- GridViewUpdateEventArgs.cs
- AtomContentProperty.cs
- SafeFileMappingHandle.cs
- ClaimComparer.cs
- TextPointerBase.cs
- Context.cs
- DataBindingHandlerAttribute.cs
- FontStyles.cs
- XPathDescendantIterator.cs
- HostingPreferredMapPath.cs
- GridSplitter.cs
- ProfileService.cs
- NativeMethods.cs
- AsymmetricKeyExchangeDeformatter.cs
- FilteredAttributeCollection.cs
- X509RawDataKeyIdentifierClause.cs
- AppDomainUnloadedException.cs
- ToggleProviderWrapper.cs
- RNGCryptoServiceProvider.cs
- BaseTemplateBuildProvider.cs
- VectorCollectionValueSerializer.cs
- SuppressMergeCheckAttribute.cs
- SymmetricAlgorithm.cs
- ComplexPropertyEntry.cs
- RemotingConfigParser.cs
- CaseInsensitiveComparer.cs