Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / HashFinalRequest.cs / 1 / HashFinalRequest.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace Microsoft.InfoCards
{
using System;
using System.IO;
using System.Diagnostics;
using System.Security.Principal;
using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace;
//
// Summary:
// Manages a hash request from the client against a specified cryptosession.
//
class HashFinalRequest : ClientRequest
{
//
// The cryptosession id we are attaching to.
//
int m_cryptoSession;
//
// The cleartext data we wish to transfrom
//
byte[] m_inBlock;
//
// The transformed data.
//
byte[] m_outBlock;
//
// Sumamry:
// Construct an HashFinalRequest 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 HashFinalRequest( Process callingProcess, WindowsIdentity callingIdentity, IntPtr rpcHandle, Stream inArgs, Stream outArgs )
: base( callingProcess, callingIdentity, rpcHandle, inArgs, outArgs )
{
IDT.TraceDebug( "Intiating an Encrypt request" );
}
protected override void OnMarshalInArgs()
{
IDT.DebugAssert( null != InArgs, "null inargs" );
BinaryReader reader = new InfoCardBinaryReader( InArgs );
m_cryptoSession = reader.ReadInt32();
int count = reader.ReadInt32();
m_inBlock = reader.ReadBytes( count );
IDT.ThrowInvalidArgumentConditional( 0 == m_cryptoSession, "cryptoSession" );
}
//
// Summary:
// Attach to the appropriate cryptosession and hash the data.
//
protected override void OnProcess()
{
try
{
HashCryptoSession session =
(HashCryptoSession) CryptoSession.Find( m_cryptoSession, CallerPid, RequestorIdentity.User );
m_outBlock = session.HashFinal( m_inBlock );
}
finally
{
Array.Clear( m_inBlock, 0, m_inBlock.Length );
}
}
protected override void OnMarshalOutArgs()
{
IDT.DebugAssert( null != OutArgs, "Null out args" );
IDT.DebugAssert( null != m_outBlock, "null outBlock buffer" );
BinaryWriter writer = new BinaryWriter( OutArgs );
Utility.SerializeBytes( writer, m_outBlock );
}
}
}
// 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
- NativeMethods.cs
- LicenseManager.cs
- LassoHelper.cs
- AssemblyFilter.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- LocalizabilityAttribute.cs
- GridErrorDlg.cs
- OutputCacheEntry.cs
- WebBrowserProgressChangedEventHandler.cs
- XPathEmptyIterator.cs
- DoubleCollection.cs
- TargetPerspective.cs
- PlaceHolder.cs
- ApplicationDirectoryMembershipCondition.cs
- HtmlElementCollection.cs
- ReferenceSchema.cs
- DispatcherEventArgs.cs
- AddDataControlFieldDialog.cs
- XmlSerializerVersionAttribute.cs
- PlainXmlSerializer.cs
- BindToObject.cs
- CheckBox.cs
- CTreeGenerator.cs
- GenericAuthenticationEventArgs.cs
- TabControl.cs
- SoapMessage.cs
- RegexNode.cs
- XamlTemplateSerializer.cs
- sqlnorm.cs
- ExtendedPropertyDescriptor.cs
- RTLAwareMessageBox.cs
- InputScope.cs
- SinglePhaseEnlistment.cs
- XmlSchemaObjectCollection.cs
- CachedBitmap.cs
- ControlParameter.cs
- DataStreamFromComStream.cs
- unsafenativemethodsother.cs
- TextProperties.cs
- InvalidWMPVersionException.cs
- TemplateLookupAction.cs
- wgx_sdk_version.cs
- MenuItemStyleCollection.cs
- MenuItemStyleCollection.cs
- DataGridAutoFormat.cs
- AttributeCollection.cs
- XmlHierarchyData.cs
- HtmlEncodedRawTextWriter.cs
- ToolStripTextBox.cs
- PerformanceCounterPermissionEntry.cs
- UnknownWrapper.cs
- MarkupCompiler.cs
- CodeDomConfigurationHandler.cs
- CompiledRegexRunnerFactory.cs
- SequentialUshortCollection.cs
- AssemblyName.cs
- Assembly.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- Transform.cs
- ObfuscationAttribute.cs
- CreateUserWizardAutoFormat.cs
- NativeObjectSecurity.cs
- TextParaLineResult.cs
- JournalNavigationScope.cs
- MaskedTextBox.cs
- FixedSOMImage.cs
- SymLanguageVendor.cs
- FlagsAttribute.cs
- AutoFocusStyle.xaml.cs
- SchemaNotation.cs
- GrammarBuilderRuleRef.cs
- BindingManagerDataErrorEventArgs.cs
- PasswordRecoveryDesigner.cs
- Processor.cs
- KeyFrames.cs
- X509CertificateValidator.cs
- MenuItemCollectionEditorDialog.cs
- DataServices.cs
- HashRepartitionEnumerator.cs
- TransformerConfigurationWizardBase.cs
- ChannelRequirements.cs
- DataServiceClientException.cs
- PrivateFontCollection.cs
- Vector3DConverter.cs
- ControlAdapter.cs
- GradientStop.cs
- ApplicationContext.cs
- CapabilitiesPattern.cs
- SettingsSection.cs
- storepermission.cs
- DataGridViewCellStyle.cs
- DynamicRouteExpression.cs
- LinearGradientBrush.cs
- XmlIlTypeHelper.cs
- SerializationInfoEnumerator.cs
- ResXDataNode.cs
- CalendarTable.cs
- TabControlEvent.cs
- TextTreeInsertElementUndoUnit.cs
- PingReply.cs