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