crypto/weakcrypto/test/tpadding/tpaddingServer.cpp
author hgs
Thu, 24 Jun 2010 15:39:07 +0530
changeset 72 de46a57f75fb
permissions -rw-r--r--
201023_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     1
/*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     3
* All rights reserved.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     8
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    11
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    12
* Contributors:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    13
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    14
* Description: 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    15
* paddingServer.cpp
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    16
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    17
*/
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    18
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    19
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    20
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    21
#include "tpaddingServer.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    22
#include "tpaddingTestSteps.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    23
#include "tpaddingNone.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    24
#include "tpaddingSSLv3.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    25
#include "tpaddingPKCS1.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    26
#include "tpaddingPKCS7.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    27
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    28
// name of test server 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    29
_LIT(KServerName, "tpaddingServer");
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    30
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    31
// server class name
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    32
CPaddingServer* CPaddingServer::NewL()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    33
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    34
 * @return - Instance of the test server
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    35
 * Called inside the MainL() function to create and start the
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    36
 * CTestServer derived server.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    37
 */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    38
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    39
   // new server class 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    40
   CPaddingServer * server = new (ELeave) CPaddingServer();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    41
   CleanupStack::PushL(server);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    42
	
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    43
   // Either use a StartL or ConstructL, the latter will permit
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    44
   // Server Logging.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    45
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    46
   //server->StartL(KServerName); 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    47
   server->ConstructL(KServerName);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    48
   CleanupStack::Pop(server);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    49
   return server;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    50
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    51
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    52
// EKA2 much simpler
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    53
// Just an E32Main and a MainL()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    54
LOCAL_C void MainL()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    55
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    56
 * Much simpler, uses the new Rendezvous() call to sync with the client
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    57
 */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    58
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    59
   // Leave the hooks in for platform security
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    60
#if (defined __DATA_CAGING__)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    61
   RProcess().DataCaging(RProcess::EDataCagingOn);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    62
   RProcess().SecureApi(RProcess::ESecureApiOn);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    63
#endif
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    64
   CActiveScheduler* sched=NULL;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    65
   sched=new(ELeave) CActiveScheduler;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    66
   CActiveScheduler::Install(sched);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    67
   // server name
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    68
   CPaddingServer* server = NULL;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    69
   // Create the CTestServer derived server
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    70
   // server name
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    71
   TRAPD(err,server = CPaddingServer::NewL());
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    72
   if(!err)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    73
   {
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    74
      // Sync with the client and enter the active scheduler
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    75
      RProcess::Rendezvous(KErrNone);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    76
      sched->Start();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    77
   }
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    78
   delete server;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    79
   delete sched;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    80
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    81
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    82
// Only a DLL on emulator for typhoon and earlier
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    83
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    84
GLDEF_C TInt E32Main()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    85
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    86
 * @return - Standard Epoc error code on exit
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    87
 */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    88
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    89
   CTrapCleanup* cleanup = CTrapCleanup::New();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    90
   if(cleanup == NULL)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    91
   {
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    92
      return KErrNoMemory;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    93
   }
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    94
   TRAP_IGNORE(MainL());
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    95
   delete cleanup;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    96
   return KErrNone;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    97
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    98
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    99
// Create a thread in the calling process
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   100
// Emulator typhoon and earlier
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   101
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   102
CTestStep* CPaddingServer::CreateTestStep(const TDesC& aStepName)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   103
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   104
 * @return - A CTestStep derived instance
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   105
 * Implementation of CTestServer pure virtual
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   106
 */
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   107
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   108
   CTestStep* testStep = NULL;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   109
   // __EDIT_ME__ - Create your own test steps here
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   110
   // This server creates just one step but create as many as you want
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   111
   // They are created "just in time" when the worker thread is created
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   112
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   113
   if (aStepName == KPadNone)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   114
      testStep = new (ELeave) CTestPadNone();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   115
   else if (aStepName == KUnpadNone)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   116
      testStep = new (ELeave) CTestUnpadNone();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   117
   else if (aStepName == KPadSSLv3)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   118
      testStep = new (ELeave) CTestPadSSLv3();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   119
   else if (aStepName == KUnpadSSLv3)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   120
      testStep = new (ELeave) CTestUnpadSSLv3();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   121
   else if (aStepName == KPadPKCS1)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   122
      testStep = new (ELeave) CTestPadPKCS1();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   123
   else if (aStepName == KUnpadPKCS1)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   124
      testStep = new (ELeave) CTestUnpadPKCS1();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   125
   else if (aStepName == KPadPKCS7)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   126
      testStep = new (ELeave) CTestPadPKCS7();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   127
   else if (aStepName == KUnpadPKCS7)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   128
      testStep = new (ELeave) CTestUnpadPKCS7();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   129
   else if (aStepName == KUnpadCorruptPKCS7)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   130
      testStep = new (ELeave) CTestUnpadCorruptPKCS7(); 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   131
   else if (aStepName == KPaddingCorruptPKCS7)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   132
   	  testStep = new (ELeave) CTestPaddingCorruptPKCS7();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   133
   return testStep;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   134
}