Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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;
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScrollItemPatternIdentifiers.cs
- StringComparer.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- SQLGuid.cs
- RealizationDrawingContextWalker.cs
- CompositeFontFamily.cs
- PathFigureCollection.cs
- Timer.cs
- LoginCancelEventArgs.cs
- SafeRegistryKey.cs
- RegexWriter.cs
- SortDescription.cs
- BinaryObjectInfo.cs
- SqlDataSourceEnumerator.cs
- HttpConfigurationSystem.cs
- StyleConverter.cs
- ServiceInstallComponent.cs
- BasicHttpBindingElement.cs
- LogStream.cs
- SQLInt64.cs
- InputLanguageCollection.cs
- CubicEase.cs
- UTF7Encoding.cs
- WindowsToolbarAsMenu.cs
- WebPartZoneCollection.cs
- CommandBinding.cs
- SelectionProcessor.cs
- SmtpException.cs
- ReceiveSecurityHeaderElementManager.cs
- Comparer.cs
- ScriptDescriptor.cs
- SecurityContext.cs
- ContractCodeDomInfo.cs
- ValueHandle.cs
- PropertyPushdownHelper.cs
- XmlRootAttribute.cs
- RenderOptions.cs
- SHA384Cng.cs
- EventMappingSettings.cs
- Byte.cs
- WeakRefEnumerator.cs
- SiteMapDataSourceDesigner.cs
- CheckedListBox.cs
- WebPartHeaderCloseVerb.cs
- DbXmlEnabledProviderManifest.cs
- SettingsSection.cs
- CacheOutputQuery.cs
- GrabHandleGlyph.cs
- XmlILCommand.cs
- DesigntimeLicenseContext.cs
- CorruptStoreException.cs
- DSACryptoServiceProvider.cs
- X509ChainElement.cs
- ScriptManagerProxy.cs
- PanelDesigner.cs
- ActivityInstance.cs
- ParseHttpDate.cs
- IsolatedStorageFilePermission.cs
- RuntimeWrappedException.cs
- ContractBase.cs
- StylusPoint.cs
- TextEditorCharacters.cs
- CodeDelegateCreateExpression.cs
- MutableAssemblyCacheEntry.cs
- EmbeddedMailObjectsCollection.cs
- EdmFunctions.cs
- Button.cs
- ProgressBarHighlightConverter.cs
- RoutedEventValueSerializer.cs
- DataGridToolTip.cs
- PreservationFileWriter.cs
- CodeDelegateInvokeExpression.cs
- SendActivityDesignerTheme.cs
- TreeSet.cs
- Transform3DCollection.cs
- DataView.cs
- Span.cs
- SortExpressionBuilder.cs
- DocumentViewerBase.cs
- CodeTypeConstructor.cs
- TimeStampChecker.cs
- SHA1CryptoServiceProvider.cs
- ExecutionContext.cs
- ByteStorage.cs
- CachingHintValidation.cs
- UnsupportedPolicyOptionsException.cs
- GestureRecognizer.cs
- StringPropertyBuilder.cs
- XmlObjectSerializerWriteContext.cs
- LicenseProviderAttribute.cs
- BooleanExpr.cs
- SafeMILHandle.cs
- WebReferencesBuildProvider.cs
- PageAdapter.cs
- QueryParameter.cs
- View.cs
- DependencySource.cs
- LiteralControl.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- Util.cs