Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / EncryptRequest.cs / 1 / EncryptRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.IO; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; using System.Security.Principal; using System.Diagnostics; // // Summary: // Manages an encryption request from the client against a specified cryptosession. // class EncryptRequest : ClientRequest { // // The cryptosession id we are attaching to. // int m_cryptoSession; // // Whether the data is padded using OAEP. // bool m_useOAEP; // // The cleartext data we wish to encrypt.. // byte[] m_cleartext; // // The encrypted data // byte[] m_encrypted; // // Sumamry: // Construct an EncyrptRequest 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 EncryptRequest( Process callingProcess, WindowsIdentity callingIdentity, IntPtr rpcHandle, Stream inArgs, Stream outArgs ) : base( callingProcess, callingIdentity, rpcHandle, inArgs, outArgs ) { IDT.TraceDebug( "Intiating an Encrypt request" ); m_cryptoSession = 0; m_useOAEP = false; m_cleartext = null; m_encrypted = null; } protected override void OnMarshalInArgs() { IDT.DebugAssert( null != InArgs, "null inargs" ); BinaryReader reader = new InfoCardBinaryReader( InArgs ); // // Reader should have data in the order: // crytposession ( int32 ) // isOAEP ( int32 ) // cleartext len ( int32 ) // cleartext bytes // m_cryptoSession = reader.ReadInt32(); m_useOAEP = reader.ReadBoolean(); int count = reader.ReadInt32(); m_cleartext = reader.ReadBytes( count ); IDT.ThrowInvalidArgumentConditional( 0 == m_cryptoSession, "cryptoSession" ); IDT.ThrowInvalidArgumentConditional( null == m_cleartext || 0 == m_cleartext.Length, "clearText" ); } // // Summary: // Attach to the appropriate cryptosession and encrypt the data. // protected override void OnProcess() { IDT.DebugAssert( 0 != m_cryptoSession, "null crypto session" ); IDT.DebugAssert( null != m_cleartext && 0 != m_cleartext.Length, "null cleartext data" ); try { AsymmetricCryptoSession session = (AsymmetricCryptoSession) CryptoSession.Find( m_cryptoSession, CallerPid, RequestorIdentity.User ); m_encrypted = session.Encrypt( m_useOAEP, m_cleartext ); } finally { Array.Clear( m_cleartext, 0, m_cleartext.Length ); } } protected override void OnMarshalOutArgs() { IDT.DebugAssert( null != OutArgs, "Null out args" ); IDT.DebugAssert( null != m_encrypted, "null encrypted buffer" ); BinaryWriter writer = new BinaryWriter( OutArgs ); Utility.SerializeBytes( writer, m_encrypted ); } } } // 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
- PassportAuthenticationModule.cs
- XmlEventCache.cs
- SmiRecordBuffer.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- AddInContractAttribute.cs
- TextureBrush.cs
- CredentialCache.cs
- OdbcConnectionStringbuilder.cs
- BamlRecords.cs
- Point3D.cs
- PersistenceTypeAttribute.cs
- SiblingIterators.cs
- TextContainerChangedEventArgs.cs
- SafeCertificateContext.cs
- FileLogRecordStream.cs
- FontResourceCache.cs
- CapabilitiesUse.cs
- RepeatInfo.cs
- OutputCacheSettings.cs
- EventMetadata.cs
- ThicknessConverter.cs
- RangeBaseAutomationPeer.cs
- InstanceLockedException.cs
- BamlResourceDeserializer.cs
- WindowsFormsEditorServiceHelper.cs
- CommandBinding.cs
- WebPartCancelEventArgs.cs
- DetectRunnableInstancesTask.cs
- UIElement.cs
- CodeDomConfigurationHandler.cs
- DesignerAttribute.cs
- PaintEvent.cs
- ComboBoxDesigner.cs
- RandomNumberGenerator.cs
- FormatSettings.cs
- CodeParameterDeclarationExpression.cs
- CollectionView.cs
- SoapAttributeOverrides.cs
- GridViewItemAutomationPeer.cs
- HostingEnvironment.cs
- PeerName.cs
- Serializer.cs
- Debug.cs
- ListDesigner.cs
- ImageMetadata.cs
- DataGridViewRowConverter.cs
- EncryptedData.cs
- UpdateProgress.cs
- DocumentViewerHelper.cs
- XmlSerializerAssemblyAttribute.cs
- SequenceNumber.cs
- DataControlFieldCell.cs
- DataExpression.cs
- DiagnosticsConfiguration.cs
- TextTreeInsertUndoUnit.cs
- HttpCachePolicy.cs
- EdmScalarPropertyAttribute.cs
- BuildProviderAppliesToAttribute.cs
- Tuple.cs
- RegexWriter.cs
- ColorBuilder.cs
- NullableBoolConverter.cs
- HttpException.cs
- DataGridViewRowsRemovedEventArgs.cs
- VariableQuery.cs
- ManipulationDeltaEventArgs.cs
- Int64AnimationUsingKeyFrames.cs
- ThrowHelper.cs
- ColorMap.cs
- RectConverter.cs
- OdbcTransaction.cs
- UICuesEvent.cs
- CompilationUtil.cs
- GridItem.cs
- RankException.cs
- XmlSchemaInfo.cs
- BindValidationContext.cs
- TextRange.cs
- RPIdentityRequirement.cs
- BitmapCacheBrush.cs
- RectValueSerializer.cs
- BatchWriter.cs
- RelAssertionDirectKeyIdentifierClause.cs
- KeyEvent.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- SystemDiagnosticsSection.cs
- SHA384.cs
- sqlpipe.cs
- SiteMapNode.cs
- LocalClientSecuritySettingsElement.cs
- MultiBinding.cs
- WorkerRequest.cs
- WorkflowFormatterBehavior.cs
- ExpressionBuilder.cs
- EventEntry.cs
- EndEvent.cs
- SourceLineInfo.cs
- PropertyChangingEventArgs.cs
- Column.cs
- TrackBar.cs