Update contrib.
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
19 #include "tasymmetricmisc.h"
21 #include <asymmetric.h>
25 #include "tbrokenrandom.h"
27 enum TActionMode {EDHKeyPair = 1, EDHPrivateKey =2, EDHPublicKey =3};
29 CTestAction* CAsymmetricMiscellaneous::NewL(RFs& aFs, CConsoleBase& aConsole, Output& aOut,
30 const TTestActionSpec& aTestActionSpec)
32 CTestAction* self = CAsymmetricMiscellaneous::NewLC(aFs, aConsole,
33 aOut, aTestActionSpec);
38 CTestAction* CAsymmetricMiscellaneous::NewLC(RFs& aFs, CConsoleBase& aConsole, Output& aOut,
39 const TTestActionSpec& aTestActionSpec)
41 CAsymmetricMiscellaneous* self = new(ELeave) CAsymmetricMiscellaneous(aFs, aConsole, aOut);
42 CleanupStack::PushL(self);
43 self->ConstructL(aTestActionSpec);
47 CAsymmetricMiscellaneous::~CAsymmetricMiscellaneous()
52 CAsymmetricMiscellaneous::CAsymmetricMiscellaneous(RFs& aFs, CConsoleBase& aConsole, Output& aOut)
53 : CTestAction(aConsole, aOut), iFs(aFs)
57 void CAsymmetricMiscellaneous::ConstructL(const TTestActionSpec& aTestActionSpec)
59 CTestAction::ConstructL(aTestActionSpec);
60 iBody = HBufC8::NewL(aTestActionSpec.iActionBody.Length());
61 iBody->Des().Copy(aTestActionSpec.iActionBody);
63 iActionMode = Input::ParseIntElement(*iBody, _L8("<actionmode>"), _L8("</actionmode>"));
65 HBufC8* g = Input::ParseElementHexL(*iBody, _L8("<g>"));
66 CleanupStack::PushL(g);
67 iG = RInteger::NewL(*g);
68 CleanupStack::PopAndDestroy(g);
70 HBufC8* n = Input::ParseElementHexL(*iBody, _L8("<n>"));
71 CleanupStack::PushL(n);
72 iN = RInteger::NewL(*n);
73 CleanupStack::PopAndDestroy(n);
75 HBufC8* x = Input::ParseElementHexL(*iBody, _L8("<x>"));
76 CleanupStack::PushL(x);
77 iX = RInteger::NewL(*x);
78 CleanupStack::PopAndDestroy(x);
81 void CAsymmetricMiscellaneous::DoPerformPrerequisite(TRequestStatus& aStatus)
83 TRequestStatus* status = &aStatus;
84 User::RequestComplete(status, KErrNone);
85 iActionState = CTestAction::EAction;
88 void CAsymmetricMiscellaneous::DoPerformPostrequisite(TRequestStatus& aStatus)
90 TRequestStatus* status = &aStatus;
93 User::RequestComplete(status, KErrNone);
96 void CAsymmetricMiscellaneous::DoReportAction(void)
100 void CAsymmetricMiscellaneous::DoCheckResult(TInt)
103 iConsole.Printf(_L("."));
105 iConsole.Printf(_L("X"));
108 void CAsymmetricMiscellaneous::PerformAction(TRequestStatus& aStatus)
111 TRequestStatus* status = &aStatus;
114 // Construction of dummy objects just to cover the left over methods.
119 CDHKeyPair* dhKeyPair = CDHKeyPair::NewLC(iN, iG, iX);
120 if (dhKeyPair == NULL)
124 CleanupStack::PopAndDestroy(dhKeyPair);
130 CDHPrivateKey* dhPrivateKey = CDHPrivateKey::NewLC(iN, iG, iX);
131 if (dhPrivateKey == NULL)
135 CleanupStack::PopAndDestroy(dhPrivateKey);
141 CDHPublicKey* dhPublicKeyPtr = CDHPublicKey::NewLC(iN, iG, iX);
142 if (dhPublicKeyPtr == NULL)
146 CleanupStack::PopAndDestroy(dhPublicKeyPtr);
153 User::RequestComplete(status, KErrNone);
154 iActionState = CTestAction::EPostrequisite;