mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-23 03:46:10 +00:00
484 lines
28 KiB
C#
484 lines
28 KiB
C#
|
// Decompiled with JetBrains decompiler
|
|||
|
// Type: Microsoft.InfoCards.RequestFactory
|
|||
|
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
|
|||
|
// MVID: 1D4D5564-A025-490C-AF1D-DF4FBB709D1F
|
|||
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Virus.Win32.Expiro.w-f8f9f26e940480624825f6bddbea86e70fc4aa746c4dd8efa7d98dcb477000ed.exe
|
|||
|
|
|||
|
using Microsoft.InfoCards.Diagnostics;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Diagnostics;
|
|||
|
using System.IO;
|
|||
|
using System.Reflection;
|
|||
|
using System.Runtime.InteropServices;
|
|||
|
using System.Security.Principal;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace Microsoft.InfoCards
|
|||
|
{
|
|||
|
internal class RequestFactory
|
|||
|
{
|
|||
|
private const int MaxRequestBlobSize = 20971520;
|
|||
|
private static readonly RequestFactory.RequestName[] s_uiClientRequests = new RequestFactory.RequestName[4]
|
|||
|
{
|
|||
|
RequestFactory.RequestName.GetBrowserTokenRequest,
|
|||
|
RequestFactory.RequestName.GetTokenRequest,
|
|||
|
RequestFactory.RequestName.ImportRequest,
|
|||
|
RequestFactory.RequestName.ManageRequest
|
|||
|
};
|
|||
|
private static object s_createRequestSync = new object();
|
|||
|
private static Dictionary<string, RequestFactory.RequestName> s_requestMap = new Dictionary<string, RequestFactory.RequestName>(54);
|
|||
|
|
|||
|
private RequestFactory()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
static RequestFactory()
|
|||
|
{
|
|||
|
RequestFactory.s_requestMap["CloseCryptoHandleRequest"] = RequestFactory.RequestName.CloseCryptoHandleRequest;
|
|||
|
RequestFactory.s_requestMap["DecryptRequest"] = RequestFactory.RequestName.DecryptRequest;
|
|||
|
RequestFactory.s_requestMap["EncryptRequest"] = RequestFactory.RequestName.EncryptRequest;
|
|||
|
RequestFactory.s_requestMap["GenerateDerivedKeyRequest"] = RequestFactory.RequestName.GenerateDerivedKeyRequest;
|
|||
|
RequestFactory.s_requestMap["GetBrowserTokenRequest"] = RequestFactory.RequestName.GetBrowserTokenRequest;
|
|||
|
RequestFactory.s_requestMap["GetCryptoTransformRequest"] = RequestFactory.RequestName.GetCryptoTransformRequest;
|
|||
|
RequestFactory.s_requestMap["GetKeyedHashRequest"] = RequestFactory.RequestName.GetKeyedHashRequest;
|
|||
|
RequestFactory.s_requestMap["GetTokenRequest"] = RequestFactory.RequestName.GetTokenRequest;
|
|||
|
RequestFactory.s_requestMap["HashCoreRequest"] = RequestFactory.RequestName.HashCoreRequest;
|
|||
|
RequestFactory.s_requestMap["HashFinalRequest"] = RequestFactory.RequestName.HashFinalRequest;
|
|||
|
RequestFactory.s_requestMap["ImportRequest"] = RequestFactory.RequestName.ImportRequest;
|
|||
|
RequestFactory.s_requestMap["ManageRequest"] = RequestFactory.RequestName.ManageRequest;
|
|||
|
RequestFactory.s_requestMap["SignHashRequest"] = RequestFactory.RequestName.SignHashRequest;
|
|||
|
RequestFactory.s_requestMap["TransformBlockRequest"] = RequestFactory.RequestName.TransformBlockRequest;
|
|||
|
RequestFactory.s_requestMap["TransformFinalBlockRequest"] = RequestFactory.RequestName.TransformFinalBlockRequest;
|
|||
|
RequestFactory.s_requestMap["VerifyHashRequest"] = RequestFactory.RequestName.VerifyHashRequest;
|
|||
|
RequestFactory.s_requestMap["BeginCreateSecurityTokenRequest"] = RequestFactory.RequestName.BeginCreateSecurityTokenRequest;
|
|||
|
RequestFactory.s_requestMap["BeginSelectCardRequest"] = RequestFactory.RequestName.BeginSelectCardRequest;
|
|||
|
RequestFactory.s_requestMap["CancelAsyncOperationRequest"] = RequestFactory.RequestName.CancelAsyncOperationRequest;
|
|||
|
RequestFactory.s_requestMap["CheckStoreFileValidityRequest"] = RequestFactory.RequestName.CheckStoreFileValidityRequest;
|
|||
|
RequestFactory.s_requestMap["CreateCardRequest"] = RequestFactory.RequestName.CreateCardRequest;
|
|||
|
RequestFactory.s_requestMap["DeleteCardRequest"] = RequestFactory.RequestName.DeleteCardRequest;
|
|||
|
RequestFactory.s_requestMap["DeleteStoreRequest"] = RequestFactory.RequestName.DeleteStoreRequest;
|
|||
|
RequestFactory.s_requestMap["EndCreateSecurityTokenRequest"] = RequestFactory.RequestName.EndCreateSecurityTokenRequest;
|
|||
|
RequestFactory.s_requestMap["EndSelectCardRequest"] = RequestFactory.RequestName.EndSelectCardRequest;
|
|||
|
RequestFactory.s_requestMap["ExportFileRequest"] = RequestFactory.RequestName.ExportFileRequest;
|
|||
|
RequestFactory.s_requestMap["GetCertificateRequest"] = RequestFactory.RequestName.GetCertificateRequest;
|
|||
|
RequestFactory.s_requestMap["GetImportedCardRequest"] = RequestFactory.RequestName.GetImportedCardRequest;
|
|||
|
RequestFactory.s_requestMap["GetImportFileNameRequest"] = RequestFactory.RequestName.GetImportFileNameRequest;
|
|||
|
RequestFactory.s_requestMap["GetLedgerEntryForRecipientRequest"] = RequestFactory.RequestName.GetLedgerEntryForRecipientRequest;
|
|||
|
RequestFactory.s_requestMap["GetLedgerRequest"] = RequestFactory.RequestName.GetLedgerRequest;
|
|||
|
RequestFactory.s_requestMap["GetPolicyDetailsRequest"] = RequestFactory.RequestName.GetPolicyDetailsRequest;
|
|||
|
RequestFactory.s_requestMap["GetRecipientListRequest"] = RequestFactory.RequestName.GetRecipientListRequest;
|
|||
|
RequestFactory.s_requestMap["GetRecipientRequest"] = RequestFactory.RequestName.GetRecipientRequest;
|
|||
|
RequestFactory.s_requestMap["GetUserPreferenceRequest"] = RequestFactory.RequestName.GetUserPreferenceRequest;
|
|||
|
RequestFactory.s_requestMap["ImportFileRequest"] = RequestFactory.RequestName.ImportFileRequest;
|
|||
|
RequestFactory.s_requestMap["InfoCardListRequest"] = RequestFactory.RequestName.InfoCardListRequest;
|
|||
|
RequestFactory.s_requestMap["ListCardsInFileRequest"] = RequestFactory.RequestName.ListCardsInFileRequest;
|
|||
|
RequestFactory.s_requestMap["QueryStoreStatusRequest"] = RequestFactory.RequestName.QueryStoreStatusRequest;
|
|||
|
RequestFactory.s_requestMap["ResolvePPIDRequest"] = RequestFactory.RequestName.ResolvePPIDRequest;
|
|||
|
RequestFactory.s_requestMap["SaveCardRequest"] = RequestFactory.RequestName.SaveCardRequest;
|
|||
|
RequestFactory.s_requestMap["SaveLedgerEntryRequest"] = RequestFactory.RequestName.SaveLedgerEntryRequest;
|
|||
|
RequestFactory.s_requestMap["SaveRecipientRequest"] = RequestFactory.RequestName.SaveRecipientRequest;
|
|||
|
RequestFactory.s_requestMap["SendAgentStatusRequest"] = RequestFactory.RequestName.SendAgentStatusRequest;
|
|||
|
RequestFactory.s_requestMap["SetUserPreferenceRequest"] = RequestFactory.RequestName.SetUserPreferenceRequest;
|
|||
|
RequestFactory.s_requestMap["BeginGetFileNameFromUserRequest"] = RequestFactory.RequestName.BeginGetFileNameFromUserRequest;
|
|||
|
RequestFactory.s_requestMap["EndGetFileNameFromUserRequest"] = RequestFactory.RequestName.EndGetFileNameFromUserRequest;
|
|||
|
RequestFactory.s_requestMap["UIEndRequest"] = RequestFactory.RequestName.UIEndRequest;
|
|||
|
RequestFactory.s_requestMap["ListDependantCardsRequest"] = RequestFactory.RequestName.ListDependantCardsRequest;
|
|||
|
RequestFactory.s_requestMap["GetLastErrorDetailsRequest"] = RequestFactory.RequestName.GetLastErrorDetailsRequest;
|
|||
|
RequestFactory.s_requestMap["GetIsBrowserClientRequest"] = RequestFactory.RequestName.GetIsBrowserClientRequest;
|
|||
|
RequestFactory.s_requestMap["SetUserLanguageRequest"] = RequestFactory.RequestName.SetUserLanguageRequest;
|
|||
|
RequestFactory.s_requestMap["GetCardDetailsRequest"] = RequestFactory.RequestName.GetCardDetailsRequest;
|
|||
|
RequestFactory.s_requestMap["UnlockCardRequest"] = RequestFactory.RequestName.UnlockCardRequest;
|
|||
|
}
|
|||
|
|
|||
|
internal static int ProcessNewRequest(
|
|||
|
int parentRequestHandle,
|
|||
|
IntPtr rpcHandle,
|
|||
|
IntPtr inArgs,
|
|||
|
out IntPtr outArgs)
|
|||
|
{
|
|||
|
InfoCardTrace.Assert(null == WindowsIdentity.GetCurrent(true), "unexpected user context on incoming thread");
|
|||
|
int num = 0;
|
|||
|
outArgs = IntPtr.Zero;
|
|||
|
if (IntPtr.Zero == inArgs)
|
|||
|
return -1073413888;
|
|||
|
if (IntPtr.Zero == rpcHandle)
|
|||
|
return -1073413888;
|
|||
|
try
|
|||
|
{
|
|||
|
RpcRequest structure = (RpcRequest) Marshal.PtrToStructure(inArgs, typeof (RpcRequest));
|
|||
|
if (structure.Length < 0 || structure.Length > 20971520 || structure.Type == null || structure.Length > 0 && IntPtr.Zero == structure.Data)
|
|||
|
return -1073413888;
|
|||
|
Stream inStream;
|
|||
|
if (structure.Length != 0)
|
|||
|
{
|
|||
|
byte[] numArray = new byte[structure.Length];
|
|||
|
Marshal.Copy(structure.Data, numArray, 0, structure.Length);
|
|||
|
inStream = (Stream) new MemoryStream(numArray, 0, numArray.Length, false, false);
|
|||
|
}
|
|||
|
else
|
|||
|
inStream = (Stream) new MemoryStream();
|
|||
|
MemoryStream memoryStream = new MemoryStream();
|
|||
|
if (parentRequestHandle == 0)
|
|||
|
{
|
|||
|
using (UIAgentMonitorHandle monitorHandle = new UIAgentMonitorHandle())
|
|||
|
{
|
|||
|
using (ClientRequest clientRequestInstance = RequestFactory.CreateClientRequestInstance(monitorHandle, structure.Type, rpcHandle, inStream, (Stream) memoryStream))
|
|||
|
{
|
|||
|
num = clientRequestInstance.DoProcessRequest(out string _);
|
|||
|
RpcResponse outArgs1;
|
|||
|
RequestFactory.ConvertStreamToIntPtr(memoryStream, out outArgs1);
|
|||
|
outArgs = outArgs1.Marshal();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ClientUIRequest requestByHandle = (ClientUIRequest) Request.FindRequestByHandle(parentRequestHandle);
|
|||
|
InfoCardTrace.Assert(null != requestByHandle, "ParentRequest is null");
|
|||
|
using (UIAgentRequest agentRequestInstance = RequestFactory.CreateUIAgentRequestInstance(requestByHandle, structure.Type, rpcHandle, inStream, (Stream) memoryStream))
|
|||
|
{
|
|||
|
string extendedMessage;
|
|||
|
num = agentRequestInstance.DoProcessRequest(out extendedMessage);
|
|||
|
if (num != 0)
|
|||
|
Utility.SerializeString(new BinaryWriter((Stream) memoryStream, Encoding.Unicode), extendedMessage);
|
|||
|
RpcResponse outArgs2;
|
|||
|
RequestFactory.ConvertStreamToIntPtr(memoryStream, out outArgs2);
|
|||
|
outArgs = outArgs2.Marshal();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (TargetInvocationException ex)
|
|||
|
{
|
|||
|
if (ex.InnerException != null && ex.InnerException is InfoCardBaseException)
|
|||
|
num = ((InfoCardBaseException) ex.InnerException).NativeHResult;
|
|||
|
else
|
|||
|
InfoCardService.Crash((Exception) ex);
|
|||
|
}
|
|||
|
catch (InfoCardBaseException ex)
|
|||
|
{
|
|||
|
num = ex.NativeHResult;
|
|||
|
}
|
|||
|
catch (OutOfMemoryException ex)
|
|||
|
{
|
|||
|
num = -2147024882;
|
|||
|
}
|
|||
|
catch (EndOfStreamException ex)
|
|||
|
{
|
|||
|
num = -1073413863;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
InfoCardTrace.TraceAndLogException(ex);
|
|||
|
InfoCardService.Crash(ex);
|
|||
|
}
|
|||
|
return num;
|
|||
|
}
|
|||
|
|
|||
|
private static void ConvertStreamToIntPtr(MemoryStream outStream, out RpcResponse outArgs)
|
|||
|
{
|
|||
|
byte[] buffer = outStream.GetBuffer();
|
|||
|
outArgs = new RpcResponse();
|
|||
|
outArgs.Length = 0;
|
|||
|
outArgs.Data = IntPtr.Zero;
|
|||
|
if (buffer == null || buffer.Length == 0)
|
|||
|
return;
|
|||
|
IntPtr destination = Marshal.AllocHGlobal(buffer.Length);
|
|||
|
Marshal.Copy(buffer, 0, destination, buffer.Length);
|
|||
|
outArgs.Data = destination;
|
|||
|
outArgs.Length = buffer.Length;
|
|||
|
}
|
|||
|
|
|||
|
private static ClientRequest CreateClientRequestInstance(
|
|||
|
UIAgentMonitorHandle monitorHandle,
|
|||
|
string reqName,
|
|||
|
IntPtr rpcHandle,
|
|||
|
Stream inStream,
|
|||
|
Stream outStream)
|
|||
|
{
|
|||
|
ClientRequest clientRequestInstance = (ClientRequest) null;
|
|||
|
lock (RequestFactory.s_createRequestSync)
|
|||
|
{
|
|||
|
if (string.IsNullOrEmpty(reqName))
|
|||
|
throw InfoCardTrace.ThrowHelperError((Exception) new CommunicationException());
|
|||
|
RequestFactory.RequestName requestName = RequestFactory.s_requestMap.ContainsKey(reqName) ? RequestFactory.s_requestMap[reqName] : throw InfoCardTrace.ThrowHelperError((Exception) new CommunicationException());
|
|||
|
if (-1 != Array.IndexOf<RequestFactory.RequestName>(RequestFactory.s_uiClientRequests, requestName))
|
|||
|
{
|
|||
|
Process contextMapping = ClientUIRequest.GetContextMapping(rpcHandle, true);
|
|||
|
InfoCardTrace.ThrowInvalidArgumentConditional(null == contextMapping, nameof (rpcHandle));
|
|||
|
int tSSession = 0;
|
|||
|
if (!NativeMethods.ProcessIdToSessionId(contextMapping.Id, out tSSession))
|
|||
|
{
|
|||
|
int lastWin32Error = Marshal.GetLastWin32Error();
|
|||
|
throw InfoCardTrace.ThrowHelperError((Exception) new CommunicationException(SR.GetString("ServiceErrorGettingClientTSSession"), (Exception) new Win32Exception(lastWin32Error)));
|
|||
|
}
|
|||
|
WindowsIdentity executionIdentity = NativeMcppMethods.CreateServiceExecutionIdentity(contextMapping);
|
|||
|
InfoCardUIAgent agent = monitorHandle.CreateAgent(contextMapping.Id, executionIdentity, tSSession);
|
|||
|
switch (RequestFactory.s_requestMap[reqName])
|
|||
|
{
|
|||
|
case RequestFactory.RequestName.GetBrowserTokenRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new GetBrowserTokenRequest(contextMapping, executionIdentity, agent, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetTokenRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new GetTokenRequest(contextMapping, executionIdentity, agent, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ImportRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new ImportRequest(contextMapping, executionIdentity, agent, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ManageRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new ManageRequest(contextMapping, executionIdentity, agent, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw InfoCardTrace.ThrowHelperError((Exception) new CommunicationException());
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Process processFromRpcHandle = ClientRequest.GetCallingProcessFromRpcHandle(rpcHandle);
|
|||
|
WindowsIdentity executionIdentity = NativeMcppMethods.CreateServiceExecutionIdentity(processFromRpcHandle);
|
|||
|
switch (RequestFactory.s_requestMap[reqName])
|
|||
|
{
|
|||
|
case RequestFactory.RequestName.CloseCryptoHandleRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new CloseCryptoHandleRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.DecryptRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new DecryptRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.EncryptRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new EncryptRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GenerateDerivedKeyRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new GenerateDerivedKeyRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetCryptoTransformRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new GetCryptoTransformRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetKeyedHashRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new GetKeyedHashRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.HashCoreRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new HashCoreRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.HashFinalRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new HashFinalRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SignHashRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new SignHashRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.TransformBlockRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new TransformBlockRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.TransformFinalBlockRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new TransformFinalBlockRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.VerifyHashRequest:
|
|||
|
clientRequestInstance = (ClientRequest) new VerifyHashRequest(processFromRpcHandle, executionIdentity, rpcHandle, inStream, outStream);
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw InfoCardTrace.ThrowHelperError((Exception) new CommunicationException());
|
|||
|
}
|
|||
|
}
|
|||
|
clientRequestInstance.Initialize();
|
|||
|
}
|
|||
|
return clientRequestInstance;
|
|||
|
}
|
|||
|
|
|||
|
private static UIAgentRequest CreateUIAgentRequestInstance(
|
|||
|
ClientUIRequest parentRequest,
|
|||
|
string reqName,
|
|||
|
IntPtr rpcHandle,
|
|||
|
Stream inStream,
|
|||
|
Stream outStream)
|
|||
|
{
|
|||
|
UIAgentRequest agentRequestInstance = (UIAgentRequest) null;
|
|||
|
lock (RequestFactory.s_createRequestSync)
|
|||
|
{
|
|||
|
InfoCardTrace.Assert(!string.IsNullOrEmpty(reqName), "Null or empty request name");
|
|||
|
InfoCardTrace.Assert(RequestFactory.s_requestMap.ContainsKey(reqName), "Request map does not contain " + reqName);
|
|||
|
switch (RequestFactory.s_requestMap[reqName])
|
|||
|
{
|
|||
|
case RequestFactory.RequestName.BeginCreateSecurityTokenRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new BeginCreateSecurityTokenRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.BeginSelectCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new BeginSelectCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.CancelAsyncOperationRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new CancelAsyncOperationRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.CreateCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new CreateCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.CheckStoreFileValidityRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new CheckStoreFileValidityRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.DeleteCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new DeleteCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.DeleteStoreRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new DeleteStoreRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.EndCreateSecurityTokenRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new EndCreateSecurityTokenRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.EndSelectCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new EndSelectCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ExportFileRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new ExportFileRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetCertificateRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetCertificateRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetImportedCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetImportedCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetImportFileNameRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetImportFileNameRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetLedgerEntryForRecipientRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetLedgerEntryForRecipientRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetLedgerRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetLedgerRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetPolicyDetailsRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetPolicyDetailsRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetRecipientListRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetRecipientListRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetRecipientRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetRecipientRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetUserPreferenceRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetUserPreferenceRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ImportFileRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new ImportFileRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.InfoCardListRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new InfoCardListRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ListCardsInFileRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new ListCardsInFileRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.QueryStoreStatusRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new QueryStoreStatusRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ResolvePPIDRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new ResolvePPIDRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SaveCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new SaveCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SaveLedgerEntryRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new SaveLedgerEntryRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SaveRecipientRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new SaveRecipientRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SendAgentStatusRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new SendAgentStatusRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SetUserPreferenceRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new SetUserPreferenceRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.UIEndRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new UIEndRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.BeginGetFileNameFromUserRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new BeginGetFileNameFromUserRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.EndGetFileNameFromUserRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new EndGetFileNameFromUserRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.ListDependantCardsRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new ListDependantCardsRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetLastErrorDetailsRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetLastErrorDetailsRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetIsBrowserClientRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetIsBrowserClientRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.SetUserLanguageRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new SetUserLanguageRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.GetCardDetailsRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new GetCardDetailsRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
case RequestFactory.RequestName.UnlockCardRequest:
|
|||
|
agentRequestInstance = (UIAgentRequest) new UnlockCardRequest(rpcHandle, inStream, outStream, parentRequest);
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw InfoCardTrace.ThrowHelperError((Exception) new CommunicationException());
|
|||
|
}
|
|||
|
agentRequestInstance.Initialize();
|
|||
|
}
|
|||
|
return agentRequestInstance;
|
|||
|
}
|
|||
|
|
|||
|
private enum RequestName
|
|||
|
{
|
|||
|
CloseCryptoHandleRequest = 0,
|
|||
|
DecryptRequest = 1,
|
|||
|
EncryptRequest = 2,
|
|||
|
GenerateDerivedKeyRequest = 3,
|
|||
|
GetBrowserTokenRequest = 4,
|
|||
|
GetCryptoTransformRequest = 5,
|
|||
|
GetKeyedHashRequest = 6,
|
|||
|
GetTokenRequest = 7,
|
|||
|
HashCoreRequest = 8,
|
|||
|
HashFinalRequest = 9,
|
|||
|
ImportRequest = 10, // 0x0000000A
|
|||
|
ManageRequest = 11, // 0x0000000B
|
|||
|
SignHashRequest = 12, // 0x0000000C
|
|||
|
TransformBlockRequest = 13, // 0x0000000D
|
|||
|
TransformFinalBlockRequest = 14, // 0x0000000E
|
|||
|
VerifyHashRequest = 15, // 0x0000000F
|
|||
|
ClientRequestCount = 16, // 0x00000010
|
|||
|
AgentRequestCount = 38, // 0x00000026
|
|||
|
BeginCreateSecurityTokenRequest = 128, // 0x00000080
|
|||
|
BeginSelectCardRequest = 129, // 0x00000081
|
|||
|
CancelAsyncOperationRequest = 130, // 0x00000082
|
|||
|
CreateCardRequest = 131, // 0x00000083
|
|||
|
CheckStoreFileValidityRequest = 132, // 0x00000084
|
|||
|
DeleteCardRequest = 133, // 0x00000085
|
|||
|
DeleteStoreRequest = 134, // 0x00000086
|
|||
|
EndCreateSecurityTokenRequest = 135, // 0x00000087
|
|||
|
EndSelectCardRequest = 136, // 0x00000088
|
|||
|
ExportFileRequest = 137, // 0x00000089
|
|||
|
GetCertificateRequest = 138, // 0x0000008A
|
|||
|
GetImportedCardRequest = 139, // 0x0000008B
|
|||
|
GetImportFileNameRequest = 140, // 0x0000008C
|
|||
|
GetLedgerEntryForRecipientRequest = 141, // 0x0000008D
|
|||
|
GetLedgerRequest = 142, // 0x0000008E
|
|||
|
GetPolicyDetailsRequest = 143, // 0x0000008F
|
|||
|
GetRecipientListRequest = 144, // 0x00000090
|
|||
|
GetRecipientRequest = 145, // 0x00000091
|
|||
|
GetUserPreferenceRequest = 146, // 0x00000092
|
|||
|
ImportFileRequest = 147, // 0x00000093
|
|||
|
InfoCardListRequest = 148, // 0x00000094
|
|||
|
ListCardsInFileRequest = 149, // 0x00000095
|
|||
|
QueryStoreStatusRequest = 150, // 0x00000096
|
|||
|
ResolvePPIDRequest = 151, // 0x00000097
|
|||
|
SaveCardRequest = 152, // 0x00000098
|
|||
|
SaveLedgerEntryRequest = 153, // 0x00000099
|
|||
|
SaveRecipientRequest = 154, // 0x0000009A
|
|||
|
SendAgentStatusRequest = 155, // 0x0000009B
|
|||
|
SetUserPreferenceRequest = 156, // 0x0000009C
|
|||
|
UIEndRequest = 157, // 0x0000009D
|
|||
|
BeginGetFileNameFromUserRequest = 158, // 0x0000009E
|
|||
|
EndGetFileNameFromUserRequest = 159, // 0x0000009F
|
|||
|
ListDependantCardsRequest = 160, // 0x000000A0
|
|||
|
GetLastErrorDetailsRequest = 161, // 0x000000A1
|
|||
|
GetIsBrowserClientRequest = 162, // 0x000000A2
|
|||
|
SetUserLanguageRequest = 163, // 0x000000A3
|
|||
|
GetCardDetailsRequest = 164, // 0x000000A4
|
|||
|
UnlockCardRequest = 165, // 0x000000A5
|
|||
|
}
|
|||
|
}
|
|||
|
}
|