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
- HttpContextServiceHost.cs
- RequestCache.cs
- SchemaManager.cs
- HeaderCollection.cs
- ManipulationVelocities.cs
- FileUpload.cs
- RecipientIdentity.cs
- PointCollectionValueSerializer.cs
- mediaeventargs.cs
- ServiceModelConfigurationSection.cs
- HttpPostClientProtocol.cs
- IIS7UserPrincipal.cs
- CornerRadiusConverter.cs
- EventArgs.cs
- FixedTextContainer.cs
- AncillaryOps.cs
- Errors.cs
- ContextStack.cs
- Pair.cs
- base64Transforms.cs
- PersonalizationState.cs
- SqlRowUpdatedEvent.cs
- SettingsPropertyIsReadOnlyException.cs
- CompositeControlDesigner.cs
- UniqueIdentifierService.cs
- ScrollBarRenderer.cs
- StatusBarDrawItemEvent.cs
- CodeCastExpression.cs
- SyndicationSerializer.cs
- ServiceContractViewControl.cs
- SparseMemoryStream.cs
- MemberAssignmentAnalysis.cs
- StructuredTypeInfo.cs
- DynamicValidator.cs
- Evidence.cs
- TextTreeTextBlock.cs
- ProfileBuildProvider.cs
- RectangleF.cs
- EncoderParameter.cs
- SiteMapNodeCollection.cs
- ClientCultureInfo.cs
- ButtonBaseAutomationPeer.cs
- RootProfilePropertySettingsCollection.cs
- ProfileSettings.cs
- DataGridViewRowStateChangedEventArgs.cs
- HistoryEventArgs.cs
- SecurityTokenProvider.cs
- ReaderWriterLock.cs
- XDRSchema.cs
- ObjectQuery.cs
- SqlFlattener.cs
- SemaphoreFullException.cs
- DrawingBrush.cs
- UnsafeMethods.cs
- TypeToken.cs
- DrawingBrush.cs
- Logging.cs
- TypeConstant.cs
- RelationshipDetailsRow.cs
- LogLogRecord.cs
- ThreadAttributes.cs
- KeyEvent.cs
- Page.cs
- WindowsAuthenticationModule.cs
- Parser.cs
- GenericEnumerator.cs
- SoapElementAttribute.cs
- IInstanceTable.cs
- CompositeControl.cs
- storepermission.cs
- DataBoundControlHelper.cs
- Trace.cs
- Figure.cs
- Util.cs
- EntityProviderServices.cs
- BaseDataBoundControl.cs
- SqlProviderManifest.cs
- XmlSchemaImporter.cs
- XsltCompileContext.cs
- ViewStateModeByIdAttribute.cs
- DrawingContextDrawingContextWalker.cs
- SpnEndpointIdentity.cs
- CornerRadius.cs
- ComponentChangingEvent.cs
- ArraySet.cs
- Vector3D.cs
- BuilderElements.cs
- ListParaClient.cs
- QEncodedStream.cs
- RSAPKCS1SignatureDeformatter.cs
- lengthconverter.cs
- CommandBinding.cs
- MaskedTextBoxDesigner.cs
- BitmapCache.cs
- Avt.cs
- WorkflowOwnerAsyncResult.cs
- AnnotationHighlightLayer.cs
- DataServiceContext.cs
- IntranetCredentialPolicy.cs
- ToolStripDropDownItem.cs