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
- StrongNamePublicKeyBlob.cs
- ThrowHelper.cs
- ComboBoxAutomationPeer.cs
- MetadataUtil.cs
- SubpageParaClient.cs
- SqlInfoMessageEvent.cs
- TemplateControlParser.cs
- XmlDataLoader.cs
- AuthenticationConfig.cs
- EventItfInfo.cs
- ExpressionEvaluator.cs
- OverloadGroupAttribute.cs
- DSASignatureDeformatter.cs
- SafeCryptoHandles.cs
- ViewSimplifier.cs
- ServicesUtilities.cs
- TextSelectionHelper.cs
- ServicePoint.cs
- BuildDependencySet.cs
- DelegatedStream.cs
- XmlSchemaExporter.cs
- DateTimeValueSerializerContext.cs
- SystemResourceKey.cs
- WebReferencesBuildProvider.cs
- ManagementClass.cs
- Transform3D.cs
- DataGridToolTip.cs
- OutOfMemoryException.cs
- OverflowException.cs
- ResourcePool.cs
- QualifierSet.cs
- DbProviderManifest.cs
- TrackBarRenderer.cs
- TaskbarItemInfo.cs
- DBDataPermissionAttribute.cs
- ProxyHelper.cs
- DefaultObjectMappingItemCollection.cs
- AttributeUsageAttribute.cs
- EndpointDesigner.cs
- SecurityChannelFactory.cs
- LocationSectionRecord.cs
- ForceCopyBuildProvider.cs
- PrivilegeNotHeldException.cs
- PerformanceCounter.cs
- ErrorTolerantObjectWriter.cs
- SecurityTokenTypes.cs
- InlineCollection.cs
- Action.cs
- SqlMethodAttribute.cs
- ScriptResourceAttribute.cs
- LinearGradientBrush.cs
- LinqDataSourceEditData.cs
- Command.cs
- ExpressionBuilder.cs
- processwaithandle.cs
- FullTextLine.cs
- CodeDOMUtility.cs
- WebPartVerbsEventArgs.cs
- Int32CAMarshaler.cs
- DataGridColumnCollection.cs
- ReceiveCompletedEventArgs.cs
- StoreItemCollection.cs
- HijriCalendar.cs
- HtmlTableCellCollection.cs
- EntityCommandDefinition.cs
- ToolbarAUtomationPeer.cs
- FontDifferentiator.cs
- XmlSchemaObjectCollection.cs
- EncodingDataItem.cs
- SpeechSeg.cs
- NavigationProperty.cs
- NavigationPropertyEmitter.cs
- LoginName.cs
- DataGridViewCellValidatingEventArgs.cs
- FixUp.cs
- TemplateNameScope.cs
- CompositeCollection.cs
- NonBatchDirectoryCompiler.cs
- FontNameConverter.cs
- RelationalExpressions.cs
- Keyboard.cs
- BuildProvider.cs
- DataGridViewLinkColumn.cs
- BulletedListEventArgs.cs
- HttpBufferlessInputStream.cs
- LocatorGroup.cs
- WorkflowInstanceExtensionCollection.cs
- SessionSwitchEventArgs.cs
- ForeignKeyConstraint.cs
- XmlArrayAttribute.cs
- XmlNamespaceMapping.cs
- GlyphingCache.cs
- DateTimeUtil.cs
- BoolExpression.cs
- TextMetrics.cs
- Operand.cs
- X509WindowsSecurityToken.cs
- Socket.cs
- LabelAutomationPeer.cs
- GridViewRowPresenterBase.cs