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
- TraceUtils.cs
- ViewBox.cs
- NamedPipeAppDomainProtocolHandler.cs
- UpdatePanelTrigger.cs
- FormViewPageEventArgs.cs
- LookupNode.cs
- DrawListViewColumnHeaderEventArgs.cs
- Icon.cs
- CompilationUnit.cs
- MessagePartDescriptionCollection.cs
- XPathDocumentBuilder.cs
- ColumnMapTranslator.cs
- EditorAttribute.cs
- PlaceHolder.cs
- NativeBuffer.cs
- InfoCardKeyedHashAlgorithm.cs
- ApplicationDirectoryMembershipCondition.cs
- ParagraphResult.cs
- FileEnumerator.cs
- Pointer.cs
- TemplateInstanceAttribute.cs
- FormsAuthenticationUser.cs
- XmlMemberMapping.cs
- EnumCodeDomSerializer.cs
- PageAdapter.cs
- ConnectionManagementElement.cs
- RepeatButton.cs
- _SslSessionsCache.cs
- PipelineModuleStepContainer.cs
- CompoundFileReference.cs
- VSDExceptions.cs
- TextBoxRenderer.cs
- XmlILIndex.cs
- CodePropertyReferenceExpression.cs
- SyntaxCheck.cs
- ContextMenuStripActionList.cs
- XmlException.cs
- ColumnResizeUndoUnit.cs
- BinaryObjectInfo.cs
- Pen.cs
- MexHttpsBindingCollectionElement.cs
- IndependentlyAnimatedPropertyMetadata.cs
- AsyncStreamReader.cs
- CompositeScriptReferenceEventArgs.cs
- MergeEnumerator.cs
- SqlDataReaderSmi.cs
- DeflateInput.cs
- DetailsViewPagerRow.cs
- EndpointAddressElementBase.cs
- ToolStripHighContrastRenderer.cs
- CompositeDesignerAccessibleObject.cs
- DefaultAsyncDataDispatcher.cs
- XmlChildEnumerator.cs
- TypeExtension.cs
- ModuleBuilder.cs
- IODescriptionAttribute.cs
- CompiledELinqQueryState.cs
- DataRow.cs
- TextProperties.cs
- PartManifestEntry.cs
- WorkflowHostingResponseContext.cs
- StorageEntityContainerMapping.cs
- StatusStrip.cs
- Msec.cs
- LoaderAllocator.cs
- OutgoingWebRequestContext.cs
- CommandDevice.cs
- LinkLabel.cs
- TimeSpan.cs
- TeredoHelper.cs
- EnumBuilder.cs
- ImageCodecInfoPrivate.cs
- UriSection.cs
- IdentifierService.cs
- TableAutomationPeer.cs
- Control.cs
- UIntPtr.cs
- ArgumentValidation.cs
- SessionEndedEventArgs.cs
- FindCriteriaCD1.cs
- XmlNullResolver.cs
- BookmarkUndoUnit.cs
- UserPreferenceChangingEventArgs.cs
- TableChangeProcessor.cs
- MobileUITypeEditor.cs
- XslUrlEditor.cs
- SelectedCellsCollection.cs
- COM2ColorConverter.cs
- DocumentViewer.cs
- CompiledIdentityConstraint.cs
- Renderer.cs
- ArcSegment.cs
- OrthographicCamera.cs
- Stroke.cs
- HashHelper.cs
- EntityTemplateFactory.cs
- InputReportEventArgs.cs
- DataGridViewButtonColumn.cs
- StrokeIntersection.cs
- ExpressionQuoter.cs