Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / TransformBlockRequest.cs / 1 / TransformBlockRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.IO; using System.Security.Principal; using System.Diagnostics; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary: // Manages an encryption request from the client against a specified cryptosession. // class TransformBlockRequest : ClientRequest { // // The cryptosession id we are attaching to. // int m_cryptoSession; // // The cleartext data we wish to transfrom // byte[] m_inBlock; // // The transformed data. // byte[] m_outBlock; // // The number of bytes to send back out of the transformed data buffer. // int m_outBlockSize; // // Sumamry: // Construct an TransformBlockRequest 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 TransformBlockRequest( Process callingProcess, WindowsIdentity callingIdentity, IntPtr rpcHandle, Stream inArgs, Stream outArgs ) : base( callingProcess, callingIdentity, rpcHandle, inArgs, outArgs ) { IDT.TraceDebug( "Intiating an Encrypt request" ); } protected override void OnMarshalInArgs() { IDT.DebugAssert( null != InArgs, "null inargs" ); BinaryReader reader = new InfoCardBinaryReader( InArgs ); m_cryptoSession = reader.ReadInt32(); int count = reader.ReadInt32(); m_inBlock = reader.ReadBytes( count ); IDT.ThrowInvalidArgumentConditional( 0 == m_cryptoSession, "cryptoSession" ); IDT.ThrowInvalidArgumentConditional( null == m_inBlock || 0 == m_inBlock.Length, "inBlock" ); } // // Summary: // Attach to the appropriate cryptosession and encrypt/decrypt the data. // protected override void OnProcess() { try { TransformCryptoSession session = (TransformCryptoSession) CryptoSession.Find( m_cryptoSession, CallerPid, RequestorIdentity.User ); m_outBlockSize = session.TransformBlock( m_inBlock, out m_outBlock ); IDT.DebugAssert( m_outBlockSize <= m_outBlock.Length, "size mismatch after TransformBlock" ); } finally { Array.Clear( m_inBlock, 0, m_inBlock.Length ); } } protected override void OnMarshalOutArgs() { IDT.ThrowInvalidArgumentConditional( null == OutArgs, "OutArgs" ); IDT.ThrowInvalidArgumentConditional( null == m_outBlock, "outBlock" ); BinaryWriter writer = new BinaryWriter( OutArgs ); Utility.SerializeBytes( writer, m_outBlock, 0, m_outBlockSize ); } } } // 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
- ContextMarshalException.cs
- StructureChangedEventArgs.cs
- FieldBuilder.cs
- CopyOnWriteList.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- AvTraceDetails.cs
- TemplateLookupAction.cs
- CommonGetThemePartSize.cs
- BridgeDataRecord.cs
- State.cs
- Operand.cs
- MDIControlStrip.cs
- BitmapCodecInfo.cs
- Pair.cs
- SqlUdtInfo.cs
- WhiteSpaceTrimStringConverter.cs
- FrameSecurityDescriptor.cs
- CasesDictionary.cs
- BodyWriter.cs
- CompletionProxy.cs
- NotFiniteNumberException.cs
- BrowserCapabilitiesFactory.cs
- XmlNavigatorFilter.cs
- PenCursorManager.cs
- Error.cs
- EqualityComparer.cs
- OdbcCommandBuilder.cs
- __Filters.cs
- BitmapFrameDecode.cs
- AddressingProperty.cs
- Environment.cs
- TemplatedMailWebEventProvider.cs
- FindCriteria11.cs
- ContextInformation.cs
- DetailsViewDeletedEventArgs.cs
- HostingEnvironmentSection.cs
- GenericTextProperties.cs
- DataRow.cs
- XD.cs
- BaseTransportHeaders.cs
- BinaryFormatterWriter.cs
- MappingItemCollection.cs
- DataGridViewCheckBoxColumn.cs
- DbProviderFactory.cs
- FormViewUpdateEventArgs.cs
- DynamicPropertyHolder.cs
- ScrollItemProviderWrapper.cs
- EntityFunctions.cs
- EntityProviderFactory.cs
- TemplatedWizardStep.cs
- TextParagraph.cs
- ContentPosition.cs
- WebControlAdapter.cs
- Calendar.cs
- HttpHeaderCollection.cs
- PolyLineSegment.cs
- DefaultBindingPropertyAttribute.cs
- DbParameterCollectionHelper.cs
- FormsAuthenticationTicket.cs
- XmlAttributes.cs
- DynamicUpdateCommand.cs
- HtmlListAdapter.cs
- UIPropertyMetadata.cs
- HostingPreferredMapPath.cs
- FixedPosition.cs
- EditCommandColumn.cs
- EventLogger.cs
- RecommendedAsConfigurableAttribute.cs
- ComponentEditorForm.cs
- ScriptServiceAttribute.cs
- HttpWebRequest.cs
- Preprocessor.cs
- ClassHandlersStore.cs
- Pen.cs
- EntityDataSourceColumn.cs
- HScrollProperties.cs
- ServiceMetadataExtension.cs
- WebBaseEventKeyComparer.cs
- BaseParser.cs
- GenericWebPart.cs
- HttpWebRequest.cs
- Viewport3DAutomationPeer.cs
- AuthenticationException.cs
- SessionParameter.cs
- TextComposition.cs
- BmpBitmapDecoder.cs
- Image.cs
- RemotingServices.cs
- sqlser.cs
- SqlMethodAttribute.cs
- Polyline.cs
- bindurihelper.cs
- DefaultClaimSet.cs
- PathFigureCollection.cs
- DeferredRunTextReference.cs
- UrlPath.cs
- Tile.cs
- ConcatQueryOperator.cs
- UdpDiscoveryEndpoint.cs
- TextMetrics.cs