Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / X509Certificates / safex509handles.cs / 1305376 / 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 System.Runtime.Versioning; 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 [System.Security.SecurityCritical] // auto-generated 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 [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } [System.Security.SecurityCritical] // auto-generated 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 [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); [System.Security.SecurityCritical] 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 System.Runtime.Versioning; 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 [System.Security.SecurityCritical] // auto-generated 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 [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreePCertContext(IntPtr pCert); [System.Security.SecurityCritical] override protected bool ReleaseHandle() { _FreePCertContext(handle); return true; } } [System.Security.SecurityCritical] // auto-generated 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 [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] private static extern void _FreeCertStoreContext(IntPtr hCertStore); [System.Security.SecurityCritical] 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
- ContextMenuAutomationPeer.cs
- QueryOptionExpression.cs
- ZipIOLocalFileDataDescriptor.cs
- ArrayEditor.cs
- ObjectComplexPropertyMapping.cs
- CacheVirtualItemsEvent.cs
- ErrorActivity.cs
- FlowDocumentPaginator.cs
- SynchronizationScope.cs
- DecoderNLS.cs
- SectionVisual.cs
- StateManagedCollection.cs
- PrimitiveType.cs
- OleDbDataAdapter.cs
- UnsettableComboBox.cs
- ThrowOnMultipleAssignment.cs
- CookielessHelper.cs
- TextBreakpoint.cs
- ProcessInfo.cs
- RequestStatusBarUpdateEventArgs.cs
- WebPartEditorOkVerb.cs
- TransformerInfoCollection.cs
- counter.cs
- ProcessThread.cs
- Signature.cs
- SettingsSection.cs
- ParameterCollectionEditorForm.cs
- CategoryNameCollection.cs
- SymbolEqualComparer.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- XslException.cs
- OleDbInfoMessageEvent.cs
- RepeaterCommandEventArgs.cs
- SelectionItemPattern.cs
- XmlSerializerVersionAttribute.cs
- Typography.cs
- DbDataReader.cs
- InterleavedZipPartStream.cs
- ScaleTransform.cs
- BufferModeSettings.cs
- HttpModuleActionCollection.cs
- PathStreamGeometryContext.cs
- HtmlInputControl.cs
- NumericExpr.cs
- SelectionItemProviderWrapper.cs
- DataPagerFieldCollection.cs
- ToolStripPanelCell.cs
- OutOfProcStateClientManager.cs
- SqlDataSourceCache.cs
- ByteAnimationUsingKeyFrames.cs
- HijriCalendar.cs
- State.cs
- BinaryWriter.cs
- MenuCommandsChangedEventArgs.cs
- FontStyleConverter.cs
- Border.cs
- GacUtil.cs
- Imaging.cs
- Part.cs
- RequiredFieldValidator.cs
- HwndSubclass.cs
- ScriptDescriptor.cs
- FixedSchema.cs
- Underline.cs
- NavigationWindow.cs
- TextureBrush.cs
- SiteMapNodeItemEventArgs.cs
- JournalEntry.cs
- Rect3D.cs
- StaticExtension.cs
- ColumnMap.cs
- SchemaDeclBase.cs
- HorizontalAlignConverter.cs
- AnnotationResourceChangedEventArgs.cs
- TextEffect.cs
- SortDescriptionCollection.cs
- UIElement3D.cs
- RuntimeResourceSet.cs
- ByteRangeDownloader.cs
- ButtonStandardAdapter.cs
- SessionPageStateSection.cs
- DbConnectionPoolGroupProviderInfo.cs
- CacheSection.cs
- Verify.cs
- CalendarAutomationPeer.cs
- BitmapFrame.cs
- GPPOINT.cs
- TableItemPatternIdentifiers.cs
- OletxTransactionHeader.cs
- Stacktrace.cs
- SmtpReplyReader.cs
- recordstatescratchpad.cs
- AggregateException.cs
- IpcManager.cs
- Tokenizer.cs
- xmlglyphRunInfo.cs
- MatrixIndependentAnimationStorage.cs
- DbConnectionHelper.cs
- CompensableActivity.cs
- WsdlWriter.cs