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
- StylusCollection.cs
- PermissionSetEnumerator.cs
- AnnotationAdorner.cs
- SmtpNetworkElement.cs
- X509Utils.cs
- XmlNamespaceManager.cs
- login.cs
- TemplateAction.cs
- Menu.cs
- BuildProvider.cs
- PenThreadWorker.cs
- DataGridViewRowCollection.cs
- RightsManagementEncryptedStream.cs
- MetabaseServerConfig.cs
- DebugController.cs
- ParameterCollection.cs
- DataGridViewComboBoxColumn.cs
- OrderedDictionary.cs
- ViewBox.cs
- XmlWriterTraceListener.cs
- OleDbSchemaGuid.cs
- ValueConversionAttribute.cs
- CommentEmitter.cs
- ExecutionTracker.cs
- WebBrowsableAttribute.cs
- ResourceCategoryAttribute.cs
- ComplusTypeValidator.cs
- Unit.cs
- ColumnMapProcessor.cs
- RegisterInfo.cs
- TdsParserSessionPool.cs
- ConditionalAttribute.cs
- LabelLiteral.cs
- XDRSchema.cs
- DbDataSourceEnumerator.cs
- XslCompiledTransform.cs
- DataBoundControl.cs
- EditorPartChrome.cs
- HtmlTextArea.cs
- DataAdapter.cs
- TypeConverterValueSerializer.cs
- RowTypePropertyElement.cs
- SessionState.cs
- StateManagedCollection.cs
- ConfigXmlAttribute.cs
- CodeRegionDirective.cs
- InputScopeConverter.cs
- BinaryObjectInfo.cs
- ISO2022Encoding.cs
- ProcessHostMapPath.cs
- Common.cs
- SystemInformation.cs
- TypeConverterHelper.cs
- ObjRef.cs
- X509SecurityTokenAuthenticator.cs
- RuntimeConfig.cs
- WindowsStatic.cs
- DataGridItem.cs
- PageClientProxyGenerator.cs
- TypefaceMap.cs
- VisualTransition.cs
- SchemaTableColumn.cs
- DashStyle.cs
- TimersDescriptionAttribute.cs
- ValueExpressions.cs
- Char.cs
- RuntimeVariablesExpression.cs
- RelativeSource.cs
- ColorContextHelper.cs
- MdiWindowListStrip.cs
- FatalException.cs
- PlanCompilerUtil.cs
- OleDbParameter.cs
- Enum.cs
- CompilationLock.cs
- SecureStringHasher.cs
- Timeline.cs
- Interlocked.cs
- XmlWriterTraceListener.cs
- MailWriter.cs
- DefaultPropertiesToSend.cs
- TransformDescriptor.cs
- SchemaNotation.cs
- UInt16.cs
- ObjectTag.cs
- ManagedIStream.cs
- FileLoadException.cs
- MetadataArtifactLoaderFile.cs
- OdbcCommandBuilder.cs
- RewritingProcessor.cs
- FixedSOMTable.cs
- EventLogPermission.cs
- QilLoop.cs
- TypeUsageBuilder.cs
- CodeTypeReferenceCollection.cs
- Property.cs
- DataGridViewSelectedColumnCollection.cs
- DataGridHelper.cs
- DataProtection.cs
- TemplateEditingFrame.cs