Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- OleDbCommand.cs
- NamespaceEmitter.cs
- Point.cs
- VariableAction.cs
- ChannelBinding.cs
- X509Utils.cs
- UITypeEditors.cs
- TreeChangeInfo.cs
- CodeVariableReferenceExpression.cs
- OdbcConnectionFactory.cs
- CodeNamespaceCollection.cs
- DateTimePicker.cs
- CompleteWizardStep.cs
- ContentElement.cs
- Padding.cs
- FontStyles.cs
- CodeExpressionCollection.cs
- BCLDebug.cs
- SortDescriptionCollection.cs
- SmiMetaData.cs
- TemplatePartAttribute.cs
- ApplicationInfo.cs
- CryptoStream.cs
- SqlEnums.cs
- SqlParameterizer.cs
- XmlTextReader.cs
- TextDecorationLocationValidation.cs
- IQueryable.cs
- GetUserPreferenceRequest.cs
- ScriptResourceAttribute.cs
- MimeTypeAttribute.cs
- ResizeGrip.cs
- Condition.cs
- IntPtr.cs
- securestring.cs
- WebPartPersonalization.cs
- WebPartActionVerb.cs
- DesignerDataView.cs
- columnmapkeybuilder.cs
- ImageInfo.cs
- MostlySingletonList.cs
- TextServicesLoader.cs
- ObjectStateFormatter.cs
- XmlSchemaSimpleTypeList.cs
- NetStream.cs
- GridViewUpdatedEventArgs.cs
- BitmapEffectrendercontext.cs
- WebScriptMetadataInstanceContextProvider.cs
- SyntaxCheck.cs
- XpsS0ValidatingLoader.cs
- ClusterSafeNativeMethods.cs
- SequenceDesignerAccessibleObject.cs
- CookieProtection.cs
- CacheMemory.cs
- TextTreeInsertElementUndoUnit.cs
- Crc32.cs
- ListViewGroup.cs
- SymbolMethod.cs
- FlowchartDesigner.xaml.cs
- OracleTransaction.cs
- SafeFileHandle.cs
- HtmlControlPersistable.cs
- documentsequencetextpointer.cs
- Triplet.cs
- RestHandler.cs
- CaseStatement.cs
- WindowsAuthenticationEventArgs.cs
- ColumnMapProcessor.cs
- ProviderCollection.cs
- OperatingSystem.cs
- DataComponentGenerator.cs
- FieldCollectionEditor.cs
- COM2IProvidePropertyBuilderHandler.cs
- RequestBringIntoViewEventArgs.cs
- DocumentsTrace.cs
- WebControl.cs
- ConfigXmlText.cs
- SoapClientMessage.cs
- ListBox.cs
- RequestCachePolicy.cs
- RectKeyFrameCollection.cs
- SetterBaseCollection.cs
- Paragraph.cs
- InternalBase.cs
- SingleAnimationBase.cs
- MouseGestureConverter.cs
- TogglePatternIdentifiers.cs
- MimeTypeMapper.cs
- ArrayList.cs
- ApplicationException.cs
- OdbcEnvironmentHandle.cs
- ColumnResult.cs
- ParserStack.cs
- LogWriteRestartAreaAsyncResult.cs
- PageCatalogPart.cs
- SqlColumnizer.cs
- ChunkedMemoryStream.cs
- AppSettingsReader.cs
- WebPartVerbCollection.cs
- BamlLocalizerErrorNotifyEventArgs.cs