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
- XmlJsonWriter.cs
- RestClientProxyHandler.cs
- Privilege.cs
- ProtocolProfile.cs
- WindowsFormsHostAutomationPeer.cs
- GradientBrush.cs
- NonDualMessageSecurityOverHttp.cs
- WebPartConnectionsEventArgs.cs
- NamedPipeChannelFactory.cs
- DiscoveryClientDocuments.cs
- ViewgenGatekeeper.cs
- WebPartManagerDesigner.cs
- TextureBrush.cs
- FormsAuthenticationTicket.cs
- autovalidator.cs
- TextOutput.cs
- RotateTransform.cs
- Int64AnimationUsingKeyFrames.cs
- XmlnsCache.cs
- DataGrid.cs
- SqlDelegatedTransaction.cs
- TypeSemantics.cs
- DataGridViewColumnDesigner.cs
- Memoizer.cs
- Thread.cs
- SchemaNamespaceManager.cs
- FormatConvertedBitmap.cs
- RectangleGeometry.cs
- StrongNameIdentityPermission.cs
- FileVersionInfo.cs
- DbConnectionPoolCounters.cs
- CharUnicodeInfo.cs
- BuilderPropertyEntry.cs
- LookupBindingPropertiesAttribute.cs
- CompressedStack.cs
- VectorAnimationBase.cs
- ExceptionValidationRule.cs
- FixUp.cs
- InkCollectionBehavior.cs
- TypeElement.cs
- SubqueryRules.cs
- FontFamilyValueSerializer.cs
- DateRangeEvent.cs
- InplaceBitmapMetadataWriter.cs
- XmlObjectSerializerContext.cs
- Calendar.cs
- WebPartZone.cs
- Metafile.cs
- CodeParameterDeclarationExpressionCollection.cs
- CommandArguments.cs
- TabPage.cs
- MiniAssembly.cs
- ProfilePropertyMetadata.cs
- Point4D.cs
- StickyNoteContentControl.cs
- ColorMap.cs
- Rotation3DKeyFrameCollection.cs
- DocumentReferenceCollection.cs
- TreeView.cs
- AttachInfo.cs
- VectorCollection.cs
- ServerType.cs
- Bits.cs
- ToolStripContainerDesigner.cs
- mactripleDES.cs
- InstanceOwnerException.cs
- DataGridViewAutoSizeModeEventArgs.cs
- MessageQueueEnumerator.cs
- AsyncPostBackErrorEventArgs.cs
- x509store.cs
- Hex.cs
- DispatcherEventArgs.cs
- IisTraceListener.cs
- SqlBooleanMismatchVisitor.cs
- BindValidationContext.cs
- LocalTransaction.cs
- SessionPageStatePersister.cs
- BaseTemplateBuildProvider.cs
- PartitionedStreamMerger.cs
- SqlNodeTypeOperators.cs
- Compiler.cs
- _SslSessionsCache.cs
- HtmlProps.cs
- MediaSystem.cs
- SourceFileInfo.cs
- NetTcpBindingCollectionElement.cs
- StylusEditingBehavior.cs
- AppearanceEditorPart.cs
- WebConfigManager.cs
- AspCompat.cs
- WebServicesDescriptionAttribute.cs
- FileSystemEnumerable.cs
- ProfileSettingsCollection.cs
- InstanceBehavior.cs
- SqlFunctions.cs
- ContentElement.cs
- KeyboardEventArgs.cs
- ReferenceConverter.cs
- GacUtil.cs
- TextRenderer.cs