Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- DispatcherFrame.cs
- EditorPart.cs
- _SSPIWrapper.cs
- BaseCodePageEncoding.cs
- FormatterConverter.cs
- PropertyGridCommands.cs
- PropertyValueUIItem.cs
- SqlDependency.cs
- PageAsyncTaskManager.cs
- HttpErrorTraceRecord.cs
- SafeSecurityHandles.cs
- WindowsListViewGroupHelper.cs
- MemberNameValidator.cs
- DataExpression.cs
- SoapClientProtocol.cs
- XmlUtil.cs
- LookupBindingPropertiesAttribute.cs
- MiniConstructorInfo.cs
- PackagePart.cs
- mactripleDES.cs
- TextAnchor.cs
- ProtocolInformationReader.cs
- RuntimeResourceSet.cs
- SeekableReadStream.cs
- HtmlInputRadioButton.cs
- translator.cs
- WindowsNonControl.cs
- CacheMemory.cs
- selecteditemcollection.cs
- XmlDsigSep2000.cs
- connectionpool.cs
- RangeValidator.cs
- DLinqAssociationProvider.cs
- DataPagerFieldItem.cs
- ContainerControl.cs
- BaseUriWithWildcard.cs
- XmlExpressionDumper.cs
- RelationshipDetailsCollection.cs
- BamlWriter.cs
- ListBoxChrome.cs
- DataGridViewColumnEventArgs.cs
- SourceElementsCollection.cs
- CatalogZoneBase.cs
- ParseChildrenAsPropertiesAttribute.cs
- WebPartTransformerAttribute.cs
- OperationCanceledException.cs
- ClientBuildManager.cs
- MessageQueuePermissionAttribute.cs
- SqlGatherProducedAliases.cs
- FactoryGenerator.cs
- CacheSection.cs
- SspiHelper.cs
- InkCanvas.cs
- KeyProperty.cs
- SqlAliasesReferenced.cs
- BinHexDecoder.cs
- InstalledFontCollection.cs
- EntityKey.cs
- TagPrefixInfo.cs
- AssemblyCollection.cs
- ApplicationSecurityInfo.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- InstanceHandleConflictException.cs
- DataGridRow.cs
- SchemaNames.cs
- PipelineComponent.cs
- MetaModel.cs
- JavaScriptString.cs
- Main.cs
- XhtmlBasicValidatorAdapter.cs
- SqlConnectionHelper.cs
- ProfileParameter.cs
- SqlNodeAnnotations.cs
- BuildResult.cs
- PersonalizationDictionary.cs
- RecordsAffectedEventArgs.cs
- BinaryHeap.cs
- CustomAttributeBuilder.cs
- Bidi.cs
- HitTestParameters.cs
- TextLine.cs
- UnorderedHashRepartitionStream.cs
- MetadataArtifactLoaderCompositeFile.cs
- CallContext.cs
- HandledEventArgs.cs
- CodeDelegateCreateExpression.cs
- WebCategoryAttribute.cs
- PartitionResolver.cs
- SamlConditions.cs
- BuildProviderAppliesToAttribute.cs
- SafeSecurityHandles.cs
- WebDescriptionAttribute.cs
- TdsRecordBufferSetter.cs
- SimpleWorkerRequest.cs
- RecordConverter.cs
- ContextProperty.cs
- EarlyBoundInfo.cs
- ListViewCancelEventArgs.cs
- IdnElement.cs
- ReferentialConstraintRoleElement.cs