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
- BufferedStream2.cs
- MergeLocalizationDirectives.cs
- Rect3DConverter.cs
- NamedPipeAppDomainProtocolHandler.cs
- BreadCrumbTextConverter.cs
- UserPreferenceChangingEventArgs.cs
- TextParagraphProperties.cs
- Pts.cs
- HMACSHA1.cs
- ValidationHelper.cs
- TPLETWProvider.cs
- OdbcReferenceCollection.cs
- XmlLoader.cs
- Module.cs
- BaseParser.cs
- HtmlButton.cs
- RoleManagerModule.cs
- DesignerSerializationVisibilityAttribute.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- InvalidOperationException.cs
- PtsHost.cs
- XPathItem.cs
- MSAAEventDispatcher.cs
- DataGridViewRowsAddedEventArgs.cs
- XmlSerializerFormatAttribute.cs
- httpserverutility.cs
- webproxy.cs
- XamlToRtfParser.cs
- ConfigurationStrings.cs
- PackageFilter.cs
- ImageFormatConverter.cs
- TablePatternIdentifiers.cs
- ProfilePropertyMetadata.cs
- AnnotationStore.cs
- CodeVariableReferenceExpression.cs
- ToolBarButtonClickEvent.cs
- HeaderedItemsControl.cs
- wgx_exports.cs
- RIPEMD160.cs
- ToolStripManager.cs
- Metafile.cs
- EFColumnProvider.cs
- HtmlPhoneCallAdapter.cs
- FloatSumAggregationOperator.cs
- SizeLimitedCache.cs
- DataGridHeaderBorder.cs
- QilXmlReader.cs
- ListManagerBindingsCollection.cs
- ExeConfigurationFileMap.cs
- EarlyBoundInfo.cs
- SerializationSectionGroup.cs
- StrongName.cs
- BasePattern.cs
- DefaultEventAttribute.cs
- SQLInt64.cs
- StorageRoot.cs
- CornerRadius.cs
- ErrorFormatter.cs
- ToolTipAutomationPeer.cs
- SchemaMapping.cs
- SByte.cs
- NavigationHelper.cs
- TrimSurroundingWhitespaceAttribute.cs
- PseudoWebRequest.cs
- BamlRecords.cs
- ContentElement.cs
- RadioButtonList.cs
- ContractType.cs
- IUnknownConstantAttribute.cs
- _OverlappedAsyncResult.cs
- EtwTrace.cs
- UserPreferenceChangingEventArgs.cs
- TypeElementCollection.cs
- MonthCalendar.cs
- Object.cs
- LayoutManager.cs
- GrammarBuilder.cs
- IsolatedStoragePermission.cs
- AstTree.cs
- Vector.cs
- PopupRootAutomationPeer.cs
- MetafileHeaderEmf.cs
- SingleTagSectionHandler.cs
- PropertyGridView.cs
- AssemblyAttributesGoHere.cs
- HandlerBase.cs
- InputBinder.cs
- SingleQueryOperator.cs
- AppSettingsSection.cs
- SortQuery.cs
- TextSimpleMarkerProperties.cs
- IdentifierService.cs
- MarkupWriter.cs
- AvTrace.cs
- MsmqIntegrationProcessProtocolHandler.cs
- GlobalEventManager.cs
- FixedTextBuilder.cs
- TimeSpanValidatorAttribute.cs
- DeviceContexts.cs