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
- ModuleConfigurationInfo.cs
- ToolStripControlHost.cs
- DataPagerFieldCollection.cs
- DragDropManager.cs
- WhiteSpaceTrimStringConverter.cs
- GenericWebPart.cs
- FragmentQueryKB.cs
- CodeObjectCreateExpression.cs
- SegmentInfo.cs
- GZipStream.cs
- ForeignConstraint.cs
- XmlRootAttribute.cs
- Header.cs
- X509Extension.cs
- SimpleExpression.cs
- MarginCollapsingState.cs
- XmlDictionaryReaderQuotas.cs
- InternalBufferOverflowException.cs
- InputLanguageProfileNotifySink.cs
- MethodBuilder.cs
- CalculatedColumn.cs
- PreservationFileReader.cs
- BStrWrapper.cs
- x509utils.cs
- LateBoundBitmapDecoder.cs
- ParseChildrenAsPropertiesAttribute.cs
- AutomationPropertyInfo.cs
- PageThemeBuildProvider.cs
- PasswordRecovery.cs
- HttpListenerPrefixCollection.cs
- TypeTypeConverter.cs
- DeferredElementTreeState.cs
- SecurityUtils.cs
- SafeBitVector32.cs
- MiniLockedBorderGlyph.cs
- IDataContractSurrogate.cs
- ActiveXSerializer.cs
- QilInvoke.cs
- ComboBox.cs
- DataKeyArray.cs
- RoutedPropertyChangedEventArgs.cs
- DependsOnAttribute.cs
- DATA_BLOB.cs
- PeerServiceMessageContracts.cs
- SpellerInterop.cs
- ReferentialConstraint.cs
- _SslSessionsCache.cs
- SqlBulkCopy.cs
- Line.cs
- CleanUpVirtualizedItemEventArgs.cs
- WebPartConnectionsCancelVerb.cs
- XmlName.cs
- IPAddress.cs
- SQLStringStorage.cs
- SerializeAbsoluteContext.cs
- TabletCollection.cs
- OdbcCommandBuilder.cs
- TypeDescriptionProvider.cs
- ASCIIEncoding.cs
- DataList.cs
- BitmapEffectGeneralTransform.cs
- ConfigLoader.cs
- Serializer.cs
- StrokeNodeOperations2.cs
- LayoutManager.cs
- BeginStoryboard.cs
- WebBrowserContainer.cs
- Rotation3DAnimationBase.cs
- ProtocolsConfigurationHandler.cs
- CryptoStream.cs
- EmptyCollection.cs
- TabPage.cs
- securitycriticaldataformultiplegetandset.cs
- XmlAnyAttributeAttribute.cs
- ObjectReferenceStack.cs
- SmtpException.cs
- Brush.cs
- DataBoundLiteralControl.cs
- QueryExtender.cs
- XmlNamespaceManager.cs
- Transform3DGroup.cs
- CompatibleComparer.cs
- MessageQueueTransaction.cs
- AttachmentCollection.cs
- DesignBindingConverter.cs
- Dictionary.cs
- StringInfo.cs
- GetFileNameResult.cs
- BitStream.cs
- followingquery.cs
- PrimaryKeyTypeConverter.cs
- StringConverter.cs
- RegularExpressionValidator.cs
- PropertySegmentSerializer.cs
- StartUpEventArgs.cs
- FamilyTypefaceCollection.cs
- GeometryValueSerializer.cs
- XPathNode.cs
- ListMarkerLine.cs
- Vector3DIndependentAnimationStorage.cs