Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / GetCryptoTransformRequest.cs / 1 / GetCryptoTransformRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections; using System.Diagnostics; using System.Security.Principal; using System.Threading; //ManualResetEvent using System.ComponentModel; //Win32Exception using System.IO; //Stream using System.Security.Cryptography; using System.Text; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary: // Wraps a request to get a remoted ICryptoTransform interface based on a SymmetricCryptoSession. // class GetCryptoTransformRequest : ClientRequest { // // The cryptosession id we are attaching to. // int m_cryptoSession; // // The cipher mode being requested. // CipherMode m_mode; // // The padding mode being requested. // PaddingMode m_padding; // // The feedback size being requested // int m_feedbackSize; // // Is Encryption or Decryption being requested. // SymmetricCryptoSession.Direction m_direction; // // The intialization vector. // byte[] m_iv; // // The returned transform session. // TransformCryptoSession m_transformSession; // // Sumamry: // Construct a GetCryptoTransformRequest 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 GetCryptoTransformRequest( Process callingProcess, WindowsIdentity callingIdentity, IntPtr rpcHandle, Stream inArgs, Stream outArgs ) : base( callingProcess, callingIdentity, rpcHandle, inArgs, outArgs ) { IDT.TraceDebug( "Intiating a GetCryptoTransform request" ); } protected override void OnMarshalInArgs() { IDT.DebugAssert( null != InArgs, "null inargs" ); BinaryReader reader = new InfoCardBinaryReader( InArgs, Encoding.Unicode ); m_cryptoSession = reader.ReadInt32(); m_mode = (CipherMode)reader.ReadInt32(); m_padding = (PaddingMode)reader.ReadInt32(); m_feedbackSize = reader.ReadInt32(); m_direction = (SymmetricCryptoSession.Direction)reader.ReadInt32(); m_iv = reader.ReadBytes( reader.ReadInt32() ); IDT.ThrowInvalidArgumentConditional( 0 == m_feedbackSize, "feedbackSize" ); } // // Summary: // Attach to the appropriate cryptosession and get a CryptoTransform // protected override void OnProcess() { SymmetricCryptoSession session = ( SymmetricCryptoSession )CryptoSession.Find( m_cryptoSession, CallerPid, RequestorIdentity.User ); m_transformSession = session.GetCryptoTransform( m_mode, m_padding, m_feedbackSize, m_direction, m_iv ); } // // Summary: // Return the TransformCryptoSession // protected override void OnMarshalOutArgs() { IDT.DebugAssert( null != OutArgs, "Null out args" ); BinaryWriter writer = new BinaryWriter( OutArgs, Encoding.Unicode ); IDT.DebugAssert( null != m_transformSession, "unexpected null outgoing transfromSession" ); m_transformSession.Write( writer ); writer.Flush(); } } } // 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
- FunctionParameter.cs
- AsymmetricSignatureFormatter.cs
- QueryBranchOp.cs
- PackWebRequest.cs
- Logging.cs
- SQLByteStorage.cs
- AuthorizationRule.cs
- HashMembershipCondition.cs
- DocumentViewerBaseAutomationPeer.cs
- SingleAnimationBase.cs
- OdbcDataReader.cs
- KnownTypesHelper.cs
- MsmqIntegrationBindingCollectionElement.cs
- AbsoluteQuery.cs
- xdrvalidator.cs
- CollectionViewGroup.cs
- ProfileProvider.cs
- QuaternionValueSerializer.cs
- Repeater.cs
- AnimationLayer.cs
- FilterableData.cs
- MenuScrollingVisibilityConverter.cs
- CommandBindingCollection.cs
- DeclarativeCatalogPart.cs
- AnimationStorage.cs
- DatePickerTextBox.cs
- CompilerWrapper.cs
- ToolStripArrowRenderEventArgs.cs
- SpecialFolderEnumConverter.cs
- CommonProperties.cs
- DisplayClaim.cs
- ResourceDisplayNameAttribute.cs
- IconConverter.cs
- DigestComparer.cs
- ChannelManager.cs
- SafeRightsManagementSessionHandle.cs
- AssemblyInfo.cs
- _ConnectOverlappedAsyncResult.cs
- TimeSpanStorage.cs
- TextChangedEventArgs.cs
- ControlAdapter.cs
- UnsafeNativeMethods.cs
- NativeMethodsOther.cs
- SiteMapNodeCollection.cs
- InitializingNewItemEventArgs.cs
- _WinHttpWebProxyDataBuilder.cs
- SequentialActivityDesigner.cs
- LogicalExpr.cs
- UITypeEditor.cs
- AnnotationResource.cs
- BrowserDefinitionCollection.cs
- Activator.cs
- ValueTypeFixupInfo.cs
- X509Certificate.cs
- HeaderLabel.cs
- OracleRowUpdatingEventArgs.cs
- CounterCreationDataCollection.cs
- DataGridHeaderBorder.cs
- SerialReceived.cs
- TypePropertyEditor.cs
- HttpCachePolicyElement.cs
- SoapSchemaImporter.cs
- ProcessThreadCollection.cs
- SpellerError.cs
- UnsafeNativeMethodsTablet.cs
- TaskCanceledException.cs
- MobileFormsAuthentication.cs
- DeflateStream.cs
- AncillaryOps.cs
- PersistChildrenAttribute.cs
- Argument.cs
- DataSourceView.cs
- LinqDataSourceDeleteEventArgs.cs
- WinEventQueueItem.cs
- DataGridViewColumnHeaderCell.cs
- NullableIntMinMaxAggregationOperator.cs
- InternalResources.cs
- Matrix3DValueSerializer.cs
- TypeSemantics.cs
- PointCollectionConverter.cs
- MetaModel.cs
- ContainerVisual.cs
- SlotInfo.cs
- ClientEventManager.cs
- ConfigXmlElement.cs
- VectorValueSerializer.cs
- EventLogPermissionEntry.cs
- Command.cs
- UTF7Encoding.cs
- DiscoveryEndpoint.cs
- TokenizerHelper.cs
- TreeViewBindingsEditor.cs
- TraceLevelStore.cs
- LogicalExpressionTypeConverter.cs
- Bitmap.cs
- _BufferOffsetSize.cs
- hresults.cs
- LifetimeMonitor.cs
- SqlBuilder.cs
- DataGridViewHitTestInfo.cs