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
- _BasicClient.cs
- OrCondition.cs
- ReaderWriterLockWrapper.cs
- PrintingPermission.cs
- ProfilePropertyMetadata.cs
- MemberDescriptor.cs
- ToolStripItemCollection.cs
- TextEffect.cs
- SchemaMapping.cs
- NonSerializedAttribute.cs
- figurelength.cs
- TypeConverterHelper.cs
- ScriptReferenceBase.cs
- SmiMetaDataProperty.cs
- ArrayHelper.cs
- IpcPort.cs
- XmlTypeMapping.cs
- FontUnit.cs
- WindowVisualStateTracker.cs
- Page.cs
- BezierSegment.cs
- DataTableMappingCollection.cs
- Page.cs
- AnnotationObservableCollection.cs
- ISAPIRuntime.cs
- SqlErrorCollection.cs
- ControlUtil.cs
- CustomAttributeSerializer.cs
- LocationFactory.cs
- SqlError.cs
- TrackBarRenderer.cs
- XamlPoint3DCollectionSerializer.cs
- StrongNameKeyPair.cs
- BlurEffect.cs
- ToolTip.cs
- HandleExceptionArgs.cs
- Span.cs
- JavascriptCallbackResponseProperty.cs
- XmlSchemaImport.cs
- FixedTextView.cs
- Vector3DConverter.cs
- CorrelationManager.cs
- GorillaCodec.cs
- ToolboxItemWrapper.cs
- WCFBuildProvider.cs
- FormViewUpdateEventArgs.cs
- ObjRef.cs
- ObjectManager.cs
- Attributes.cs
- figurelengthconverter.cs
- XsdDataContractImporter.cs
- CalendarData.cs
- TTSEvent.cs
- CommandConverter.cs
- RemotingException.cs
- DetailsViewUpdatedEventArgs.cs
- NativeMethods.cs
- BitmapEffectOutputConnector.cs
- QueueAccessMode.cs
- XmlReflectionImporter.cs
- GCHandleCookieTable.cs
- BufferedStream2.cs
- PropertyTab.cs
- View.cs
- MenuAdapter.cs
- BinHexDecoder.cs
- TextEditorTyping.cs
- AlternateView.cs
- TextLine.cs
- DataGridViewCellFormattingEventArgs.cs
- DataGrid.cs
- ParentQuery.cs
- Visual3DCollection.cs
- FixedSOMPageElement.cs
- FileLogRecordStream.cs
- WebScriptMetadataMessageEncoderFactory.cs
- FunctionDetailsReader.cs
- SerializableTypeCodeDomSerializer.cs
- OperationInvokerBehavior.cs
- CompositeDataBoundControl.cs
- RegisteredScript.cs
- NativeMethods.cs
- DeferredElementTreeState.cs
- FtpWebRequest.cs
- SurrogateChar.cs
- AVElementHelper.cs
- WindowsImpersonationContext.cs
- DataTrigger.cs
- SingleObjectCollection.cs
- HttpWriter.cs
- DynamicRenderer.cs
- ConfigXmlText.cs
- DataReaderContainer.cs
- TextureBrush.cs
- DataGridViewToolTip.cs
- WorkflowViewElement.cs
- ReversePositionQuery.cs
- ManagedIStream.cs
- SqlBuilder.cs
- XmlBindingWorker.cs