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
- DbConnectionPoolCounters.cs
- CompositeCollectionView.cs
- RemotingException.cs
- DataReceivedEventArgs.cs
- MemberMemberBinding.cs
- WebPartConnectionsCloseVerb.cs
- ControlUtil.cs
- SHA256Managed.cs
- CfgParser.cs
- ExpressionBindings.cs
- Binding.cs
- InputManager.cs
- ResourceDefaultValueAttribute.cs
- BinaryObjectWriter.cs
- EmptyTextWriter.cs
- CodeAttributeArgument.cs
- Vector3DCollectionConverter.cs
- CodeTypeReferenceExpression.cs
- SchemaImporter.cs
- Icon.cs
- MaterializeFromAtom.cs
- InProcStateClientManager.cs
- Quad.cs
- CharEntityEncoderFallback.cs
- DetectEofStream.cs
- ExceptQueryOperator.cs
- TextRangeEditLists.cs
- CodeIndexerExpression.cs
- ObjectMemberMapping.cs
- APCustomTypeDescriptor.cs
- QilTernary.cs
- ListViewInsertionMark.cs
- DispatcherTimer.cs
- XmlDataDocument.cs
- RotateTransform3D.cs
- TextTreeText.cs
- BitmapMetadataBlob.cs
- FlowNode.cs
- XmlComplianceUtil.cs
- XmlUtf8RawTextWriter.cs
- TablePattern.cs
- ZipIOLocalFileHeader.cs
- DispatcherOperation.cs
- RelationshipManager.cs
- SqlResolver.cs
- TrustManagerMoreInformation.cs
- RepeatBehaviorConverter.cs
- OperationPickerDialog.cs
- SpellerError.cs
- TextPenaltyModule.cs
- MappingException.cs
- ReadOnlyDataSourceView.cs
- EncryptedPackage.cs
- ScriptBehaviorDescriptor.cs
- InputLanguage.cs
- AnnotationObservableCollection.cs
- RestHandler.cs
- _SSPISessionCache.cs
- HierarchicalDataSourceConverter.cs
- InProcStateClientManager.cs
- PointCollectionValueSerializer.cs
- WindowsSlider.cs
- UnmanagedMemoryStream.cs
- _Connection.cs
- VScrollBar.cs
- ResXFileRef.cs
- StoryFragments.cs
- ProjectionCamera.cs
- CodeIterationStatement.cs
- AppModelKnownContentFactory.cs
- TextCompositionEventArgs.cs
- EmptyTextWriter.cs
- StructuralObject.cs
- TextWriterTraceListener.cs
- MailHeaderInfo.cs
- ConfigurationManagerInternal.cs
- TraceUtils.cs
- CultureTableRecord.cs
- HttpException.cs
- DataObjectFieldAttribute.cs
- VideoDrawing.cs
- FontCacheUtil.cs
- InvokeAction.cs
- CubicEase.cs
- StructuralCache.cs
- URLString.cs
- GuidelineSet.cs
- ExceptionUtil.cs
- XmlSchemaComplexType.cs
- WebPartActionVerb.cs
- SortExpressionBuilder.cs
- DynamicILGenerator.cs
- SqlTypesSchemaImporter.cs
- TreeIterators.cs
- PersonalizableAttribute.cs
- dbdatarecord.cs
- BuilderPropertyEntry.cs
- HyperLinkColumn.cs
- GeometryCombineModeValidation.cs
- SafeCryptoHandles.cs