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
- MediaPlayerState.cs
- AuthenticationModuleElementCollection.cs
- StatusCommandUI.cs
- PathGeometry.cs
- MatrixAnimationUsingPath.cs
- BCryptNative.cs
- AssemblyCollection.cs
- SafeNativeMethods.cs
- Socket.cs
- PrintSchema.cs
- PartialCachingControl.cs
- Vector3DCollection.cs
- TouchFrameEventArgs.cs
- WebRequestModuleElementCollection.cs
- Span.cs
- HelpProvider.cs
- ArithmeticException.cs
- ContextMenuService.cs
- ConnectionsZone.cs
- KeySpline.cs
- UnionCqlBlock.cs
- SafeCloseHandleCritical.cs
- ScriptResourceMapping.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- ToolboxItemFilterAttribute.cs
- XmlAnyElementAttributes.cs
- KeyPullup.cs
- SmiXetterAccessMap.cs
- RectangleConverter.cs
- SafeSerializationManager.cs
- DependencyPropertyKey.cs
- ProfileService.cs
- XsdBuildProvider.cs
- MediaEntryAttribute.cs
- ConfigXmlAttribute.cs
- PagedDataSource.cs
- WebBrowserProgressChangedEventHandler.cs
- CaseStatement.cs
- MetadataCache.cs
- SourceFilter.cs
- AggregateNode.cs
- ContractMethodParameterInfo.cs
- URLString.cs
- CustomAttributeSerializer.cs
- WpfSharedBamlSchemaContext.cs
- WorkflowMarkupSerializationManager.cs
- LockRecursionException.cs
- Sql8ExpressionRewriter.cs
- JpegBitmapDecoder.cs
- EncryptedPackage.cs
- XmlQueryCardinality.cs
- SimpleParser.cs
- ServiceCredentialsElement.cs
- Collection.cs
- OverflowException.cs
- StaticTextPointer.cs
- DataTableMapping.cs
- ApplicationId.cs
- OdbcConnectionStringbuilder.cs
- FilterQuery.cs
- BulletChrome.cs
- GeometryValueSerializer.cs
- BufferModeSettings.cs
- XamlSerializerUtil.cs
- PageAsyncTaskManager.cs
- Reference.cs
- TextPenaltyModule.cs
- SafeLibraryHandle.cs
- OracleColumn.cs
- ManagementInstaller.cs
- ResXResourceSet.cs
- safelinkcollection.cs
- DiagnosticTraceRecords.cs
- StatusStrip.cs
- SqlInternalConnectionTds.cs
- SystemNetHelpers.cs
- AssociationTypeEmitter.cs
- XmlNamespaceManager.cs
- Substitution.cs
- ClockGroup.cs
- StickyNoteContentControl.cs
- UTF8Encoding.cs
- DesignBindingValueUIHandler.cs
- UpdateCommand.cs
- TextContainerChangedEventArgs.cs
- Assert.cs
- RepeaterItem.cs
- WeakReferenceKey.cs
- ObjectReferenceStack.cs
- ResolveDuplexAsyncResult.cs
- CheckoutException.cs
- StaticTextPointer.cs
- Inline.cs
- ErrorRuntimeConfig.cs
- LogicalChannelCollection.cs
- CapabilitiesSection.cs
- CellNormalizer.cs
- ErrorFormatterPage.cs
- SchemaNames.cs
- NativeMethods.cs