Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / SafeRsaProviderHandle.cs / 1 / SafeRsaProviderHandle.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.ComponentModel; using System.Globalization; using System.Runtime.InteropServices; using System.Runtime.ConstrainedExecution; using System.Security; using Microsoft.InfoCards.Diagnostics; using IDT=Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary: // Provides a wrapper over a handle retrieved by CryptAcquireContext // internal class SafeRsaProviderHandle : SafeHandle { [DllImport( "advapi32.dll", EntryPoint ="CryptAcquireContextW", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true ) ] [SuppressUnmanagedCodeSecurity] private static extern bool CryptAcquireContext( [Out] out SafeRsaProviderHandle hProv, [In] string pszContainer, [In] string pszProvider, [In] uint dwProvType, [In] uint dwFlags ); [DllImport( "advapi32.dll", EntryPoint = "CryptReleaseContext", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true ) ] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [SuppressUnmanagedCodeSecurity] private static extern bool CryptReleaseContext( [In] IntPtr hProv, [In] uint dwFlags ); public static SafeRsaProviderHandle Construct() { // // The native provider we use to do encryption and decryption and associated constants to // set up the Microsoft Enhanced RSA and AES provider // const uint CRYPT_VERIFYCONTEXT = 0xF0000000; const byte PROV_RSA_AES = 24; // // We use a null provider and CRYPT_VERIFYCONTEXT as a flag // to force the use of ephemeral keys. See http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B238187 // for details. // SafeRsaProviderHandle h; if( !SafeRsaProviderHandle.CryptAcquireContext( out h, null, null, PROV_RSA_AES, CRYPT_VERIFYCONTEXT ) ) { Win32Exception e = new Win32Exception( Marshal.GetLastWin32Error() ); IDT.CloseInvalidOutSafeHandle(h); IDT.TraceAndLogException( e ); throw IDT.ThrowHelperError( new CommunicationException( e.Message ) ); } return h; } private SafeRsaProviderHandle() : base( IntPtr.Zero, true ) { } public override bool IsInvalid { get { return ( IntPtr.Zero == base.handle ); } } protected override bool ReleaseHandle() { #pragma warning suppress 56523 return CryptReleaseContext( base.handle, 0 ); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Models.cs
- ImageBrush.cs
- Facet.cs
- DurableInstanceProvider.cs
- HwndStylusInputProvider.cs
- ListViewSortEventArgs.cs
- CodeMemberMethod.cs
- DataRelationCollection.cs
- TextServicesLoader.cs
- ActivityExecutorDelegateInfo.cs
- RepeaterItemEventArgs.cs
- IProvider.cs
- ObjectPropertyMapping.cs
- ClientSideQueueItem.cs
- UTF7Encoding.cs
- BadImageFormatException.cs
- Base64Encoder.cs
- QuaternionAnimation.cs
- LabelDesigner.cs
- clipboard.cs
- DateTimeParse.cs
- Subset.cs
- ChtmlFormAdapter.cs
- RectangleGeometry.cs
- SchemaElementLookUpTable.cs
- SimpleWebHandlerParser.cs
- WebPartEditorApplyVerb.cs
- ValidateNames.cs
- SeverityFilter.cs
- IfJoinedCondition.cs
- SqlInternalConnectionSmi.cs
- PasswordTextContainer.cs
- PerspectiveCamera.cs
- WebConfigManager.cs
- UserControlBuildProvider.cs
- HttpProfileBase.cs
- IgnoreDeviceFilterElementCollection.cs
- ValidationHelpers.cs
- XdrBuilder.cs
- Utils.cs
- TableChangeProcessor.cs
- XmlSchemaFacet.cs
- RowToParametersTransformer.cs
- ConnectivityStatus.cs
- DesignerAttribute.cs
- unsafenativemethodsother.cs
- LicenseContext.cs
- DeclarativeCatalogPart.cs
- XmlSchemaGroup.cs
- EntityClassGenerator.cs
- TextParentUndoUnit.cs
- _SslStream.cs
- HiddenField.cs
- Camera.cs
- AppDomainFactory.cs
- SuppressMessageAttribute.cs
- PopupEventArgs.cs
- GridItemCollection.cs
- ClientRuntimeConfig.cs
- AlphaSortedEnumConverter.cs
- CheckBoxField.cs
- LayoutTableCell.cs
- FunctionParameter.cs
- FileSecurity.cs
- ClientScriptManagerWrapper.cs
- AnimationException.cs
- SecureStringHasher.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- CodeCompiler.cs
- HostAdapter.cs
- ScaleTransform3D.cs
- EmbeddedMailObjectsCollection.cs
- PageFunction.cs
- SigningCredentials.cs
- DoubleAnimationUsingPath.cs
- PkcsMisc.cs
- unsafenativemethodstextservices.cs
- HttpWebResponse.cs
- UpdateProgress.cs
- EFTableProvider.cs
- GridViewSortEventArgs.cs
- FileLevelControlBuilderAttribute.cs
- XmlSyndicationContent.cs
- IPGlobalProperties.cs
- ReplyAdapterChannelListener.cs
- MobileFormsAuthentication.cs
- SecurityManager.cs
- XmlSerializerAssemblyAttribute.cs
- WindowsListView.cs
- ScrollChrome.cs
- MsmqOutputMessage.cs
- GlyphRunDrawing.cs
- FactoryMaker.cs
- FileUtil.cs
- ItemList.cs
- _HelperAsyncResults.cs
- ColorTransform.cs
- XmlLoader.cs
- WebPartHelpVerb.cs
- DetailsViewDeletedEventArgs.cs