os/security/cryptoservices/certificateandkeymgmt/tpkcs7/tpkcs7stepbase.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2002-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
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
#include "tpkcs7stepbase.h"
sl@0
    20
#include <test/testexecutelog.h>
sl@0
    21
sl@0
    22
CTPKCS7StepBase::~CTPKCS7StepBase()
sl@0
    23
	{
sl@0
    24
	delete iRawData;
sl@0
    25
	iFs.Close ();
sl@0
    26
	}
sl@0
    27
sl@0
    28
CTPKCS7StepBase::CTPKCS7StepBase()
sl@0
    29
	{
sl@0
    30
	}
sl@0
    31
sl@0
    32
HBufC8* CTPKCS7StepBase::readFileL (TPtrC tag)
sl@0
    33
	{
sl@0
    34
	TPtrC fileName;
sl@0
    35
	if (GetStringFromConfig(ConfigSection(), tag, fileName) == EFalse)
sl@0
    36
		{
sl@0
    37
		return NULL;
sl@0
    38
		}
sl@0
    39
sl@0
    40
	RFile file;
sl@0
    41
	if (file.Open(iFs, fileName, EFileRead) != KErrNone)
sl@0
    42
		{
sl@0
    43
		INFO_PRINTF2(_L("Cannot open file %S for reading"), &fileName);
sl@0
    44
		return NULL;
sl@0
    45
		}
sl@0
    46
	CleanupClosePushL(file);
sl@0
    47
sl@0
    48
	TInt fileSize = 0;
sl@0
    49
	User::LeaveIfError(file.Size(fileSize));
sl@0
    50
sl@0
    51
	HBufC8* result = HBufC8::NewL(fileSize);
sl@0
    52
	result->Des().SetLength(fileSize);
sl@0
    53
	
sl@0
    54
	TPtr8 rawDataPtr(result->Des());
sl@0
    55
	rawDataPtr.SetLength(fileSize);
sl@0
    56
	file.Read (rawDataPtr);
sl@0
    57
sl@0
    58
	CleanupStack::PopAndDestroy (&file);
sl@0
    59
sl@0
    60
	INFO_PRINTF3(_L("Read %d octets from %S"), result->Size(), &fileName);
sl@0
    61
sl@0
    62
	return result;
sl@0
    63
	}
sl@0
    64
sl@0
    65
TVerdict CTPKCS7StepBase::doTestStepPreambleL()
sl@0
    66
	{
sl@0
    67
	User::LeaveIfError (iFs.Connect());
sl@0
    68
sl@0
    69
	SetTestStepResult(EPass);
sl@0
    70
sl@0
    71
	iRawData = readFileL (_L("File"));
sl@0
    72
	if (iRawData == NULL)
sl@0
    73
		{
sl@0
    74
		INFO_PRINTF1(_L("Failed to read 'File' section of script"));
sl@0
    75
		SetTestStepResult(ETestSuiteError);
sl@0
    76
		}
sl@0
    77
sl@0
    78
	HBufC8* certificate = readFileL (_L("RootCertificate"));
sl@0
    79
	if (certificate == NULL)
sl@0
    80
		{
sl@0
    81
		INFO_PRINTF1(_L("No 'RootCertificate' available"));
sl@0
    82
		}
sl@0
    83
	else
sl@0
    84
		{
sl@0
    85
		CleanupStack::PushL (certificate);
sl@0
    86
		iRootCertificate = CX509Certificate::NewL(*certificate);
sl@0
    87
		CleanupStack::PopAndDestroy (certificate);
sl@0
    88
		}
sl@0
    89
sl@0
    90
     //for encrypted_data
sl@0
    91
     
sl@0
    92
     //get Salt value for comparison
sl@0
    93
     iSaltValue = readFileL (_L("Salt"));
sl@0
    94
     if(iSaltValue == NULL)
sl@0
    95
     	{
sl@0
    96
     	INFO_PRINTF1(_L("No 'Salt' available"));
sl@0
    97
     	}
sl@0
    98
      //get content data 
sl@0
    99
     iContentData = readFileL (_L("ContentData"));
sl@0
   100
     if(iContentData == NULL)
sl@0
   101
     	{
sl@0
   102
     	INFO_PRINTF1(_L("No 'ContentData' available"));
sl@0
   103
		}
sl@0
   104
      
sl@0
   105
     //for digest_Info
sl@0
   106
     //Digest
sl@0
   107
     iDigest = readFileL (_L("DigestValue")); 
sl@0
   108
     if(iDigest == NULL)
sl@0
   109
     	{
sl@0
   110
     	INFO_PRINTF1(_L("No 'DigestValue' available"));
sl@0
   111
     	} 	
sl@0
   112
     
sl@0
   113
     //EncodeParams
sl@0
   114
     iEncodedParams = readFileL (_L("EncodedParams"));  		
sl@0
   115
     if(iEncodedParams == NULL)
sl@0
   116
     	{
sl@0
   117
     	INFO_PRINTF1(_L("No 'EncodedParams' available"));
sl@0
   118
		}
sl@0
   119
   
sl@0
   120
	return TestStepResult();
sl@0
   121
	}
sl@0
   122