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
- ToolStripSettings.cs
- ReaderWriterLock.cs
- SystemIcmpV4Statistics.cs
- ByteAnimationBase.cs
- AuthorizationSection.cs
- XPathParser.cs
- serverconfig.cs
- Encoder.cs
- ConfigurationSettings.cs
- NativeMethods.cs
- DependencyObjectPropertyDescriptor.cs
- BitConverter.cs
- XmlAttributeCollection.cs
- GridViewCancelEditEventArgs.cs
- ScriptServiceAttribute.cs
- CodeConditionStatement.cs
- PrintPageEvent.cs
- Rect.cs
- QuadraticBezierSegment.cs
- GregorianCalendarHelper.cs
- XmlSerializationWriter.cs
- CheckBoxRenderer.cs
- ArraySubsetEnumerator.cs
- XmlException.cs
- ServicePointManagerElement.cs
- BindingList.cs
- MultipartContentParser.cs
- ClientRolePrincipal.cs
- returneventsaver.cs
- InkSerializer.cs
- HtmlContainerControl.cs
- errorpatternmatcher.cs
- IteratorFilter.cs
- TextParentUndoUnit.cs
- ScriptMethodAttribute.cs
- InvokeWebServiceDesigner.cs
- AutoGeneratedFieldProperties.cs
- TableRowGroup.cs
- AppearanceEditorPart.cs
- ReferentialConstraint.cs
- ReflectionPermission.cs
- XmlImplementation.cs
- XmlSerializerNamespaces.cs
- InputProcessorProfiles.cs
- Panel.cs
- HtmlTitle.cs
- EventSetterHandlerConverter.cs
- PropertyDescriptorComparer.cs
- SplineKeyFrames.cs
- XamlStream.cs
- SettingsContext.cs
- EnumMemberAttribute.cs
- StreamGeometry.cs
- CmsUtils.cs
- WinCategoryAttribute.cs
- NativeStructs.cs
- MenuItemBinding.cs
- SelectionListDesigner.cs
- StringInfo.cs
- HintTextMaxWidthConverter.cs
- AsymmetricAlgorithm.cs
- PermissionSetEnumerator.cs
- ConfigurationPermission.cs
- TextServicesContext.cs
- COMException.cs
- TimeSpanValidator.cs
- PerformanceCounterTraceRecord.cs
- BitmapInitialize.cs
- StylusButton.cs
- RenderDataDrawingContext.cs
- ProgressBar.cs
- FloatUtil.cs
- _Events.cs
- COM2ColorConverter.cs
- WebResourceUtil.cs
- SecurityUniqueId.cs
- WebPartMinimizeVerb.cs
- SQLInt32Storage.cs
- assemblycache.cs
- DataGridViewComboBoxEditingControl.cs
- BrowsableAttribute.cs
- EdmTypeAttribute.cs
- SeparatorAutomationPeer.cs
- StateDesigner.Helpers.cs
- RequestCachePolicyConverter.cs
- IndividualDeviceConfig.cs
- WSSecurityTokenSerializer.cs
- DataGridViewImageCell.cs
- StringInfo.cs
- DocumentPageHost.cs
- GreenMethods.cs
- AtomicFile.cs
- CellCreator.cs
- SatelliteContractVersionAttribute.cs
- SeparatorAutomationPeer.cs
- Selection.cs
- BatchServiceHost.cs
- ColumnMapTranslator.cs
- Registry.cs
- InvalidAsynchronousStateException.cs