Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / EncryptRequest.cs / 1 / EncryptRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.IO; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; using System.Security.Principal; using System.Diagnostics; // // Summary: // Manages an encryption request from the client against a specified cryptosession. // class EncryptRequest : ClientRequest { // // The cryptosession id we are attaching to. // int m_cryptoSession; // // Whether the data is padded using OAEP. // bool m_useOAEP; // // The cleartext data we wish to encrypt.. // byte[] m_cleartext; // // The encrypted data // byte[] m_encrypted; // // Sumamry: // Construct an EncyrptRequest object // // Arguments: // callingProcess - The process in which the caller originated. // callingIdentity - The WindowsIdentity of the caller // rpcHandle - The handle of the native RPC request // inArgs - The stream to read input data from // outArgs - The stream to write output data to // public EncryptRequest( Process callingProcess, WindowsIdentity callingIdentity, IntPtr rpcHandle, Stream inArgs, Stream outArgs ) : base( callingProcess, callingIdentity, rpcHandle, inArgs, outArgs ) { IDT.TraceDebug( "Intiating an Encrypt request" ); m_cryptoSession = 0; m_useOAEP = false; m_cleartext = null; m_encrypted = null; } protected override void OnMarshalInArgs() { IDT.DebugAssert( null != InArgs, "null inargs" ); BinaryReader reader = new InfoCardBinaryReader( InArgs ); // // Reader should have data in the order: // crytposession ( int32 ) // isOAEP ( int32 ) // cleartext len ( int32 ) // cleartext bytes // m_cryptoSession = reader.ReadInt32(); m_useOAEP = reader.ReadBoolean(); int count = reader.ReadInt32(); m_cleartext = reader.ReadBytes( count ); IDT.ThrowInvalidArgumentConditional( 0 == m_cryptoSession, "cryptoSession" ); IDT.ThrowInvalidArgumentConditional( null == m_cleartext || 0 == m_cleartext.Length, "clearText" ); } // // Summary: // Attach to the appropriate cryptosession and encrypt the data. // protected override void OnProcess() { IDT.DebugAssert( 0 != m_cryptoSession, "null crypto session" ); IDT.DebugAssert( null != m_cleartext && 0 != m_cleartext.Length, "null cleartext data" ); try { AsymmetricCryptoSession session = (AsymmetricCryptoSession) CryptoSession.Find( m_cryptoSession, CallerPid, RequestorIdentity.User ); m_encrypted = session.Encrypt( m_useOAEP, m_cleartext ); } finally { Array.Clear( m_cleartext, 0, m_cleartext.Length ); } } protected override void OnMarshalOutArgs() { IDT.DebugAssert( null != OutArgs, "Null out args" ); IDT.DebugAssert( null != m_encrypted, "null encrypted buffer" ); BinaryWriter writer = new BinaryWriter( OutArgs ); Utility.SerializeBytes( writer, m_encrypted ); } } } // 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
- PageVisual.cs
- LambdaCompiler.Binary.cs
- RelOps.cs
- KeyInterop.cs
- VisualState.cs
- PriorityBindingExpression.cs
- ObjectListShowCommandsEventArgs.cs
- ExpressionBuilder.cs
- CollectionView.cs
- DataServiceHost.cs
- WhitespaceRule.cs
- UpdateCommand.cs
- HostedHttpRequestAsyncResult.cs
- SlipBehavior.cs
- BindUriHelper.cs
- CodeStatement.cs
- CompiledQueryCacheEntry.cs
- CompiledXpathExpr.cs
- QueryStringParameter.cs
- DependencyProperty.cs
- AuthorizationRule.cs
- shaperfactoryquerycacheentry.cs
- ToolStripDropTargetManager.cs
- AliasGenerator.cs
- ValidatingReaderNodeData.cs
- PersonalizationStateInfo.cs
- SecurityBindingElementImporter.cs
- MetricEntry.cs
- HashCodeCombiner.cs
- MenuAdapter.cs
- SizeAnimation.cs
- DataGridViewCellCancelEventArgs.cs
- PropertyFilterAttribute.cs
- COM2FontConverter.cs
- ObjectView.cs
- Atom10FormatterFactory.cs
- Help.cs
- ReplacementText.cs
- AuthenticationException.cs
- StaticSiteMapProvider.cs
- VarRefManager.cs
- Root.cs
- DataKeyArray.cs
- Part.cs
- PageAsyncTask.cs
- CompiledQueryCacheEntry.cs
- DocumentAutomationPeer.cs
- ConstructorArgumentAttribute.cs
- GlobalAclOperationRequirement.cs
- IconBitmapDecoder.cs
- TextElementEnumerator.cs
- InfoCardClaim.cs
- NativeMethods.cs
- GuidelineSet.cs
- CachedFontFace.cs
- WindowsGraphicsCacheManager.cs
- ViewgenContext.cs
- DoubleConverter.cs
- DurableInstancingOptions.cs
- CodeNamespace.cs
- ImageSource.cs
- ThrowHelper.cs
- LoginCancelEventArgs.cs
- TreeWalkHelper.cs
- Debug.cs
- ResourcePart.cs
- NativeMethods.cs
- ContractTypeNameElement.cs
- SemanticKeyElement.cs
- UnionExpr.cs
- PreviewPrintController.cs
- DetailsViewInsertEventArgs.cs
- QueryContinueDragEvent.cs
- GetCertificateRequest.cs
- ContractMapping.cs
- TargetInvocationException.cs
- ServerIdentity.cs
- XmlTextAttribute.cs
- InvalidPropValue.cs
- XmlSchemaSet.cs
- TextWriterTraceListener.cs
- DeflateInput.cs
- XmlSchemaComplexContentExtension.cs
- NumberFunctions.cs
- NeutralResourcesLanguageAttribute.cs
- ContentFileHelper.cs
- Function.cs
- RegexWorker.cs
- MouseGestureValueSerializer.cs
- HtmlTableRow.cs
- ClientRuntimeConfig.cs
- DataGridViewCellCancelEventArgs.cs
- printdlgexmarshaler.cs
- TransactionFlowBindingElement.cs
- CommandHelper.cs
- RijndaelManagedTransform.cs
- IPAddress.cs
- Application.cs
- PageCache.cs
- Update.cs