Code:
/ DotNET / DotNET / 8.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
- StatusBar.cs
- ParagraphResult.cs
- LoadedOrUnloadedOperation.cs
- RequiredFieldValidator.cs
- SQLCharsStorage.cs
- DataGridRelationshipRow.cs
- ColorTransformHelper.cs
- OleDbDataReader.cs
- Control.cs
- ValidationUtility.cs
- ListViewItem.cs
- SemaphoreFullException.cs
- HttpRequestCacheValidator.cs
- WebPartEditorCancelVerb.cs
- COM2FontConverter.cs
- FormViewUpdateEventArgs.cs
- SecurityPermission.cs
- diagnosticsswitches.cs
- RelatedPropertyManager.cs
- BuildProvidersCompiler.cs
- ProxySimple.cs
- LineBreakRecord.cs
- XmlSerializerAssemblyAttribute.cs
- XmlQueryOutput.cs
- DesignerLinkAdapter.cs
- EventLogPermissionHolder.cs
- DbConnectionPoolIdentity.cs
- ConfigurationValidatorBase.cs
- OrderByBuilder.cs
- RightsManagementEncryptionTransform.cs
- FocusTracker.cs
- PerformanceCounterScope.cs
- RSAOAEPKeyExchangeFormatter.cs
- TransportDefaults.cs
- Win32PrintDialog.cs
- NamespaceCollection.cs
- CalculatedColumn.cs
- ContextItem.cs
- WebPartConnectionsDisconnectVerb.cs
- TemplateBamlTreeBuilder.cs
- HttpListenerContext.cs
- UniqueIdentifierService.cs
- PackageDigitalSignature.cs
- GridView.cs
- DictionarySurrogate.cs
- XmlNamespaceMapping.cs
- AstTree.cs
- ImagingCache.cs
- ControlCachePolicy.cs
- ClientSettings.cs
- SqlConnection.cs
- Restrictions.cs
- Rotation3DKeyFrameCollection.cs
- BindingBase.cs
- ProjectedSlot.cs
- XmlDataCollection.cs
- NamedPipeProcessProtocolHandler.cs
- NativeActivity.cs
- ClosableStream.cs
- ClientRuntimeConfig.cs
- TaskFileService.cs
- ProtectedConfigurationSection.cs
- LogicalExpr.cs
- ApplicationGesture.cs
- ObjectParameter.cs
- EnlistmentTraceIdentifier.cs
- XmlSortKey.cs
- MappingItemCollection.cs
- ObjectTypeMapping.cs
- DataQuery.cs
- FileResponseElement.cs
- SspiNegotiationTokenProvider.cs
- X509PeerCertificateAuthentication.cs
- List.cs
- PasswordRecovery.cs
- ControlPropertyNameConverter.cs
- DispatcherFrame.cs
- DataBoundControl.cs
- oledbconnectionstring.cs
- SiblingIterators.cs
- FunctionDescription.cs
- ConfigXmlAttribute.cs
- FtpCachePolicyElement.cs
- AnimationStorage.cs
- WindowsEditBox.cs
- ObjectAnimationBase.cs
- Scalars.cs
- AuthorizationSection.cs
- XmlQueryType.cs
- SortFieldComparer.cs
- ProjectionPathSegment.cs
- HierarchicalDataBoundControl.cs
- WaveHeader.cs
- ReachUIElementCollectionSerializer.cs
- ValueTypeFieldReference.cs
- CatalogPart.cs
- TextSelectionHighlightLayer.cs
- GridViewRowEventArgs.cs
- ImageListStreamer.cs
- ScrollPattern.cs