--- a/telephonyserverplugins/simtsy/test/Te_Sim/Te_SimUSimRel6Test.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simtsy/test/Te_Sim/Te_SimUSimRel6Test.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,4661 +1,4661 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Te_SimNetworkStatusTest.cpp
-//
-//
-
-#include "Te_SimUSimRel6Test.h"
-#include <testconfigfileparser.h>
-#include <etelmm.h>
-#include "SimConstants.h"
-
-/****************************************************************************\
- * *
- * Videomail Testcases *
- * *
- ****************************************************************************/
-
-CSimVideomailTest1::CSimVideomailTest1()
- {
- SetTestStepName(_L("VideomailTest1"));
- }
-
-TVerdict CSimVideomailTest1::doTestStepL()
-/**
-TEL-SIMTSY-MM-8653.
-Client retrieves mailbox dialling numbers successfully; writes a new phonebook entry successfully.
-*/
- {
- INFO_PRINTF1(_L("Testing Videomail features"));
- TRequestStatus stat0,stat1;
- RMobilePhone::TMobilePhoneVoicemailIdsV8 voicemailId;
- RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg voicemailIdPckg(voicemailId);
- iPhone.NotifyMailboxNumbersChange(stat0,voicemailIdPckg);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- TESTL(voicemailId.iData==iVoiceMailIds->At(0).iData);
- TESTL(voicemailId.iFax==iVoiceMailIds->At(0).iFax);
- TESTL(voicemailId.iOther==iVoiceMailIds->At(0).iOther);
- TESTL(voicemailId.iVoice==iVoiceMailIds->At(0).iVoice);
- TESTL(voicemailId.iVideo==iVoiceMailIds->At(0).iVideo);
-
- iPhone.GetMailboxNumbers(stat1,voicemailIdPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1==KErrNone);
- TESTL(voicemailId.iData==iVoiceMailIds->At(0).iData);
- TESTL(voicemailId.iFax==iVoiceMailIds->At(0).iFax);
- TESTL(voicemailId.iOther==iVoiceMailIds->At(0).iOther);
- TESTL(voicemailId.iVoice==iVoiceMailIds->At(0).iVoice);
- TESTL(voicemailId.iVideo==iVoiceMailIds->At(0).iVideo);
-
- INFO_PRINTF1(_L("Testing Get Phonebook store info from Phone level."));
- TESTL(iPhonebook.Open(iPhone,KETelIccMbdnPhoneBook,KEtelUSimPhoneBookType)==KErrNone);
- INFO_PRINTF1(_L("Opened Phonebook object"));
- INFO_PRINTF1(_L("Testing Phonebook Write"));
-
- TUint32 notifyEvent;
- TInt notifyIndex;
- iPhonebook.NotifyStoreEvent(stat1,notifyEvent,notifyIndex);
- TInt index=7;
- TBuf8<100> phBkBuf;
- phBkBuf.Copy(KTestPhonebookB,sizeof(KTestPhonebookB));
- iPhonebook.Write(stat0,phBkBuf,index);
- User::WaitForRequest(stat0);
- User::WaitForRequest(stat1);
- TESTL(notifyEvent==(RMobilePhoneStore::KStoreHasSpace |
- RMobilePhoneStore::KStoreEntryAdded));
- TESTL(notifyIndex==7);
- TInt numEntries=1;
- iPhonebook.Read(stat0,notifyIndex,numEntries,phBkBuf);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- iPhonebook.Close();
- return TestStepResult();
- }
-
-CSimVideomailTest2::CSimVideomailTest2()
- {
- SetTestStepName(_L("VideomailTest2"));
- }
-
-
-TVerdict CSimVideomailTest2::doTestStepL()
-/**
-TEL-SIMTSY-MM-8654.
-Client is notified of the change in videomail mailbox number successfully.
-*/
- {
- TRequestStatus stat0;
- RMobilePhone::TMobilePhoneVoicemailIdsV8 voicemailId;
- RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg voicemailIdPckg(voicemailId);
- iPhone.NotifyMailboxNumbersChange(stat0,voicemailIdPckg);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- TESTL(voicemailId.iData==iVoiceMailIds->At(0).iData);
- TESTL(voicemailId.iFax==iVoiceMailIds->At(0).iFax);
- TESTL(voicemailId.iOther==iVoiceMailIds->At(0).iOther);
- TESTL(voicemailId.iVoice==iVoiceMailIds->At(0).iVoice);
- TESTL(voicemailId.iVideo==iVoiceMailIds->At(0).iVideo);
- return TestStepResult();
- }
-
-CSimVideomailTest3::CSimVideomailTest3()
- {
- SetTestStepName(_L("VideomailTest3"));
- }
-
-TVerdict CSimVideomailTest3::doTestStepL()
-/**
-TEL-SIMTSY-MM-8655.
-Client retrieves message waiting indicators and sets one indicator to off successfully.
-*/
- {
- TRequestStatus stat0,stat1;
- RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaiting;
- RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckg(messageWaiting);
-
- TInt messageWaitCount;
- iPhone.NotifyMessageWaiting(stat0,messageWaitCount);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- TESTL(messageWaitCount==6);
-
- iPhone.NotifyIccMessageWaitingIndicatorsChange(stat1,messageWaitingPckg);
-
- messageWaiting.iDisplayStatus=iMessageWaiting->At(0).iDisplayStatus;
- messageWaiting.iVoiceMsgs=iMessageWaiting->At(0).iVoiceMsgs;
- messageWaiting.iAuxVoiceMsgs=iMessageWaiting->At(0).iAuxVoiceMsgs;
- messageWaiting.iDataMsgs=iMessageWaiting->At(0).iDataMsgs;
- messageWaiting.iFaxMsgs=iMessageWaiting->At(0).iFaxMsgs;
- messageWaiting.iEmailMsgs=iMessageWaiting->At(0).iEmailMsgs;
- messageWaiting.iOtherMsgs=iMessageWaiting->At(0).iOtherMsgs;
- messageWaiting.iVideoMsgs=iMessageWaiting->At(0).iVideoMsgs;
-
- iPhone.SetIccMessageWaitingIndicators(stat0,messageWaitingPckg);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- User::WaitForRequest(stat1);
- TESTL(stat1==KErrNone);
- TESTL(messageWaiting.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
- TESTL(messageWaiting.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
- TESTL(messageWaiting.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
- TESTL(messageWaiting.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
- TESTL(messageWaiting.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
- TESTL(messageWaiting.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
- TESTL(messageWaiting.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
- TESTL(messageWaiting.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
-
- iPhone.GetIccMessageWaitingIndicators(stat1,messageWaitingPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1==KErrNone);
- TESTL(messageWaiting.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
- TESTL(messageWaiting.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
- TESTL(messageWaiting.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
- TESTL(messageWaiting.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
- TESTL(messageWaiting.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
- TESTL(messageWaiting.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
- TESTL(messageWaiting.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
- TESTL(messageWaiting.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
-
- return TestStepResult();
- }
-
-CSimVideomailTest4::CSimVideomailTest4()
- {
- SetTestStepName(_L("VideomailTest4"));
- }
-
-TVerdict CSimVideomailTest4::doTestStepL()
-/**
-TEL-SIMTSY-MM-8656.
-Client is unable to set message waiting indicators due to absence of indicators on the UICC.
-*/
- {
- TRequestStatus stat0,stat1;
- RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaiting;
- RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckg(messageWaiting);
- RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaitingV8;
- RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckgV8(messageWaitingV8);
-
- TInt messageWaitCount;
- iPhone.NotifyMessageWaiting(stat0,messageWaitCount);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- TESTL(messageWaitCount==6);
-
- iPhone.NotifyIccMessageWaitingIndicatorsChange(stat1,messageWaitingPckgV8);
-
- iPhone.GetIccMessageWaitingIndicators(stat0,messageWaitingPckgV8);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrNone);
- TESTL(messageWaitingV8.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
- TESTL(messageWaitingV8.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
- TESTL(messageWaitingV8.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
- TESTL(messageWaitingV8.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
- TESTL(messageWaitingV8.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
- TESTL(messageWaitingV8.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
- TESTL(messageWaitingV8.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
- TESTL(messageWaitingV8.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
-
- messageWaiting.iDisplayStatus=iMessageWaiting->At(0).iDisplayStatus;
- messageWaiting.iVoiceMsgs=iMessageWaiting->At(0).iVoiceMsgs;
- messageWaiting.iAuxVoiceMsgs=iMessageWaiting->At(0).iAuxVoiceMsgs;
- messageWaiting.iDataMsgs=iMessageWaiting->At(0).iDataMsgs;
- messageWaiting.iFaxMsgs=iMessageWaiting->At(0).iFaxMsgs;
- messageWaiting.iEmailMsgs=iMessageWaiting->At(0).iEmailMsgs;
- messageWaiting.iOtherMsgs=iMessageWaiting->At(0).iOtherMsgs;
- iPhone.SetIccMessageWaitingIndicators(stat0,messageWaitingPckg);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrCorrupt);
- User::WaitForRequest(stat1);
- TESTL(stat1==KErrNone);
- TESTL(messageWaitingV8.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
- TESTL(messageWaitingV8.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
- TESTL(messageWaitingV8.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
- TESTL(messageWaitingV8.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
- TESTL(messageWaitingV8.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
- TESTL(messageWaitingV8.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
- TESTL(messageWaitingV8.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
- TESTL(messageWaitingV8.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
-
- return TestStepResult();
- }
-
-
-
-CSimVideomailTest5::CSimVideomailTest5()
- {
- SetTestStepName(_L("VideomailTest5"));
- }
-
-TVerdict CSimVideomailTest5::doTestStepL()
-/**
-TEL-SIMTSY-MM-8657.
-Cancel Message waiting and MBDN requests. (All APIs)
-*/
- {
- TRequestStatus stat0,stat1;
- RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaiting;
- RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckg(messageWaiting);
-
- TInt messageWaitCount;
- iPhone.NotifyMessageWaiting(stat0,messageWaitCount);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyMessageWaiting);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrCancel);
-
- iPhone.NotifyIccMessageWaitingIndicatorsChange(stat1,messageWaitingPckg);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyIccMessageWaitingIndicatorsChange);
- User::WaitForRequest(stat1);
- TESTL(stat1==KErrCancel);
-
- RMobilePhone::TMobilePhoneVoicemailIdsV8 voicemailId;
- RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg voicemailIdPckg(voicemailId);
- iPhone.NotifyMailboxNumbersChange(stat0,voicemailIdPckg);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyMailboxNumbersChange);
- User::WaitForRequest(stat0);
- TESTL(stat0==KErrCancel);
-
- return TestStepResult();
- }
-
-/****************************************************************************\
- * *
- * Wireless Local Area Network Testcases *
- * *
- ****************************************************************************/
-
-CSimWlanTest1::CSimWlanTest1()
- {
- SetTestStepName(_L("Wlan Test1"));
- }
-
-TVerdict CSimWlanTest1::doTestStepL()
-/**
-TEL-SIMTSY-MM-8663.
-Client stores the Wlan parameters on USIM successfully.
-*/
- {
- // local variables used throughout the tests
- TRequestStatus reqStatus,aReqStatus,stat0,reqStatus1;
- RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- RMobilePhone::TMobilePassword code = _L("1111");
- RMobilePhone::TMobilePassword unblockCode = _L("1111");
- RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
- iPhone.NotifySecurityEvent(aReqStatus,securityEvent);
- usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
- iPhone.NotifyWlanDataChange(reqStatus1,usimWlanDataV8Pckgd);
-
- TestSmartCardAuthenticate();
-
- usimWlanDataV8.iPseudonym = iWlanData->At(0).iPseudonym ;
- usimWlanDataV8.iReauthenticationId = iWlanData->At(0).iReauthenticationId;
- iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
-
- iPhone.NotifySecurityEvent(stat0,securityEvent);
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- User::WaitForRequest(stat0);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
- User::WaitForRequest(reqStatus);
- User::WaitForRequest(reqStatus1);
- TEST(reqStatus.Int() == KErrNone);
- TEST(reqStatus1.Int() == KErrNone);
- TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(0).iFieldsUsed);
- TEST(usimWlanDataV8.iPseudonym == iWlanData->At(0).iPseudonym);
- TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(0).iReauthenticationId);
- return TestStepResult();
- }
-
-CSimWlanTest2::CSimWlanTest2()
- {
- SetTestStepName(_L("Wlan Test2"));
- }
-
-TVerdict CSimWlanTest2::doTestStepL()
-/**
-TEL-SIMTSY-MM-8664.
-Client is unable to store the Wlan parameters on USIM due to PIN verification failure.
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- RMobilePhone::TMobilePassword code = _L("2222");
- RMobilePhone::TMobilePassword unblockCode = _L("1111");
- RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
- iPhone.NotifySecurityEvent(stat0,securityEvent);
-
- TestSmartCardAuthenticate();
-
- usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
- usimWlanDataV8.iPseudonym = SIMTSY_PHONE_WLAN_ACESS_DENIED;
- usimWlanDataV8.iReauthenticationId = iWlanData->At(1).iReauthenticationId;
- iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(stat0);
- TEST(stat0.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrAccessDenied);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrAccessDenied);
- return TestStepResult();
- }
-
-CSimWlanTest3::CSimWlanTest3()
- {
- SetTestStepName(_L("Wlan Test3"));
- }
-
-TVerdict CSimWlanTest3::doTestStepL()
-/**
-TEL-SIMTSY-MM-8665.
-Client, at its own will, retrieves WLAN parameters from USIM successfully.
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- RMobilePhone::TMobilePassword code = _L("1111");
- RMobilePhone::TMobilePassword unblockCode = _L("1111");
- RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
- iPhone.NotifySecurityEvent(stat0,securityEvent);
-
- usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
- iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(stat0);
- TEST(stat0.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
-
- iPhone.NotifySecurityEvent(stat0,securityEvent);
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- User::WaitForRequest(stat0);
- User::WaitForRequest(reqStatus);
- TEST(stat0.Int() == KErrNone);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(reqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
- TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(1).iFieldsUsed);
- TEST(usimWlanDataV8.iPseudonym == iWlanData->At(1).iPseudonym);
- TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(1).iReauthenticationId);
- TEST(usimWlanDataV8.iMasterKey == iWlanData->At(1).iMasterKey);
- TEST(usimWlanDataV8.iCounter == iWlanData->At(1).iCounter);
- return TestStepResult();
- }
-
-CSimWlanTest4::CSimWlanTest4()
- {
- SetTestStepName(_L("Wlan Test4"));
- }
-
-TVerdict CSimWlanTest4::doTestStepL()
-/**
-TEL-SIMTSY-MM-8667.
-Client is unable to retrieve WLAN parameters from USIM due to lack of support in USIM service table
-*/
- {
- TRequestStatus reqStatus;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- usimWlanDataV8.iCounter = iWlanData->At(2).iCounter;
- iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotSupported);
- return TestStepResult();
- }
-
-CSimWlanTest5::CSimWlanTest5()
- {
- SetTestStepName(_L("Wlan Test5"));
- }
-
-TVerdict CSimWlanTest5::doTestStepL()
-/**
-TEL-SIMTSY-MM-8670.
-Client is unable to retrieve WLAN parameters from USIM due to PIN verification failure.
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0,reqStatus1;
- RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- RMobilePhone::TMobilePassword code = _L("1111");
- RMobilePhone::TMobilePassword unblockCode = _L("1111");
- RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
- iPhone.NotifySecurityEvent(aReqStatus,securityEvent);
- usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
- iPhone.NotifyWlanDataChange(reqStatus1,usimWlanDataV8Pckgd);
-
- TestSmartCardAuthenticate();
-
- usimWlanDataV8.iPseudonym = iWlanData->At(0).iPseudonym ;
- usimWlanDataV8.iReauthenticationId = iWlanData->At(0).iReauthenticationId;
- iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
-
- iPhone.NotifySecurityEvent(stat0,securityEvent);
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- User::WaitForRequest(stat0);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
- User::WaitForRequest(reqStatus);
- User::WaitForRequest(reqStatus1);
- TEST(reqStatus.Int() == KErrNone);
- TEST(reqStatus1.Int() == KErrNone);
- TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(0).iFieldsUsed);
- TEST(usimWlanDataV8.iPseudonym == iWlanData->At(0).iPseudonym);
- TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(0).iReauthenticationId);
-
- code = _L("2222");
- iPhone.NotifySecurityEvent(stat0,securityEvent);
- usimWlanDataV8.iPseudonym = SIMTSY_PHONE_WLAN_ACESS_DENIED;
- iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(stat0);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
-
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrAccessDenied);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrAccessDenied);
- return TestStepResult();
- }
-
-CSimWlanTest6::CSimWlanTest6()
- {
- SetTestStepName(_L("Wlan Test6"));
- }
-
-TVerdict CSimWlanTest6::doTestStepL()
-/**
-TEL-SIMTSY-MM-8669.
-Client is unable to retrieve WLAN parameters from USIM due to due to inactive USIM application.
-*/
- {
- TRequestStatus reqStatus,aReqStatus;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
- RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
- RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
- authenticateData.iAUTN = KConfigScWlanAuthAUTN();
- authenticateData.iRAND = KConfigScWlanAuthRAND();
- authenticateData.iCK = KConfigScWlan();
-
- RMobilePhone::TAID appAID;
- iPhone.SmartCardAuthenticate(aReqStatus,appAID,authenticateDataPckg);
- usimWlanDataV8.iPseudonym = SIMTSY_PHONE_WLAN_ACESS_DENIED;
- iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(aReqStatus);
- TESTL(aReqStatus==KErrMMEtelScApplicationNotActive);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrAccessDenied);
- return TestStepResult();
- }
-
-CSimWlanTest7::CSimWlanTest7()
- {
- SetTestStepName(_L("Wlan Test7"));
- }
-
-TVerdict CSimWlanTest7::doTestStepL()
-/**
-TEL-SIMTSY-MM-8671.
-Client retrieves the preferred networks list present on the UICC successfully.
-*/
- {
- CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
- preferredNetworks->Start();
- CActiveScheduler::Start();
- delete preferredNetworks->iTestPhone->iNetworkList;
- delete preferredNetworks->iTestPhone->iWlanList;
- delete preferredNetworks;
- return TestStepResult();
- }
-
-CSimWlanTest8::CSimWlanTest8()
- {
- SetTestStepName(_L("Wlan Test8"));
- }
-
-TVerdict CSimWlanTest8::doTestStepL()
-/**
-TEL-SIMTSY-MM-8674.
-Client retrieves the WLAN SID list present on the UICC successfully.
-*/
- {
- CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
- preferredWlanSidsList->Start();
- CActiveScheduler::Start();
- delete preferredWlanSidsList->iTestWLAN->iNetworkList;
- delete preferredWlanSidsList->iTestWLAN->iWlanList;
- delete preferredWlanSidsList;
- return TestStepResult();
- }
-
-CSimWlanTest9::CSimWlanTest9()
- {
- SetTestStepName(_L("Wlan Test9"));
- }
-
-TVerdict CSimWlanTest9::doTestStepL()
-/**
-TEL-SIMTSY-MM-8675.
-Client edits the WLAN SID list and stores back on UICC successfully.
-*/
- {
- TRequestStatus reqStatus,aReqStatus;
- iPhone.NotifyPreferredWlanSIDListChange(aReqStatus);
- CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
- preferredWlanSidsList->Start();
- CActiveScheduler::Start();
- RMobilePhone::TWlanSIDV8 wlanSIDV8_1;
- wlanSIDV8_1.iWSID = iWlanSid->At(0).iWSID;
- wlanSIDV8_1.iUserDefined = iWlanSid->At(0).iUserDefined;
- preferredWlanSidsList->iTestWLAN->iWlanList->ChangeEntryL(0,wlanSIDV8_1);
- preferredWlanSidsList->iTestWLAN->iWlanList->DeleteEntryL(1);
- preferredWlanSidsList->iTestWLAN->iWlanList->AddEntryL(wlanSIDV8_1);
- iPhone.StorePreferredWlanSIDListL(reqStatus,preferredWlanSidsList->iTestWLAN->iWlanList);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrNone);
- delete preferredWlanSidsList->iTestWLAN->iNetworkList;
- delete preferredWlanSidsList->iTestWLAN->iWlanList;
- delete preferredWlanSidsList;
- return TestStepResult();
- }
-
-CSimWlanTest10::CSimWlanTest10()
- {
- SetTestStepName(_L("Wlan Test10"));
- }
-
-TVerdict CSimWlanTest10::doTestStepL()
-/**
-TEL-SIMTSY-MM-8684
-Test to cancel all the WLAN APIs successfully.
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
- iPhone.NotifyPreferredWlanSIDListChange(aReqStatus);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyPreferredWlanSIDListChange);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrCancel);
-
- iPhone.NotifyPreferredNetworksListChange(reqStatus);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyStorePreferredNetworksListChange);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrCancel);
-
- usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
- iPhone.NotifyWlanDataChange(reqStatus,usimWlanDataV8Pckgd);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyWlanDataChange);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrCancel);
-
- //preferredWlanSids Cancel
- CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
- preferredWlanSidsList->Start();
- preferredWlanSidsList->Cancel();
- User::After(1500000L);
-
- CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
- preferredNetworks->Start();
- preferredNetworks->Cancel();
- User::After(1500000L);
-
- delete preferredWlanSidsList;
- delete preferredNetworks;
- return TestStepResult();
- }
-
-CSimWlanTest11::CSimWlanTest11()
- {
- SetTestStepName(_L("Wlan Test11"));
- }
-
-TVerdict CSimWlanTest11::doTestStepL()
-/**
-TEL-SIMTSY-MM-8676.
-Client is unable to store the WLAN SID list back on the UICC because the submitted list is larger than the expected.
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- iPhone.NotifyPreferredWlanSIDListChange(aReqStatus);
- CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
- preferredWlanSidsList->Start();
- CActiveScheduler::Start();
- RMobilePhone::TWlanSIDV8 wlanSIDV8_1;
- wlanSIDV8_1.iWSID = iWlanSid->At(0).iWSID;
- wlanSIDV8_1.iUserDefined = iWlanSid->At(0).iUserDefined;
- preferredWlanSidsList->iTestWLAN->iWlanList->AddEntryL(wlanSIDV8_1);
-
- iPhone.StorePreferredWlanSIDListL(reqStatus,preferredWlanSidsList->iTestWLAN->iWlanList);
- User::WaitForRequest(reqStatus);
-
- TEST(reqStatus.Int() == KErrNoMemory);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrNone);
- delete preferredWlanSidsList->iTestWLAN->iWlanList;
- delete preferredWlanSidsList->iTestWLAN->iNetworkList;
- delete preferredWlanSidsList;
- return TestStepResult();
- }
-
-CSimWlanTest12::CSimWlanTest12()
- {
- SetTestStepName(_L("Wlan Test12"));
- }
-
-TVerdict CSimWlanTest12::doTestStepL()
-/**
-TEL-SIMTSY-MM-8677.
-Test SetWlanData with different capability
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- TInt ret;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
- usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
- usimWlanDataV8.iPseudonym = iWlanData->At(1).iPseudonym ;
- usimWlanDataV8.iReauthenticationId = iWlanData->At(1).iReauthenticationId;
- usimWlanDataV8.iMasterKey = iWlanData->At(1).iMasterKey;
- usimWlanDataV8.iCounter = iWlanData->At(1).iCounter;
- iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- ret=reqStatus.Int();
- INFO_PRINTF2(_L("ret=%d"),ret);
- TEST(reqStatus.Int() == KErrPermissionDenied);
- return TestStepResult();
- }
-
-CSimWlanTest13::CSimWlanTest13()
- {
- SetTestStepName(_L("Wlan Test13"));
- }
-
-TVerdict CSimWlanTest13::doTestStepL()
-/**
-TEL-SIMTSY-MM-8678.
-Test GetWlanData with different capability
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
- usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
- iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrPermissionDenied);
- return TestStepResult();
- }
-
-CSimWlanTest14::CSimWlanTest14()
- {
- SetTestStepName(_L("Wlan Test14"));
- }
-
-TVerdict CSimWlanTest14::doTestStepL()
-/**
-TEL-SIMTSY-MM-8679.
-Test NotifyWlanDataChange with different capability
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
- iPhone.NotifyWlanDataChange(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int()==KErrPermissionDenied);
-
- return TestStepResult();
- }
-
-CSimWlanTest15::CSimWlanTest15()
- {
- SetTestStepName(_L("Wlan Test15"));
- }
-
-TVerdict CSimWlanTest15::doTestStepL()
-/**
-TEL-SIMTSY-MM-8681.Test
-StorePreferredWlanSIDListL with different capability
-*/
- {
- TRequestStatus reqStatus,aReqStatus,stat0;
- RMobilePhone::TWlanSIDV8 wlanSIDV8_1;
- RMobilePhone::TWlanSIDV8 wlanSIDV8_2;
- RMobilePhone::TWlanSIDV8 wlanSIDV8_3;
-
- CMobilePhoneStoredWlanSIDList* wlanSIDlist;
- wlanSIDlist = CMobilePhoneStoredWlanSIDList::NewL();
- CleanupStack::PushL(wlanSIDlist);
-
- wlanSIDV8_1.iWSID = iWlanSid->At(0).iWSID;
- wlanSIDV8_2.iWSID = iWlanSid->At(1).iWSID;
- wlanSIDV8_3.iWSID = iWlanSid->At(2).iWSID;
-
- wlanSIDV8_1.iUserDefined = iWlanSid->At(0).iUserDefined;
- wlanSIDV8_2.iUserDefined = iWlanSid->At(1).iUserDefined;
- wlanSIDV8_3.iUserDefined = iWlanSid->At(2).iUserDefined;
-
- wlanSIDlist->AddEntryL(wlanSIDV8_1);
- wlanSIDlist->AddEntryL(wlanSIDV8_2);
- wlanSIDlist->AddEntryL(wlanSIDV8_3);
-
- iPhone.StorePreferredWlanSIDListL(reqStatus,wlanSIDlist);
- User::WaitForRequest(reqStatus);
-
- TEST(reqStatus.Int()==KErrPermissionDenied);
- CleanupStack::PopAndDestroy();
- return TestStepResult();
- }
-
-CSimWlanTest16::CSimWlanTest16()
- {
- SetTestStepName(_L("Wlan Test16"));
- }
-
-TVerdict CSimWlanTest16::doTestStepL()
-/**
-TEL-SIMTSY-MM-8682
-Test StorePreferredNetworksListL() with different capability
-*/
- {
- TRequestStatus reqStatus;
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry1;
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry2;
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry3;
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry4; //- FOR WLAN
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntryFetch;
-
- preferredNetworkEntry4.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN;
- preferredNetworkEntry4.iUserDefined = iPreferredNetworks->At(0).iUserDefined;
- preferredNetworkEntry4.iCountryCode = iPreferredNetworks->At(0).iCountryCode;
- preferredNetworkEntry4.iNetworkId = iPreferredNetworks->At(0).iNetworkId;
-
- preferredNetworkEntry3.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN;
- preferredNetworkEntry3.iUserDefined = iPreferredNetworks->At(1).iUserDefined;
- preferredNetworkEntry3.iCountryCode = iPreferredNetworks->At(1).iCountryCode;
- preferredNetworkEntry3.iNetworkId = iPreferredNetworks->At(1).iNetworkId;
-
- preferredNetworkEntry2.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC;
- preferredNetworkEntry2.iUserDefined = iPreferredNetworks->At(2).iUserDefined;
- preferredNetworkEntry2.iCountryCode = iPreferredNetworks->At(2).iCountryCode;
- preferredNetworkEntry2.iNetworkId = iPreferredNetworks->At(2).iNetworkId;
-
- preferredNetworkEntry1.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
- preferredNetworkEntry1.iUserDefined = iPreferredNetworks->At(3).iUserDefined;
- preferredNetworkEntry1.iCountryCode = iPreferredNetworks->At(3).iCountryCode;
- preferredNetworkEntry1.iNetworkId = iPreferredNetworks->At(3).iNetworkId;
-
- CMobilePhoneStoredNetworkList* networklist = CMobilePhoneStoredNetworkList::NewL();
- CleanupStack::PushL(networklist);
-
- //add at the end
-
- networklist->AddEntryL(preferredNetworkEntry4); //- FOR WLAN
- networklist->AddEntryL(preferredNetworkEntry3);
- networklist->AddEntryL(preferredNetworkEntry2);
- networklist->AddEntryL(preferredNetworkEntry1);
-
- iPhone.StorePreferredNetworksListL(reqStatus, networklist);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int()==KErrPermissionDenied);
- CleanupStack::PopAndDestroy(); // networklist
- return TestStepResult();
- }
-
-CSimWlanTest17::CSimWlanTest17()
- {
- SetTestStepName(_L("Wlan Test17"));
- }
-
-TVerdict CSimWlanTest17::doTestStepL()
-/**
-TEL-SIMTSY-MM-8680.
-Test CRetrieveMobilePhonePreferredWlanSIDs::Start with different capability
-*/
- {
- CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
- preferredWlanSidsList->Start();
- CActiveScheduler::Start();
-
- delete preferredWlanSidsList;
- return TestStepResult();
- }
-
-CSimWlanTest18::CSimWlanTest18()
- {
- SetTestStepName(_L("Wlan Test18"));
- }
-
-TVerdict CSimWlanTest18::doTestStepL()
-/**
-TEL-SIMTSY-MM-8683.
-Test CRetrieveMobilePhonePreferredNetworks::Start with different capability.
-*/
- {
- CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
- preferredNetworks->Start();
- CActiveScheduler::Start();
- delete preferredNetworks->iTestPhone->iNetworkList;
- delete preferredNetworks->iTestPhone->iWlanList;
- delete preferredNetworks;
- return TestStepResult();
- }
-CSimWlanTest19::CSimWlanTest19()
- {
- SetTestStepName(_L("Wlan Test19"));
- }
-
-TVerdict CSimWlanTest19::doTestStepL()
-/**
-TEL-SIMTSY-MM-8673.
-Client is unable to store the list back on the UICC because the submitted list is larger than the expected.
-*/
- {
- TRequestStatus reqStatus,aReqStatus;
- INFO_PRINTF1(_L("Test - RMobilePhone::NotifyPreferredWlanSIDListChange async"));
- iPhone.NotifyPreferredNetworksListChange(aReqStatus);
-
- CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
- preferredNetworks->Start();
- CActiveScheduler::Start();
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry1;
-
- preferredNetworkEntry1.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
- preferredNetworkEntry1.iUserDefined = iPreferredNetworks->At(3).iUserDefined;
- preferredNetworkEntry1.iCountryCode = iPreferredNetworks->At(3).iCountryCode;
- preferredNetworkEntry1.iNetworkId = iPreferredNetworks->At(3).iNetworkId;
-
- preferredNetworks->iTestPhone->iNetworkList->AddEntryL(preferredNetworkEntry1);
-
- iPhone.StorePreferredNetworksListL(reqStatus,preferredNetworks->iTestPhone->iNetworkList);
- User::WaitForRequest(reqStatus);
- User::WaitForRequest(aReqStatus);
- TEST(reqStatus.Int() == KErrNoMemory);
- TEST(aReqStatus.Int() == KErrNone);
-
- delete preferredNetworks->iTestPhone->iNetworkList;
- delete preferredNetworks->iTestPhone->iWlanList;
- delete preferredNetworks;
- return TestStepResult();
- }
-
-CSimWlanTest20::CSimWlanTest20()
- {
- SetTestStepName(_L("Wlan Test20"));
- }
-
-TVerdict CSimWlanTest20::doTestStepL()
-/**
-TEL-SIMTSY-MM-8668.
-Client confirms on the support of WLAN functionality by the USIM.
-*/
- {
- //Verify the support of WLAN in USIM Service Table
- TRequestStatus reqStatus;
- RMobilePhone::TMobilePhoneServiceTableV8 asyncSstV8File;
- RMobilePhone::TMobilePhoneServiceTableV8Pckg asyncSstV8FilePckg(asyncSstV8File);
- RMobilePhone::TMobilePhoneServiceTable serviceTableType=RMobilePhone::EUSIMServiceTable;
-
- iPhone.GetServiceTable(reqStatus, serviceTableType, asyncSstV8FilePckg);
-
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int()==KErrNone);
- if(reqStatus.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for Wlan passed"));
- }
- else
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for Wlan failed"));
- }
-
- TEST((asyncSstV8File.iServices65To72) == RMobilePhone::KUstWLANReAuthenId);
- return TestStepResult();
- }
-
-CSimWlanTest21::CSimWlanTest21()
- {
- SetTestStepName(_L("Wlan Test21"));
- }
-
-TVerdict CSimWlanTest21::doTestStepL()
-/**
-TEL-SIMTSY-MM-8672.
-Client edits the preferred networks list and stores back on UICC successfully.
-*/
- {
- TRequestStatus reqStatus,aReqStatus;
- INFO_PRINTF1(_L("Test - RMobilePhone::NotifyPreferredWlanSIDListChange async"));
- iPhone.NotifyPreferredNetworksListChange(aReqStatus);
-
- CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
- preferredNetworks->Start();
- CActiveScheduler::Start();
-
- RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry1;
-
- preferredNetworkEntry1.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
- preferredNetworkEntry1.iUserDefined = iPreferredNetworks->At(3).iUserDefined;
- preferredNetworkEntry1.iCountryCode = iPreferredNetworks->At(3).iCountryCode;
- preferredNetworkEntry1.iNetworkId = iPreferredNetworks->At(3).iNetworkId;
- preferredNetworks->iTestPhone->iNetworkList->ChangeEntryL(0,preferredNetworkEntry1);
- preferredNetworks->iTestPhone->iNetworkList->DeleteEntryL(1);
- preferredNetworks->iTestPhone->iNetworkList->AddEntryL(preferredNetworkEntry1);
- iPhone.StorePreferredNetworksListL(reqStatus,preferredNetworks->iTestPhone->iNetworkList);
- User::WaitForRequest(reqStatus);
- User::WaitForRequest(aReqStatus);
- TEST(reqStatus.Int() == KErrNone);
- TEST(aReqStatus.Int() == KErrNone);
-
- delete preferredNetworks->iTestPhone->iNetworkList;
- delete preferredNetworks->iTestPhone->iWlanList;
- delete preferredNetworks;
- return TestStepResult();
- }
-
-CSimWlanTest22::CSimWlanTest22()
- {
- SetTestStepName(_L("Wlan Test22"));
- }
-
-TVerdict CSimWlanTest22::doTestStepL()
-/**
-TEL-SIMTSY-MM-8666.
-Client retrieves WLAN parameters from USIM after update done by another client.
-*/
- {
- INFO_PRINTF1(_L("Two Client Scenario..."));
-
- TRequestStatus reqSts1,reqSts2,reqSts3,stat0,reqStatus,aReqStatus;
-
- RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- RMobilePhone::TMobilePassword code = _L("1111");
- RMobilePhone::TMobilePassword unblockCode = _L("1111");
- RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
-
- usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
- iPhone.NotifyWlanDataChange(reqSts1,usimWlanDataV8Pckgd);
- iPhone.NotifySecurityEvent(reqSts2,securityEvent);
-
- /* Create another thread and perform the authentication functionality. */
- RThread thread;
- INFO_PRINTF1(_L("A different client performing WLAN authentication"));
- TInt KStackSize=0x8000;
- TInt KHeapSize=0x8000;
- TInt KMaxHeapSize=0x80000;
-
- TInt res=thread.Create(_L("DifferentClient"), OtherCltWlan,KStackSize,KHeapSize,KMaxHeapSize,NULL, EOwnerThread);
-
- TEST(res == KErrNone);
-
- thread.Logon(reqSts3);
- TEST(reqSts3.Int()==KRequestPending);
-
- thread.Resume();
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int()==KErrNone);
-
-
- if (thread.ExitType() != EExitKill && thread.ExitReason() != 0)
- {
- User::Leave(thread.ExitReason());
- }
- thread.Close();
-
- User::WaitForRequest(reqSts1);
- TEST(reqSts1.Int() == KErrNone);
- TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(1).iFieldsUsed);
- TEST(usimWlanDataV8.iPseudonym == iWlanData->At(1).iPseudonym);
- TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(1).iReauthenticationId);
- TEST(usimWlanDataV8.iMasterKey == iWlanData->At(1).iMasterKey);
- TEST(usimWlanDataV8.iCounter == iWlanData->At(1).iCounter);
- iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(reqSts2);
- TEST(reqSts2.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
- iPhone.NotifySecurityEvent(stat0,securityEvent);
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- User::WaitForRequest(stat0);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(stat0.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
-
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
- TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(1).iFieldsUsed);
- TEST(usimWlanDataV8.iPseudonym == iWlanData->At(1).iPseudonym);
- TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(1).iReauthenticationId);
- TEST(usimWlanDataV8.iMasterKey == iWlanData->At(1).iMasterKey);
- TEST(usimWlanDataV8.iCounter == iWlanData->At(1).iCounter);
- return TestStepResult();
- }
-
-TInt OtherCltWlan(void* aThreadData)
- {
-
- (void)aThreadData; // as we are not using this variable.
-
- TInt ret =KErrNone;
- TRAP(ret,CSimUsimR6TestWlanThread* myInstance = CSimUsimR6TestWlanThread::getInstanceL());
-
- return ret;
-
- }
-
-CSimUsimR6TestWlanThread* CSimUsimR6TestWlanThread::instance=NULL;
-
-CSimUsimR6TestWlanThread* CSimUsimR6TestWlanThread::getInstanceL()
- {
- if(instance == NULL)
- {
- instance = new(ELeave) CSimUsimR6TestWlanThread();
- }
- return instance;
- }
-
-CSimUsimR6TestWlanThread::CSimUsimR6TestWlanThread()
- {
- // Do Nothing Constructor
- }
-
-CSimUsimR6TestWlanThread::CSimUsimR6TestWlanThread(const CSimUsimR6TestWlanThread&)
- {
- // Do Nothing copy Constructor
- }
-
-CSimUsimR6TestWlanThread& CSimUsimR6TestWlanThread::operator=(const CSimUsimR6TestWlanThread&)
- {
- // Do Nothing Operator overloaded function
- CSimUsimR6TestWlanThread* test = CSimUsimR6TestWlanThread::getInstanceL();
- return (*test);
- }
-
-TVerdict CSimUsimR6TestWlanThread::doTestStepL()
-/**
-TEL-SIMTSY-MM-8663.
-Client stores the Wlan parameters on USIM successfully.
-*/
- {
- // local variables used throughout the tests
- TRequestStatus reqStatus,aReqStatus,stat0,reqStatus1;
- RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
- RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
-
- RMobilePhone::TMobilePassword code = _L("1111");
- RMobilePhone::TMobilePassword unblockCode = _L("1111");
- RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
- iPhone.NotifySecurityEvent(aReqStatus,securityEvent);
- usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
- iPhone.NotifyWlanDataChange(reqStatus1,usimWlanDataV8Pckgd);
-
- TestSmartCardAuthenticate();
-
- usimWlanDataV8.iPseudonym = iWlanData->At(0).iPseudonym ;
- usimWlanDataV8.iReauthenticationId = iWlanData->At(0).iReauthenticationId;
- iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
- User::WaitForRequest(aReqStatus);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
-
- iPhone.NotifySecurityEvent(stat0,securityEvent);
- iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
- User::WaitForRequest(aReqStatus);
- User::WaitForRequest(stat0);
- TEST(aReqStatus.Int() == KErrNone);
- TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
- User::WaitForRequest(reqStatus);
- User::WaitForRequest(reqStatus1);
- TEST(reqStatus.Int() == KErrNone);
- TEST(reqStatus1.Int() == KErrNone);
- TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(0).iFieldsUsed);
- TEST(usimWlanDataV8.iPseudonym == iWlanData->At(0).iPseudonym);
- TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(0).iReauthenticationId);
- return TestStepResult();
- }
-
-CTestRetrieveMobilePhonePreferredWlanSIDs* CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(RMobilePhone& aPhone)
- {
- CTestRetrieveMobilePhonePreferredWlanSIDs* r=new(ELeave) CTestRetrieveMobilePhonePreferredWlanSIDs(aPhone);
- CleanupStack::PushL(r);
- r->ConstructL();
- CleanupStack::Pop();
- return r;
- }
-
-CTestRetrieveMobilePhonePreferredWlanSIDs::CTestRetrieveMobilePhonePreferredWlanSIDs(RMobilePhone& aPhone)
-: CActive(EPriorityNormal), iPhone(aPhone)
-{}
-
-void CTestRetrieveMobilePhonePreferredWlanSIDs::ConstructL()
- {
- CActiveScheduler::Add(this);
- iRetrieve=CRetrieveMobilePhonePreferredWlanSIDs::NewL(iPhone);
- iTestWLAN = new (ELeave) CSimWlanTest6();
- }
-
-CTestRetrieveMobilePhonePreferredWlanSIDs::~CTestRetrieveMobilePhonePreferredWlanSIDs()
- {
- delete iRetrieve;
- delete iTestWLAN;
- }
-
-void CTestRetrieveMobilePhonePreferredWlanSIDs::Start()
- {
- iRetrieve->Start(iStatus);
- SetActive();
- }
-
-void CTestRetrieveMobilePhonePreferredWlanSIDs::RunL()
- {
- TInt ret=iStatus.Int();
- if(ret==KErrPermissionDenied)
- {
- iTestWLAN->INFO_PRINTF1(_L("Permission Access Denied"));
- CActiveScheduler::Stop();
- return;
- }
- User::LeaveIfError(ret);
- ret=CheckWLANResults();
- User::LeaveIfError(ret);
- CActiveScheduler::Stop();
- }
-
-void CTestRetrieveMobilePhonePreferredWlanSIDs::DoCancel()
- {
- iRetrieve->Cancel();
- }
-
-TInt CTestRetrieveMobilePhonePreferredWlanSIDs::CheckWLANResults()
- {
- TInt ret=KErrNone;
-
- iTestWLAN->iWlanList =NULL;
- TInt leaveCode=KErrNone;
- TRAP(leaveCode, iTestWLAN->iWlanList=iRetrieve->RetrieveListL(););
-
- //Check that a list is returned back to the test
- iTestWLAN->TEST(iTestWLAN->iWlanList!=NULL);
-
- if (iTestWLAN->iWlanList)
- {
- //Check that the number of entries in the list is as expected
- iTestWLAN->TEST(iTestWLAN->iWlanList->Enumerate()==SIMTSY_PHONE_WLAN_SIDLIST_COUNT);
- // Get each entry
- RMobilePhone::TWlanSIDV8 wlanSIDV8;
- for (TInt i=0; i<SIMTSY_PHONE_WLAN_SIDLIST_COUNT; ++i)
- {
- TRAP(ret,wlanSIDV8=iTestWLAN->iWlanList->GetEntryL(i));
- if (ret != KErrNone)
- {
- break;
- }
- switch(i)
- {
- case 0:
- {
- iTestWLAN->TEST(wlanSIDV8.iWSID == SIMTSY_PHONE_WLAN_WSID_ONE);
- iTestWLAN->TEST(wlanSIDV8.iUserDefined == SIMTSY_PHONE_WLAN_USERDEFD_ONE);
- break;
- }
- case 1:
- {
- iTestWLAN->TEST(wlanSIDV8.iWSID == SIMTSY_PHONE_WLAN_WSID_TWO);
- iTestWLAN->TEST(wlanSIDV8.iUserDefined == SIMTSY_PHONE_WLAN_USERDEFD_TWO);
- break;
- }
- case 2:
- {
- iTestWLAN->TEST(wlanSIDV8.iWSID == SIMTSY_PHONE_WLAN_WSID_THREE);
- iTestWLAN->TEST(wlanSIDV8.iUserDefined == SIMTSY_PHONE_WLAN_USERDEFD_THREE); break;
- }
- default:
- break;
- }
- }
- }
- return ret;
- }
-
-/**************************************************************/
-//
-// Testing asynchronous retrieve of preferred stored network list
-//
-/**************************************************************/
-
-
-CTestGetPreferredNetworks* CTestGetPreferredNetworks::NewLC(RMobilePhone& aPhone)
- {
- CTestGetPreferredNetworks* r=new(ELeave) CTestGetPreferredNetworks(aPhone);
- CleanupStack::PushL(r);
- r->ConstructL();
- CleanupStack::Pop();
- return r;
- }
-
-CTestGetPreferredNetworks::CTestGetPreferredNetworks(RMobilePhone& aPhone)
- : CActive(EPriorityNormal), iPhone(aPhone)
- {}
-
-
-void CTestGetPreferredNetworks::ConstructL()
- {
- CActiveScheduler::Add(this);
- iRetrieve=CRetrieveMobilePhonePreferredNetworks::NewL(iPhone);
- iTestPhone = new (ELeave) CSimWlanTest6();
- }
-
-CTestGetPreferredNetworks::~CTestGetPreferredNetworks()
- {
- delete iRetrieve;
- delete iTestPhone;
- }
-
-void CTestGetPreferredNetworks::Start()
- {
- iRetrieve->Start(iStatus);
- SetActive();
- }
-
-void CTestGetPreferredNetworks::RunL()
- {
- TInt ret=iStatus.Int();
- if(ret==KErrPermissionDenied)
- {
- iTestPhone->INFO_PRINTF1(_L("Permission Access Denied"));
- CActiveScheduler::Stop();
- return;
- }
- User::LeaveIfError(ret);
- ret=CheckResults();
- User::LeaveIfError(ret);
-
- CActiveScheduler::Stop();
- }
-
-
-void CTestGetPreferredNetworks::DoCancel()
- {
- iRetrieve->Cancel();
- }
-
-TInt CTestGetPreferredNetworks::CheckResults()
- {
- TInt ret=KErrNone;
-
- iTestPhone->iNetworkList=NULL;
- TInt leaveCode=KErrNone;
- TRAP(leaveCode, iTestPhone->iNetworkList=iRetrieve->RetrieveListL(););
-
- if (iTestPhone->iNetworkList)
- {
- iTestPhone->TEST(iTestPhone->iNetworkList->Enumerate()==SIMTSY_PHONE_NTWK_LIST_ENTRIES);
-
- // Get each stored network entry
- RMobilePhone::TMobilePreferredNetworkEntryV3 entry;
-
- for (TInt i=0; i<SIMTSY_PHONE_NTWK_LIST_ENTRIES; ++i)
- {
- TRAP(ret,entry=iTestPhone->iNetworkList->GetEntryL(i));
- if (ret != KErrNone)
- break;
- switch(i)
- {
- case 0:
- {
- iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM);
- iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE);
- iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID1);
- iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID1);
- }
- break;
- case 1:
- {
- iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC);
- iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE);
- iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID2);
- iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID2);
- }
- break;
- case 2:
- default:
- {
- iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN);
- iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE);
- iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID2);
- iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID1);
- }
- break;
- case 3:
- {
- iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN);// - RAFIK UNCOMMENT THIS
- iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE);
- iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID2);
- iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID1);
- break;
- }
- }
- }
- }
- return ret;
- }
-
-
-CSim3GSecurityContextTest1::CSim3GSecurityContextTest1()
- {
- SetTestStepName(_L("3GSecurityContextTest1"));
- }
-
-TVerdict CSim3GSecurityContextTest1::doTestStepL()
-/**
-TEL-SIMTSY-MM-8658.
-Client performs EAP-AKA USIM authentication successfully.
-*/
- {
- TestSmartCardAuthenticate();
- return TestStepResult();
- }
-
-CSim3GSecurityContextTest2::CSim3GSecurityContextTest2()
- {
- SetTestStepName(_L("CSim3GSecurityContextTest2"));
- }
-
-TVerdict CSim3GSecurityContextTest2::doTestStepL()
-/**
-TEL-SIMTSY-MM-8659.
-Client is unable to perform EAP-AKA USIM authentication due to lack of support in USIM service table.
-*/
- {
- TRequestStatus reqStatus;
- RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
- RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
- authenticateData.iAUTN = KConfigScWlanAuthAUTN();
- authenticateData.iRAND = KConfigScWlanAuthRAND();
- authenticateData.iCK = KConfigScWlanNotSupported();
-
- RMobilePhone::TAID appAID = KWlanAid();
- iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
- User::WaitForRequest(reqStatus);
- TESTL(reqStatus==KErrNotSupported);
- return TestStepResult();
- }
-
-CSim3GSecurityContextTest3::CSim3GSecurityContextTest3()
- {
- SetTestStepName(_L("CSim3GSecurityContextTest3"));
- }
-
-TVerdict CSim3GSecurityContextTest3::doTestStepL()
-/**
-TEL-SIMTSY-MM-8660.
-Client is unable to perform EAP-AKA USIM authentication due to inactive USIM application.
-*/
- {
- TRequestStatus reqStatus;
- RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
- RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
- authenticateData.iAUTN = KConfigScWlanAuthAUTN();
- authenticateData.iRAND = KConfigScWlanAuthRAND();
- authenticateData.iCK = KConfigScWlan();
-
- RMobilePhone::TAID appAID;
- iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
- User::WaitForRequest(reqStatus);
- TESTL(reqStatus==KErrMMEtelScApplicationNotActive);
- return TestStepResult();
- }
-
-CSim3GSecurityContextTest4::CSim3GSecurityContextTest4()
- {
- SetTestStepName(_L("CSim3GSecurityContextTest4"));
- }
-
-TVerdict CSim3GSecurityContextTest4::doTestStepL()
-/**
-TEL-SIMTSY-MM-8661.
-Client is unable to perform EAP-AKA USIM authentication due to MAC verification failure.
-*/
- {
- TRequestStatus reqStatus;
- RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
- RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
- authenticateData.iCK = KConfigScWlan();
-
- RMobilePhone::TAID appAID = KWlanAid();
- iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
- User::WaitForRequest(reqStatus);
- TESTL(reqStatus==KErrMMEtelMacVerificationFailed);
- return TestStepResult();
- }
-
-CSim3GSecurityContextTest5::CSim3GSecurityContextTest5()
- {
- SetTestStepName(_L("CSim3GSecurityContextTest5"));
- }
-
-TVerdict CSim3GSecurityContextTest5::doTestStepL()
-/**
-TEL-SIMTSY-MM-8662.
-Client is unable to perform EAP-AKA USIM authentication due to synchronisation failure.
-*/
- {
- TRequestStatus reqStatus;
- RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
- RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
- authenticateData.iAUTN = KConfigScWlanAuthAUTN();
- authenticateData.iCK = KConfigScWlan();
-
- RMobilePhone::TAID appAID = KWlanAid();
- iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
- User::WaitForRequest(reqStatus);
- TESTL(reqStatus==KErrMMEtelSqnVerificationFailed);
- return TestStepResult();
- }
-
-/****************************************************************************\
- * *
- * Generic Bootstrapping Architecture Testcases *
- * *
- ****************************************************************************/
-
-CSimUsimR6GBATest1::CSimUsimR6GBATest1()
- {
- SetTestStepName(_L("UsimR6GBATest1"));
- }
-
-TVerdict CSimUsimR6GBATest1::doTestStepL()
-/**
-TEL-SIMTSY-MM-8601.
-Client confirms on the support of GBA functionality by the USIM.
-*/
- {
- INFO_PRINTF1(_L("BeginUsimR6GBATest"));
-
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
- TRequestStatus reqStatus=KErrNone;
-
- //Verify the support of GBA in USIM Service Table
-
- RMobilePhone::TMobilePhoneServiceTableV8 asyncSstV8File;
- RMobilePhone::TMobilePhoneServiceTableV8Pckg asyncSstV8FilePckg(asyncSstV8File);
- RMobilePhone::TMobilePhoneServiceTable serviceTableType=RMobilePhone::EUSIMServiceTable;
-
- iPhone.GetServiceTable(reqStatus, serviceTableType, asyncSstV8FilePckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int()==KErrNone);
- if(reqStatus.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for GBA passed"));
- }
- else
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for GBA failed"));
- }
- TEST((asyncSstV8File.iServices65To72) == RMobilePhone::KUstGBA);
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest2::CSimUsimR6GBATest2()
- {
- SetTestStepName(_L("UsimR6GBATest2"));
- }
-
-TVerdict CSimUsimR6GBATest2::doTestStepL()
-/**
-TEL-SIMTSY-MM-8602.
-Client performs successfully GBA authentication in Bootstrap mode
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3,reqStatus;
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
- iPhone.NotifyAuthenticateDataChange(reqStatus,tAuthInfoV8Pckg);
-
- RMobilePhone::TAID appAID = Kaid();
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
- iPhone.SmartCardAuthenticate(reqSts2, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts2);
- TEST(reqSts2.Int() == KErrNone);
-
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
- INFO_PRINTF1(_L("RMobilePhone::NotifyAuthenticateDataChange Completed."));
-
- tAuthInfoV8 = tAuthInfoV8Pckg();
-
- TEST(tAuthInfoV8.iAID == Kaid());
- TEST(tAuthInfoV8.iData == RMobilePhone::EGbaBootstrapParams );
- /* Client sends the RES to the network in the HTTP Digest AKA response.
- * The network (i.e. the BSF) authenticates the phone by verifying the
- * Digest AKA response. The network generates the Ks key, the
- * transaction identifier (B-TID) and the Ks key Lifetime.
- * The network (the BSF) then sends the B-TID value and the key
- * lifetime to the phone.
- */
- RMobilePhone::TBsfDataV8 tBsfDataV8;
- RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
-
- _LIT8(KBtid,"B2345");
- _LIT8(KKeyLifeTime,"D3789");
- tBsfDataV8.iBtid = KBtid;
- tBsfDataV8.iKeyLifetime = KKeyLifeTime;
-
- iPhone.SetGbaBootstrapParams(reqSts3,appAID,tBsfDataV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinRequired"));
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the PIN1"));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
-
- if(reqSts3.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("SetGBABootParams Completed Successfully"));
- }
- else
- {
- INFO_PRINTF1(_L("SetGBABootParams Not Completed Successfully"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest3::CSimUsimR6GBATest3()
- {
- SetTestStepName(_L("UsimR6GBATest3"));
- }
-
-TVerdict CSimUsimR6GBATest3::doTestStepL()
-/**
-TEL-SIMTSY-MM-8603.
-Client is unable to perform GBA authentication in Bootstrap mode as USIM application is not active
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrMMEtelScApplicationNotActive );
-
- if(reqSts.Int() == KErrMMEtelScApplicationNotActive)
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate completed with Application Not Active"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest4::CSimUsimR6GBATest4()
- {
- SetTestStepName(_L("UsimR6GBATest4"));
- }
-
-TVerdict CSimUsimR6GBATest4::doTestStepL()
-/**
-TEL-SIMTSY-MM-8604.
-Client is unable to perform GBA authentication in Bootstrap mode as
-USIM application is busy with another client’s request for GBA.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(40);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrInUse );
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completed with Application busy."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest5::CSimUsimR6GBATest5()
- {
- SetTestStepName(_L("UsimR6GBATest5"));
- }
-
-TVerdict CSimUsimR6GBATest5::doTestStepL()
-/**
-TEL-SIMTSY-MM-8605.
-Client is unable to update EFGBABP due to PIN verification failure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts2, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts2);
- TEST(reqSts2.Int() == KErrNone);
-
- if(reqSts2.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate completed successfully."));
- }
- else
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate not completed successfully."));
- }
-
- /* Client sends the RES to the network in the HTTP Digest AKA response.
- * The network (i.e. the BSF) authenticates the phone by verifying the
- * Digest AKA response. The network generates the Ks key, the
- * transaction identifier (B-TID) and the Ks key Lifetime.
- * The network (the BSF) then sends the B-TID value and the key
- * lifetime to the phone.
- */
- RMobilePhone::TBsfDataV8 tBsfDataV8;
- RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
-
- _LIT8(KBtid,"B4567"); // not the value in the config file to return KErrAccessDenied
- _LIT8(KKeyLifeTime,"D3789");
- tBsfDataV8.iBtid = KBtid;
- tBsfDataV8.iKeyLifetime = KKeyLifeTime;
-
- iPhone.SetGbaBootstrapParams(reqSts3,appAID,tBsfDataV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinRequired"));
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "4567"); // Invalid password
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the PIN1"));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrAccessDenied);
- TEST(secEvent==RMobilePhone::EUSIMAppPinRequired);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with USIM PIN Verification failed"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrAccessDenied);
- if(reqSts3.Int() == KErrAccessDenied)
- {
- INFO_PRINTF1(_L("SetGbaBootstrapParams completed with KErrAccessDenied"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest6::CSimUsimR6GBATest6()
- {
- SetTestStepName(_L("UsimR6GBATest6"));
- }
-
-TVerdict CSimUsimR6GBATest6::doTestStepL()
-/**
-TEL-SIMTSY-MM-8606.
-Client performs successfully GBA authentication
-in NAF derivation mode after deriving Bootstrap key (Ks).
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(49);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2;
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- _LIT8(Kaid,"AE879");
- RMobilePhone::TAID appAID = Kaid();
-
- /*Precondition:
- * Client performed the GBA authentication in bootstrap mode successsfully
- */
-
- // Generation of Ks_ext_NAF using NAF derivation method
-
- _LIT8(KNafid,"C6453");
- _LIT8(KImpi,"E7654");
-
- iPhone.NotifyAuthenticateDataChange(reqSts1,tAuthInfoV8Pckg);
-
- RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
- RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
-
- tGbaNafAuthDataV8.iNafId = KNafid;
- tGbaNafAuthDataV8.iImpi = KImpi;
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts2, appAID,tGbaNafAuthDataV8Pckg);
- User::WaitForRequest(reqSts2);
- TEST(reqSts2.Int() == KErrNone);
-
- if(reqSts2.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate completed successfully."));
- }
- else
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate not completed successfully."));
- }
-
- tGbaNafAuthDataV8 = tGbaNafAuthDataV8Pckg();
- _LIT8(KksExtNaf,"A6543");
- TEST(tGbaNafAuthDataV8.iKsExtNaf.Compare(KksExtNaf) == 0);
-
- User::WaitForRequest(reqSts1);
- TEST(reqSts1.Int() == KErrNone);
- INFO_PRINTF1(_L("RMobilePhone::NotifyAuthenticateDataChange Completed."));
-
- tAuthInfoV8 = tAuthInfoV8Pckg();
- TEST(tAuthInfoV8.iAID == Kaid());
- TEST(tAuthInfoV8.iData == RMobilePhone::EGbaNafIdList );
-
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest7::CSimUsimR6GBATest7()
- {
- SetTestStepName(_L("UsimR6GBATest7"));
- }
-
-TVerdict CSimUsimR6GBATest7::doTestStepL()
-/**
-TEL-SIMTSY-MM-8607.
-Client performs successfully GBA authentication in
-NAF derivation mode using the existing Bootstrap key (Ks).
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
-// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
- if(reqSts3.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed successfully."));
- }
- else
- {
- INFO_PRINTF1(_L("GetAuthenticationParams not completed successfully."));
- }
-
- tGbaBootstrapParamsV8 = tGbaBootstrapParamsV8Pckg();
- TEST(tGbaBootstrapParamsV8.iRand == _L8("RAND_IN"));
- TEST(tGbaBootstrapParamsV8.iBtid == _L8("B2345"));
- TEST(tGbaBootstrapParamsV8.iKeyLifetime == _L8("D3789"));
-
- RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
- RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
-
- _LIT8(KNafId,"C6453");
- _LIT8(KImpi,"E7654");
-
- tGbaNafAuthDataV8.iNafId = KNafId;
- tGbaNafAuthDataV8.iImpi = KImpi;
-
- RMobilePhone::TAID appAID = Kaid();
-
- iPhone.SmartCardAuthenticate(reqSts3,appAID,tGbaNafAuthDataV8Pckg);
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
-
- tGbaNafAuthDataV8 = tGbaNafAuthDataV8Pckg();
- _LIT8(KksExtNaf,"A6543");
- TEST(tGbaNafAuthDataV8.iKsExtNaf.Compare(KksExtNaf) == 0);
-
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest8::CSimUsimR6GBATest8()
- {
- SetTestStepName(_L("UsimR6GBATest8"));
- }
-
-TVerdict CSimUsimR6GBATest8::doTestStepL()
-/**
-TEL-SIMTSY-MM-8608.
-Client is unable to perform GBA authentication in NAF derivation mode as Ks is not available.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(41);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts3;
-
- RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
- RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
-
- _LIT8(KNafId,"C6453");
- _LIT8(KImpi,"E7654");
- _LIT8(Kaid,"AE879");
-
- tGbaNafAuthDataV8.iNafId = KNafId;
- tGbaNafAuthDataV8.iImpi = KImpi;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts3,appAID,tGbaNafAuthDataV8Pckg);
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrMMEtelAuthKeyNotFound);
-
- if(reqSts3.Int() == KErrMMEtelAuthKeyNotFound)
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate completed with Ks Not Found."));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest9::CSimUsimR6GBATest9()
- {
- SetTestStepName(_L("UsimR6GBATest9"));
- }
-
-TVerdict CSimUsimR6GBATest9::doTestStepL()
-/**
-TEL-SIMTSY-MM-8609.
-Client is unable to perform GBA authentication in
-NAF derivation mode as USIM application is not active
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
- RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
-
- _LIT8(KNafId,"C6453");
- _LIT8(KImpi,"E7654");
- _LIT8(Kaid,"AE879");
-
- tGbaNafAuthDataV8.iNafId = KNafId;
- tGbaNafAuthDataV8.iImpi = KImpi;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts,appAID,tGbaNafAuthDataV8Pckg);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrMMEtelScApplicationNotActive);
-
- if(reqSts.Int() == KErrMMEtelScApplicationNotActive)
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::SmartCardAuthenticate Completed with Application Not Active."));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest10::CSimUsimR6GBATest10()
- {
- SetTestStepName(_L("UsimR6GBATest10"));
- }
-
-TVerdict CSimUsimR6GBATest10::doTestStepL()
-/**
-TEL-SIMTSY-MM-8610.
-Client is unable to perform GBA authentication in
-NAF derivation mode as USIM application is busy with another client’s request for GBA.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(40);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
- RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
-
- _LIT8(KNafId,"C6453");
- _LIT8(KImpi,"E7654");
- _LIT8(Kaid,"AE879");
-
- tGbaNafAuthDataV8.iNafId = KNafId;
- tGbaNafAuthDataV8.iImpi = KImpi;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts,appAID,tGbaNafAuthDataV8Pckg);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrInUse);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate Completed with KErrInUse."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest11::CSimUsimR6GBATest11()
- {
- SetTestStepName(_L("UsimR6GBATest11"));
- }
-
-TVerdict CSimUsimR6GBATest11::doTestStepL()
-/**
-TEL-SIMTSY-MM-8611.
-Client, at its discretion, retrieves GBA Bootstrapping parameters from UICC successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
-
- INFO_PRINTF1(_L("Two Client Scenario..."));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
-// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed Successfully with EUSIMAppPinVerified."));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
- if(reqSts3.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed Successfully."));
- }
-
- tGbaBootstrapParamsV8 = tGbaBootstrapParamsV8Pckg();
-
- _LIT8(KRand,"RAND_IN");
- _LIT8(KBtid,"B2345");
- _LIT8(KKeyLifeTime,"D3789");
-
- TEST(tGbaBootstrapParamsV8.iRand.Compare(KRand)==0);
- TEST(tGbaBootstrapParamsV8.iBtid.Compare(KBtid)==0);
- TEST(tGbaBootstrapParamsV8.iKeyLifetime.Compare(KKeyLifeTime)==0);
-
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest12::CSimUsimR6GBATest12()
- {
- SetTestStepName(_L("UsimR6GBATest12"));
- }
-
-TVerdict CSimUsimR6GBATest12::doTestStepL()
-/**
-TEL-SIMTSY-MM-8612.
-Clients retrieve GBA Bootstrapping parameters successfully upon notification from UICC.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
-
- INFO_PRINTF1(_L("Two Client Scenario..."));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
- _LIT8(Kaid,"AE879");
-
- iPhone.NotifyAuthenticateDataChange(reqSts2,tAuthInfoV8Pckg);
-
- /* Create another thread and perform the authentication functionality. */
- RThread thread;
- INFO_PRINTF1(_L("A different client performing GBA authentication"));
- TInt KStackSize=0x8000;
- TInt KHeapSize=0x8000;
- TInt KMaxHeapSize=0x80000;
-
- TInt res=thread.Create(_L("DifferentClient"), OtherCltGBA,KStackSize,KHeapSize,KMaxHeapSize,NULL, EOwnerThread);
-
- TEST(res == KErrNone);
-
- thread.Logon(reqSts3);
- TEST(reqSts3.Int()==KRequestPending);
-
- thread.Resume();
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int()==KErrNone);
-
- /* Client has updated the EFGBA with the new authentication parameters */
-
- User::WaitForRequest(reqSts2); // NotifyAuthenticateData completes as the
- // authentication is performed by another client
- TEST(reqSts2.Int()==KErrNone);
- if(reqSts2.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("NotifyAuthenticateDataChange completed Successfully in Client 1."));
- }
- else
- {
- INFO_PRINTF1(_L("NotifyAuthenticateDataChange Not completed Successfully in Client 1."));
- }
-
- tAuthInfoV8 = tAuthInfoV8Pckg();
-
- TEST(tAuthInfoV8.iAID == Kaid());
- TEST(tAuthInfoV8.iData == RMobilePhone::EGbaBootstrapParams);
-
- if (thread.ExitType() != EExitKill && thread.ExitReason() != 0)
- {
- User::Leave(thread.ExitReason());
- }
- thread.Close();
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
-// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("GetAuthenticationParams completed Successfully in Client 1."));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
- if(reqSts3.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
- }
-
- tGbaBootstrapParamsV8 = tGbaBootstrapParamsV8Pckg();
-
- _LIT8(KRand,"RAND_IN");
- _LIT8(KBtid,"B2345");
- _LIT8(KKeyLifeTime,"D3789");
-
- TEST(tGbaBootstrapParamsV8.iRand.Compare(KRand)==0);
- TEST(tGbaBootstrapParamsV8.iBtid.Compare(KBtid)==0);
- TEST(tGbaBootstrapParamsV8.iKeyLifetime.Compare(KKeyLifeTime)==0);
-
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATestThread* CSimUsimR6GBATestThread::instance=NULL;
-
-CSimUsimR6GBATestThread* CSimUsimR6GBATestThread::getInstanceL()
- {
- if(instance == NULL)
- {
- instance = new(ELeave) CSimUsimR6GBATestThread();
- }
- return instance;
- }
-
-CSimUsimR6GBATestThread::CSimUsimR6GBATestThread()
- {
- // Do Nothing Constructor
- }
-
-CSimUsimR6GBATestThread::CSimUsimR6GBATestThread(const CSimUsimR6GBATestThread&)
- {
- // Do Nothing copy Constructor
- }
-
-CSimUsimR6GBATestThread& CSimUsimR6GBATestThread::operator=(const CSimUsimR6GBATestThread&)
- {
- // Do Nothing Operator overloaded function
- CSimUsimR6GBATestThread* test = CSimUsimR6GBATestThread::getInstanceL();
- return (*test);
- }
-
-TVerdict CSimUsimR6GBATestThread::doTestStepL()
-/**
-TEL-SIMTSY-MM-
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- iPhone.NotifyAuthenticateDataChange(reqSts2,tAuthInfoV8Pckg);
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"ABCD");
- _LIT8(Kautn,"ADFC");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- iPhone.SmartCardAuthenticate(reqSts3, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
-
- User::WaitForRequest(reqSts2); // NotifyAuthenticateData completes successfully.
- TEST(reqSts2.Int() == KErrNone);
- if(reqSts2.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("NotifyAuthenticateDataChange completed Successfully in Client 1."));
- }
- else
- {
- INFO_PRINTF1(_L("NotifyAuthenticateDataChange Not completed Successfully in Client 1."));
- }
-
- tAuthInfoV8 = tAuthInfoV8Pckg();
-
- TEST(tAuthInfoV8.iAID == Kaid());
- TEST(tAuthInfoV8.iData == RMobilePhone::EGbaBootstrapParams );
-
- RMobilePhone::TBsfDataV8 tBsfDataV8;
- RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
-
- _LIT8(KBtid,"B2345");
- _LIT8(KKeyLifeTime,"D3789");
- tBsfDataV8.iBtid = KBtid;
- tBsfDataV8.iKeyLifetime = KKeyLifeTime;
-
- iPhone.SetGbaBootstrapParams(reqSts3,appAID,tBsfDataV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinRequired"));
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the PIN1"));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
-// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
-
- iPhone.Close();
- return TestStepResult();
- }
-
-TInt OtherCltGBA(void* /*aThreadData*/)
- {
- TInt ret =KErrNone;
- TRAP(ret,CSimUsimR6GBATestThread* myInstance = CSimUsimR6GBATestThread::getInstanceL());
- return ret;
- }
-
-CSimUsimR6GBATest13::CSimUsimR6GBATest13()
- {
- SetTestStepName(_L("UsimR6GBATest13"));
- }
-
-TVerdict CSimUsimR6GBATest13::doTestStepL()
-/**
-TEL-SIMTSY-MM-8613.
-Client is unable to retrieve GBA Bootstrapping parameters as the USIM application is not active.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
-
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrMMEtelScApplicationNotActive);
-
- if(reqSts.Int() == KErrMMEtelScApplicationNotActive)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed with Application Not Active"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest14::CSimUsimR6GBATest14()
- {
- SetTestStepName(_L("UsimR6GBATest14"));
- }
-
-TVerdict CSimUsimR6GBATest14::doTestStepL()
-/**
-TEL-SIMTSY-MM-8614.
-Client is unable to retrieve GBA Bootstrapping parameters due to PIN verification failure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(42);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "3334"); // Invalid pin for the USIM Appln.
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2.Int() == KErrAccessDenied);
- TEST(secEvent==RMobilePhone::EUSIMAppPinRequired);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with USIM PIN Verification failed"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrAccessDenied);
- if(reqSts3.Int() == KErrAccessDenied)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed with KErrAccessDenied"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest15::CSimUsimR6GBATest15()
- {
- SetTestStepName(_L("UsimR6GBATest15"));
- }
-
-TVerdict CSimUsimR6GBATest15::doTestStepL()
-/**
-TEL-SIMTSY-MM-8615.
-Client retrieves NAF_ID list from UICC successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
- CTestRetrieveMobilePhoneAuthenticationIds::EGba);
-
- pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EGba);
- pRetrieve->TestRetrieve(RMobilePhone::EGbaNafIdList);
-
- //Delete test object
- CleanupStack::PopAndDestroy(); //pRetrieve
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest16::CSimUsimR6GBATest16()
- {
- SetTestStepName(_L("UsimR6GBATest16"));
- }
-
-TVerdict CSimUsimR6GBATest16::doTestStepL()
-/**
-TEL-SIMTSY-MM-8616.
-Client is unable to perform GBA authentication due to MAC verification failure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(44);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrMMEtelAuthMacInvalid);
-
- if(reqSts.Int() == KErrMMEtelAuthMacInvalid)
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed with KErrMMEtelAuthMacInvalid"));
- }
- else
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate API not completed with KErrMMEtelAuthMacInvalid"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest17::CSimUsimR6GBATest17()
- {
- SetTestStepName(_L("UsimR6GBATest17"));
- }
-
-TVerdict CSimUsimR6GBATest17::doTestStepL()
-/**
-TEL-SIMTSY-MM-8617.
-Client is unable to perform GBA authentication due to invalid sequence.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(45);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
-
- iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrMMEtelAuthVerificationFailure);
-
- if(reqSts.Int() == KErrMMEtelAuthVerificationFailure)
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed with KErrMMEtelAuthVerificationFailure"));
- }
- else
- {
- INFO_PRINTF1(_L("SmartCardAuthenticate API not completed with KErrMMEtelAuthVerificationFailure"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest18::CSimUsimR6GBATest18()
- {
- SetTestStepName(_L("UsimR6GBATest18"));
- }
-
-TVerdict CSimUsimR6GBATest18::doTestStepL()
-/**
-TEL-SIMTSY-MM-8618.
-Cancel GBA authentication requests. (All APIs)
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts;
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- iPhone.NotifyAuthenticateDataChange(reqSts,tAuthInfoV8Pckg);
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyAuthenticateDataChange);
- User::WaitForRequest(reqSts);
- TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
-
- INFO_PRINTF1(_L("Cancellation of NotifyAuthenticateDataChange API Completed"));
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
-
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
- iPhone.CancelAsyncRequest(EMobilePhoneSmartCardAuthenticate);
- User::WaitForRequest(reqSts);
-
- TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
- INFO_PRINTF1(_L("Cancellation of SmartCardAuthenticate API Completed"));
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
- iPhone.CancelAsyncRequest(EMobilePhoneGetAuthenticationParams);
- User::WaitForRequest(reqSts);
-
- TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
- INFO_PRINTF1(_L("Cancellation of GetAuthenticationParams API Completed"));
-
- RMobilePhone::TBsfDataV8 tBsfDataV8;
- RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
-
- _LIT8(KBtid,"B2345");
- _LIT8(KKeyLifeTime,"D3789");
- tBsfDataV8.iBtid = KBtid;
- tBsfDataV8.iKeyLifetime = KKeyLifeTime;
-
- iPhone.SetGbaBootstrapParams(reqSts,appAID,tBsfDataV8Pckg);
- iPhone.CancelAsyncRequest(EMobilePhoneSetGbaBootstrapParams);
- User::WaitForRequest(reqSts);
-
- TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
- INFO_PRINTF1(_L("Cancellation of SetGbaBootstrapParams API Completed"));
-
- /* Cancellation of the two phase retrieval */
- CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
- CTestRetrieveMobilePhoneAuthenticationIds::EGba);
-
- pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EGba);
- pRetrieve->TestCancel(RMobilePhone::EGbaNafIdList);
-
- //Delete test object
- CleanupStack::PopAndDestroy(); //pRetrieve
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest19::CSimUsimR6GBATest19()
- {
- SetTestStepName(_L("UsimR6GBATest19"));
- }
-
-TVerdict CSimUsimR6GBATest19::doTestStepL()
-/**
-TEL-SIMTSY-MM-8619.
-Test SmartCardAuthenticate API with different capability
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L("Testing the SmartCardAuthenticate API with different capability"));
-
- /* Expected Capability = ReadDeviceData */
- /* Calling Client's capability = LocalServices */
- TRequestStatus reqSts;
-
- RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
- RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
-
- _LIT8(Krand,"RAND_IN");
- _LIT8(Kautn,"AUTN_IN");
- _LIT8(Kaid,"AE879");
- tGbaBootstrapAuthDataV8.iRAND = Krand;
- tGbaBootstrapAuthDataV8.iAUTN = Kautn;
-
- RMobilePhone::TAID appAID = Kaid();
-
- iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrPermissionDenied);
-
- INFO_PRINTF1(_L("Testing of SmartCardAuthenticate API with different capability Completed"));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest20::CSimUsimR6GBATest20()
- {
- SetTestStepName(_L("UsimR6GBATest20"));
- }
-
-TVerdict CSimUsimR6GBATest20::doTestStepL()
-/**
-TEL-SIMTSY-MM-8620.
-Test SetGbaBootstrapParams API with different capability
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L("Testing the SetGbaBootstrapParams API with different capability"));
-
- TRequestStatus reqSts;
- /* Expected Capability = WriteDeviceData */
- /* Calling Client's capability = LocalServices */
-
- _LIT8(Kaid,"AE879");
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TBsfDataV8 tBsfDataV8;
- RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
-
- _LIT8(KBtid,"B2345");
- _LIT8(KKeyLifeTime,"D3789");
- tBsfDataV8.iBtid = KBtid;
- tBsfDataV8.iKeyLifetime = KKeyLifeTime;
-
- iPhone.SetGbaBootstrapParams(reqSts,appAID,tBsfDataV8Pckg);
- User::WaitForRequest(reqSts);
-
- TEST(reqSts.Int() == KErrPermissionDenied);
- INFO_PRINTF1(_L("Testing of SetGbaBootstrapParams API with different capability Completed"));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest21::CSimUsimR6GBATest21()
- {
- SetTestStepName(_L("UsimR6GBATest21"));
- }
-
-TVerdict CSimUsimR6GBATest21::doTestStepL()
-/**
-TEL-SIMTSY-MM-8621.
-Test NotifyAuthenticateDataChange API with different capability
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L("Testing the NotifyAuthenticateDataChange API with different capability"));
-
- TRequestStatus reqSts;
- /* Expected Capability = ReadDeviceData */
- /* Calling Client's capability = LocalServices */
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- iPhone.NotifyAuthenticateDataChange(reqSts,tAuthInfoV8Pckg);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrPermissionDenied);
-
- INFO_PRINTF1(_L("Testing of NotifyAuthenticateDataChange API with different capability Completed"));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest22::CSimUsimR6GBATest22()
- {
- SetTestStepName(_L("UsimR6GBATest22"));
- }
-
-TVerdict CSimUsimR6GBATest22::doTestStepL()
-/**
-TEL-SIMTSY-MM-8622.
-Test GetAuthenticationParams API with different capability
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(4);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L("Testing the GetAuthenticationParams API with different capability"));
-
- TRequestStatus reqSts;
- /* Expected Capability = ReadDeviceData */
- /* Calling Client's capability = LocalServices */
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
- RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
- User::WaitForRequest(reqSts);
- TEST(reqSts.Int() == KErrPermissionDenied);
-
- INFO_PRINTF1(_L("Testing of GetAuthenticationParams API with different capability Completed"));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6GBATest23::CSimUsimR6GBATest23()
- {
- SetTestStepName(_L("UsimR6GBATest23"));
- }
-
-TVerdict CSimUsimR6GBATest23::doTestStepL()
-/**
-TEL-SIMTSY-MM-8623.
-Test CRetrieveMobilePhoneAuthenticationIds::Start API with different capability
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
- CTestRetrieveMobilePhoneAuthenticationIds::EGba);
-
- pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EGba);
- pRetrieve->TestRetrieve(RMobilePhone::EGbaNafIdList);
-
- //Delete test object
- CleanupStack::PopAndDestroy(); //pRetrieve
- iPhone.Close();
- return TestStepResult();
- }
-
-/****************************************************************************\
- * *
- * Multicast Broadcast Messaging Service Testcases *
- * *
- ****************************************************************************/
-
-CSimUsimR6MBMSTest1::CSimUsimR6MBMSTest1()
- {
- SetTestStepName(_L("UsimR6MBMSTest1"));
- }
-
-TVerdict CSimUsimR6MBMSTest1::doTestStepL()
-/**
-TEL-SIMTSY-MM-8624.
-Client performs MBMS authentication in MSK update mode successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L("Testing of MBMS Functionality "));
-
- /*Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
-
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate API test completed "));
-
- TEST(tMbmsMskUpdateDataV8.iOutputMikey == _L8("OUT_MIKEY_V_BIT"));
- iPhone.Close();
- return TestStepResult();
- }
-
-
-CSimUsimR6MBMSTest2::CSimUsimR6MBMSTest2()
- {
- SetTestStepName(_L("UsimR6MBMSTest2"));
- }
-
-TVerdict CSimUsimR6MBMSTest2::doTestStepL()
-/**
-TEL-SIMTSY-MM-8625.
-Client is unable to perform MBMS authentication in MSK update mode
-due to lack of MBMS service support in UICC.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(40);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotSupported);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest3::CSimUsimR6MBMSTest3()
- {
- SetTestStepName(_L("UsimR6MBMSTest3"));
- }
-
-TVerdict CSimUsimR6MBMSTest3::doTestStepL()
-/**
-TEL-SIMTSY-MM-8626.
-Client is unable to perform MBMS authentication in
-MSK update mode because USIM application is not active.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest4::CSimUsimR6MBMSTest4()
- {
- SetTestStepName(_L("UsimR6MBMSTest4"));
- }
-
-TVerdict CSimUsimR6MBMSTest4::doTestStepL()
-/**
-TEL-SIMTSY-MM-8627.
-Client is unable to perform MBMS authentication in
-MSK update mode because Ks_int_NAF is overwritten.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(41);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- * After the successful authentication, the KsIntNaf has been overwritten.
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest5::CSimUsimR6MBMSTest5()
- {
- SetTestStepName(_L("UsimR6MBMSTest5"));
- }
-
-TVerdict CSimUsimR6MBMSTest5::doTestStepL()
-/**
-TEL-SIMTSY-MM-8628.
-Client is unable to perform MBMS authentication in MSK update mode due to out of memory.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(42);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNoMemory);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNoMemory."));
- iPhone.Close();
- return TestStepResult();
- }
-
-
-CSimUsimR6MBMSTest6::CSimUsimR6MBMSTest6()
- {
- SetTestStepName(_L("UsimR6MBMSTest6"));
- }
-
-TVerdict CSimUsimR6MBMSTest6::doTestStepL()
-/**
-TEL-SIMTSY-MM-8629.
-Client successfully creates space to store new MSK IDs and
-MUK IDs before initiating a MSK request procedure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(42);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNoMemory);
- if(reqStatus.Int() == KErrNoMemory)
- {
- INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MSK Updation failed because of NoMemory."));
- }
-
- /*
- * Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs.
- */
-
- RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
- RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
-
- tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
- tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
- if(reqStatus.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MSK Deletion successful."));
- }
-
- RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
- RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
-
- tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
- if(reqStatus.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MUK Deletion successful."));
- }
-
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
- if(reqStatus.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MUK Updation successful."));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest7::CSimUsimR6MBMSTest7()
- {
- SetTestStepName(_L("UsimR6MBMSTest7"));
- }
-
-TVerdict CSimUsimR6MBMSTest7::doTestStepL()
-/**
-TEL-SIMTSY-MM-8630.
-Client runs GBA authentication in NAF derivation mode before re-running MSK update mode
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(41);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
-
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
-
- tMbmsMskUpdateDataV8 = tTMbmsMskUpdateDataV8Pckg();
- TEST(tMbmsMskUpdateDataV8.iOutputMikey == _L8("OUT_MIKEY_V_BIT"));
-
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest8::CSimUsimR6MBMSTest8()
- {
- SetTestStepName(_L("UsimR6MBMSTest8"));
- }
-
-TVerdict CSimUsimR6MBMSTest8::doTestStepL()
-/**
-TEL-SIMTSY-MM-8631.
-Client is unable to perform MBMS authentication in
-MSK update mode because of MAC verification failure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(44);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthMacInvalid);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthMacInvalid."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest9::CSimUsimR6MBMSTest9()
- {
- SetTestStepName(_L("UsimR6MBMSTest9"));
- }
-
-TVerdict CSimUsimR6MBMSTest9::doTestStepL()
-/**
-TEL-SIMTSY-MM-8632.
-Client is unable to perform MBMS authentication in
-MSK update mode because of incorrect MUK.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(41);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- * After the succesful authentication, the KsIntNaf has been overwritten.
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest10::CSimUsimR6MBMSTest10()
- {
- SetTestStepName(_L("UsimR6MBMSTest10"));
- }
-
-TVerdict CSimUsimR6MBMSTest10::doTestStepL()
-/**
-TEL-SIMTSY-MM-8633.
-Client is unable to perform MBMS authentication in
-MSK update mode because of key freshness failure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(45);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Precondition:
- * Client performed successfully GBA authentication in
- * NAF derivation mode after deriving Bootstrap key (Ks).
- * After the succesful authentication, the KsIntNaf has been overwritten.
- */
- TRequestStatus reqStatus= KErrNone;
-
- RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
- RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthVerificationFailure);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthVerificationFailure."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest11::CSimUsimR6MBMSTest11()
- {
- SetTestStepName(_L("UsimR6MBMSTest11"));
- }
-
-TVerdict CSimUsimR6MBMSTest11::doTestStepL()
-/**
-TEL-SIMTSY-MM-8634.
-Client performs MBMS authentication in MTK generation mode successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Client performs MBMS authentication in MTK generation mode successfully.*/
-
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
- RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
-
- tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
-
- TEST(tMbmsMtkGenerateDataV8.iMtk == _L8("MBMS_TR_KEY"));
- TEST(tMbmsMtkGenerateDataV8.iSaltKey == _L8("SALT_KEY"));
-
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
- iPhone.Close();
- return TestStepResult();
- }
-
-
-CSimUsimR6MBMSTest12::CSimUsimR6MBMSTest12()
- {
- SetTestStepName(_L("UsimR6MBMSTest12"));
- }
-
-TVerdict CSimUsimR6MBMSTest12::doTestStepL()
-/**
-TEL-SIMTSY-MM-8635.
-Client is unable to perform MBMS authentication in MTK generation mode because
-this feature is not enabled in USIM service table.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(40);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
- RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
-
- tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotSupported);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
- iPhone.Close();
- return TestStepResult();
- }
-
-
-CSimUsimR6MBMSTest13::CSimUsimR6MBMSTest13()
- {
- SetTestStepName(_L("UsimR6MBMSTest13"));
- }
-
-TVerdict CSimUsimR6MBMSTest13::doTestStepL()
-/**
-TEL-SIMTSY-MM-8636.
-Client is unable to perform MBMS authentication in
-MSK update mode because USIM application is not active.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
- RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
-
- tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest14::CSimUsimR6MBMSTest14()
- {
- SetTestStepName(_L("UsimR6MBMSTest14"));
- }
-
-TVerdict CSimUsimR6MBMSTest14::doTestStepL()
-/**
-TEL-SIMTSY-MM-8637.
-Client is unable to perform MBMS authentication in
-MTK generation mode due to unavailability of MSK.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(41);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
- RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
-
- tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest15::CSimUsimR6MBMSTest15()
- {
- SetTestStepName(_L("UsimR6MBMSTest15"));
- }
-
-TVerdict CSimUsimR6MBMSTest15::doTestStepL()
-/**
-TEL-SIMTSY-MM-8638.
-Client is unable to perform MBMS authentication in
-MTK generation mode because of invalidated MSK.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(45);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
- RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
-
- tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthVerificationFailure);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthVerificationFailure."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest16::CSimUsimR6MBMSTest16()
- {
- SetTestStepName(_L("UsimR6MBMSTest16"));
- }
-
-TVerdict CSimUsimR6MBMSTest16::doTestStepL()
-/**
-TEL-SIMTSY-MM-8639.
-Client is unable to perform MBMS authentication in
-MTK generation mode because of invalid MTK.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(49);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- RMobilePhone::TAID appAID = Kaid();
-
- RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
- RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
-
- tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelAuthKeyInvalid);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyInvalid."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest17::CSimUsimR6MBMSTest17()
- {
- SetTestStepName(_L("UsimR6MBMSTest17"));
- }
-
-TVerdict CSimUsimR6MBMSTest17::doTestStepL()
-/**
-TEL-SIMTSY-MM-8640.
-Client performs MBMS authentication in MSK Deletion Mode successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /*Client retrieves MSK ID list from UICC successfully. */
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
-
- RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
- RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
-
- tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
- tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest18::CSimUsimR6MBMSTest18()
- {
- SetTestStepName(_L("UsimR6MBMSTest18"));
- }
-
-TVerdict CSimUsimR6MBMSTest18::doTestStepL()
-/**
-TEL-SIMTSY-MM-8641.
-Client performs MBMS authentication in MSK Deletion Mode - record match not found.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(47);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /*Client retrieves MSK ID list from UICC successfully. */
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
-
- RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
- RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
-
- tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
- tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotFound);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotFound."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest19::CSimUsimR6MBMSTest19()
- {
- SetTestStepName(_L("UsimR6MBMSTest19"));
- }
-
-TVerdict CSimUsimR6MBMSTest19::doTestStepL()
-/**
-TEL-SIMTSY-MM-8642.
-Client is unable to perform MBMS authentication in
-MSK Deletion Mode because USIM application is not active.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /*Client retrieves MSK ID list from UICC successfully. */
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
-
- RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
- RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
-
- tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
- tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest20::CSimUsimR6MBMSTest20()
- {
- SetTestStepName(_L("UsimR6MBMSTest20"));
- }
-
-TVerdict CSimUsimR6MBMSTest20::doTestStepL()
-/**
-TEL-SIMTSY-MM-8643.
-Client is unable to perform MBMS authentication in
-MSK Deletion Mode due to lack of MBMS service support in UICC.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(40);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /*Client retrieves MSK ID list from UICC successfully. */
- TRequestStatus reqStatus = KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
-
- RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
- RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
-
- tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
- tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotSupported);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest21::CSimUsimR6MBMSTest21()
- {
- SetTestStepName(_L("UsimR6MBMSTest21"));
- }
-
-TVerdict CSimUsimR6MBMSTest21::doTestStepL()
-/**
-TEL-SIMTSY-MM-8644.
-Client performs MBMS authentication in MUK Deletion Mode successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Client retrieves MUK ID and timestamp counter successfully.*/
-
- TRequestStatus reqStatus=KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MUK to free up storage for new MUK */
-
- RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
- RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
-
- tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNone);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest22::CSimUsimR6MBMSTest22()
- {
- SetTestStepName(_L("UsimR6MBMSTest22"));
- }
-
-TVerdict CSimUsimR6MBMSTest22::doTestStepL()
-/**
-TEL-SIMTSY-MM-8645.
-Client performs MBMS authentication in MUK Deletion Mode - record match not found.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(47);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Client retrieves MUK ID and timestamp counter successfully.*/
-
- TRequestStatus reqStatus=KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MUK to free up storage for new MUK */
-
- RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
- RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
-
- tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotFound);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotFound."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest23::CSimUsimR6MBMSTest23()
- {
- SetTestStepName(_L("UsimR6MBMSTest23"));
- }
-
-TVerdict CSimUsimR6MBMSTest23::doTestStepL()
-/**
-TEL-SIMTSY-MM-8646.
-Client is unable to perform MBMS authentication in
-MSK update mode because UICC application is not active.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Client retrieves MUK ID and timestamp counter successfully.*/
-
- TRequestStatus reqStatus=KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MUK to free up storage for new MUK */
-
- RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
- RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
-
- tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest24::CSimUsimR6MBMSTest24()
- {
- SetTestStepName(_L("UsimR6MBMSTest24"));
- }
-
-TVerdict CSimUsimR6MBMSTest24::doTestStepL()
-/**
-TEL-SIMTSY-MM-8647.
-Client is unable to perform MBMS authentication in
-MSK update mode because this feature is not enabled in USIM service table
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(40);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- /* Client retrieves MUK ID and timestamp counter successfully.*/
-
- TRequestStatus reqStatus=KErrNone;
- _LIT8(Kaid,"AE879");
-
- RMobilePhone::TAID appAID = Kaid();
-
- /*Client decides to delete the MUK to free up storage for new MUK */
-
- RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
- RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
-
- tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
-
- INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
-
- iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int() == KErrNotSupported);
-
- INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest25::CSimUsimR6MBMSTest25()
- {
- SetTestStepName(_L("UsimR6MBMSTest25"));
- }
-
-TVerdict CSimUsimR6MBMSTest25::doTestStepL()
-/**
-TEL-SIMTSY-MM-8648.
-Client retrieves MUK ID and timestamp counter successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- RMobilePhone::TMbmsUserKeyV8 tMbmsUserKeyV8;
- RMobilePhone::TMbmsUserKeyV8Pckg tMbmsUserKeyV8Pckg(tMbmsUserKeyV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EMbmsMuk;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tMbmsUserKeyV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
- INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrNone);
- if(reqSts3.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed successfully."));
- }
- else
- {
- INFO_PRINTF1(_L("GetAuthenticationParams not completed successfully."));
- }
-
- tMbmsUserKeyV8 = tMbmsUserKeyV8Pckg();
- TEST(tMbmsUserKeyV8.iMukIdi == _L8("MUK_IDI"));
- TEST(tMbmsUserKeyV8.iMukIdr == _L8("MUK_IDR"));
- TEST(tMbmsUserKeyV8.iTimeStampCounter == _L8("STM"));
-
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest26::CSimUsimR6MBMSTest26()
- {
- SetTestStepName(_L("UsimR6MBMSTest26"));
- }
-
-TVerdict CSimUsimR6MBMSTest26::doTestStepL()
-/**
-TEL-SIMTSY-MM-8689.
-Client is unable to retrieve MUK ID and timestamp counter because
-UICC application is not active.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- RMobilePhone::TMbmsUserKeyV8 tMbmsUserKeyV8;
- RMobilePhone::TMbmsUserKeyV8Pckg tMbmsUserKeyV8Pckg(tMbmsUserKeyV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EMbmsMuk;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tMbmsUserKeyV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "1234");
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrNone);
- INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
- TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrMMEtelScApplicationNotActive);
- if(reqSts3.Int() == KErrMMEtelScApplicationNotActive)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed with KErrMMEtelScApplicationNotActive."));
- }
- else
- {
- INFO_PRINTF1(_L("GetAuthenticationParams not completed with KErrMMEtelScApplicationNotActive."));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest27::CSimUsimR6MBMSTest27()
- {
- SetTestStepName(_L("UsimR6MBMSTest27"));
- }
-
-TVerdict CSimUsimR6MBMSTest27::doTestStepL()
-/**
-TEL-SIMTSY-MM-8650.
-Client is unable to retrieve MUK ID due to PIN verification failure.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(48);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- TRequestStatus reqSts1,reqSts2,reqSts3;
-
- RMobilePhone::TMobilePhoneSecurityEvent secEvent;
- iPhone.NotifySecurityEvent(reqSts1,secEvent);
-
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- RMobilePhone::TMbmsUserKeyV8 tMbmsUserKeyV8;
- RMobilePhone::TMbmsUserKeyV8Pckg tMbmsUserKeyV8Pckg(tMbmsUserKeyV8);
-
- _LIT8(Kaid,"AE879");
-
- tAuthInfoV8.iData = RMobilePhone::EMbmsMuk;
- tAuthInfoV8.iAID = Kaid();
-
- iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tMbmsUserKeyV8Pckg);
-
- User::WaitForRequest(reqSts1);
- TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
-
- RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
- RMobilePhone::TMobilePassword pass;
- _LIT8(Kpswrd, "6789"); // Invalid password
- pass.Copy(Kpswrd);
-
- INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
- iPhone.NotifySecurityEvent(reqSts1, secEvent);
- iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
- User::WaitForRequest(reqSts2);
- User::WaitForRequest(reqSts1);
- TEST(reqSts2==KErrAccessDenied);
- TEST(secEvent==RMobilePhone::EUSIMAppPinRequired);
-
- INFO_PRINTF1(_L("NotifySecurityEvent completed with USIM PIN Verification failed"));
-
- User::WaitForRequest(reqSts3);
- TEST(reqSts3.Int() == KErrAccessDenied);
- if(reqSts3.Int() == KErrAccessDenied)
- {
- INFO_PRINTF1(_L("GetAuthenticationParams completed with KErrAccessDenied"));
- }
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest28::CSimUsimR6MBMSTest28()
- {
- SetTestStepName(_L("UsimR6MBMSTest28"));
- }
-
-TVerdict CSimUsimR6MBMSTest28::doTestStepL()
-/**
-TEL-SIMTSY-MM-8651.
-Client retrieves MSK ID list from UICC successfully.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(38);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
-
- CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
- CTestRetrieveMobilePhoneAuthenticationIds::EMbms);
-
- pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EMbms);
- pRetrieve->TestRetrieve(RMobilePhone::EMbmsMskIdList);
-
- //Delete test object
- CleanupStack::PopAndDestroy(); //pRetrieve
- iPhone.Close();
- return TestStepResult();
- }
-
-CSimUsimR6MBMSTest29::CSimUsimR6MBMSTest29()
- {
- SetTestStepName(_L("UsimR6MBMSTest29"));
- }
-
-TVerdict CSimUsimR6MBMSTest29::doTestStepL()
-/**
-TEL-SIMTSY-MM-8652.
-Client confirms on the support of MBMS functionality by the USIM.
-*/
- {
- CreateConfigFileL(_L("c:\\config3.txt"));
- SetTestNumberL(39);
-
- TInt ret = iPhone.Open(iTelServer,KPhoneName);
- TESTL(ret == KErrNone);
- INFO_PRINTF1(_L(""));
- TRequestStatus reqStatus=KErrNone;
-
- //Verify the support of MBMS in USIM Service Table
-
- RMobilePhone::TMobilePhoneServiceTableV8 asyncSstV8File;
- RMobilePhone::TMobilePhoneServiceTableV8Pckg asyncSstV8FilePckg(asyncSstV8File);
- RMobilePhone::TMobilePhoneServiceTable serviceTableType=RMobilePhone::EUSIMServiceTable;
-
- iPhone.GetServiceTable(reqStatus, serviceTableType, asyncSstV8FilePckg);
-
- User::WaitForRequest(reqStatus);
- TEST(reqStatus.Int()==KErrNone);
- if(reqStatus.Int() == KErrNone)
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for MBMS passed"));
- }
- else
- {
- INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for MBMS failed"));
- }
-
- TEST((asyncSstV8File.iServices65To72) == RMobilePhone::KUstMBMSSecurity);
- iPhone.Close();
- return TestStepResult();
- }
-
-CTestCanceller::CTestCanceller(CActive* aRetrieve)
-: CAsyncOneShot(EPriorityNormal),iRetrieve(aRetrieve)
- {}
-
-CTestCanceller::~CTestCanceller()
- {}
-
-void CTestCanceller::RunL()
- {
- iRetrieve->Cancel();
- CActiveScheduler::Stop();
- }
-
-CTestRetrieveMobilePhoneAuthenticationIds* CTestRetrieveMobilePhoneAuthenticationIds::NewLC(RMobilePhone& aPhone,TTypeOfAuth aType)
- {
- CTestRetrieveMobilePhoneAuthenticationIds* r=new(ELeave) CTestRetrieveMobilePhoneAuthenticationIds(aPhone,aType);
- CleanupStack::PushL(r);
- r->ConstructL();
- return r;
- }
-
-CTestRetrieveMobilePhoneAuthenticationIds::CTestRetrieveMobilePhoneAuthenticationIds(RMobilePhone& aPhone,TTypeOfAuth aType)
-: CActive(EPriorityNormal), iPhone(aPhone), iAuthType(aType)
- {}
-
-void CTestRetrieveMobilePhoneAuthenticationIds::ConstructL()
- {
- CActiveScheduler::Add(this);
- iRetrieveAuthId=CRetrieveMobilePhoneAuthenticationIds::NewL(iPhone);
- iCanceller=new (ELeave) CTestCanceller(this);
- iGBATest = new (ELeave) CSimUsimR6GBATest14();
- }
-
-CTestRetrieveMobilePhoneAuthenticationIds::~CTestRetrieveMobilePhoneAuthenticationIds()
- {
- delete iRetrieveAuthId;
- delete iCanceller;
- delete iGBATest;
- }
-void CTestRetrieveMobilePhoneAuthenticationIds::SetAuthType(TTypeOfAuth aAuthType)
- {
- iAuthType = aAuthType;
- iGBATest->INFO_PRINTF2(_L("Value of iAuthType = %d"),iAuthType);
- }
-
-void CTestRetrieveMobilePhoneAuthenticationIds::TestRetrieve(RMobilePhone::TAuthData aAuthData)
- {
- Start(aAuthData);
- CActiveScheduler::Start();
- }
-
-void CTestRetrieveMobilePhoneAuthenticationIds::Start(RMobilePhone::TAuthData aAuthData)
- {
- //If iTestVersion is set to EGba, test calling the Gba retrieval method
- RMobilePhone::TAuthInfoV8 tAuthInfoV8;
- RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
-
- if(iAuthType==CTestRetrieveMobilePhoneAuthenticationIds::EGba)
- {
- tAuthInfoV8.iData = aAuthData;
- iRetrieveAuthId->Start(iStatus,tAuthInfoV8Pckg);
- TRequestStatus tmpStatus;
- iRetrieveAuthId->Start(tmpStatus,tAuthInfoV8Pckg);
- User::WaitForRequest(tmpStatus);
- iGBATest->TEST(tmpStatus.Int() == KErrInUse);
- SetActive();
- }
- //If iTestVersion is set to EMbms, test calling the Mbms retrieval method
- else if(iAuthType==CTestRetrieveMobilePhoneAuthenticationIds::EMbms)
- {
- tAuthInfoV8.iData = aAuthData;
- iRetrieveAuthId->Start(iStatus,tAuthInfoV8Pckg);
- TRequestStatus tmpStatus;
- iRetrieveAuthId->Start(tmpStatus,tAuthInfoV8Pckg);
- User::WaitForRequest(tmpStatus);
- iGBATest->TEST(tmpStatus.Int() == KErrInUse);
- SetActive();
- }
- else
- {}
- }
-
-void CTestRetrieveMobilePhoneAuthenticationIds::RunL()
- {
- TInt ret=iStatus.Int();
- if(ret == KErrPermissionDenied)
- {
- iGBATest->INFO_PRINTF1(_L("CRetrieveMobilePhoneAuthenticationId -> Start failed with Permission Denied"));
- CActiveScheduler::Stop();
- return;
- }
- else
- {
- User::LeaveIfError(ret);
- }
-
- iGBATest->INFO_PRINTF2(_L("In RunL with iAuthType = %d"),iAuthType);
-
- if(iAuthType == EGba)
- {
- iGBATest->INFO_PRINTF1(_L("In RunL with iAuthType =EGba"));
- ret=CheckGBAResults();
- }
- else if(iAuthType == EMbms)
- {
- iGBATest->INFO_PRINTF1(_L("In RunL with iAuthType =EMbms"));
- ret=CheckMBMSResults();
- }
- else
- {
- iGBATest->INFO_PRINTF1(_L("In RunL with iAuthType =Error"));
- ret=KErrNotFound;
- }
-
- if((ret != KErrNone) && (ret != KErrNotFound))
- {
- User::LeaveIfError(ret);
- }
-
- CActiveScheduler::Stop();
- }
-
-void CTestRetrieveMobilePhoneAuthenticationIds::TestCancel(RMobilePhone::TAuthData aAuthData)
- {
- Start(aAuthData);
-
- CTestCanceller* cancelAuthData = RetrieveCancelPtr();
- cancelAuthData->Call();
-
- CActiveScheduler::Start();
- TBool cancelled = (iStatus == KErrCancel || iStatus == KErrNone);
-
- // Ensure that AO can be used after its previous transaction was cancelled
- Start(aAuthData);
- CActiveScheduler::Start();
-
- if (cancelled)
- {
- iGBATest->INFO_PRINTF2(_L("Cancelled Type of Authentication is %d"),iAuthType);
- iGBATest->INFO_PRINTF1(_L("Test %d - CRetrieveMobilePhoneAuthenticationIds (async & cancel (Cancelled Request)) passed"));
- }
- else
- {
- iGBATest->INFO_PRINTF1(_L("Test %d - CRetrieveMobilePhoneAuthenticationIds (async & cancel (Request Not Cancelled)) passed"));
- }
- }
-
-CTestCanceller* CTestRetrieveMobilePhoneAuthenticationIds::RetrieveCancelPtr()
- {
- return iCanceller;
- }
-
-void CTestRetrieveMobilePhoneAuthenticationIds::DoCancel()
- {
- iRetrieveAuthId->Cancel();
- }
-
-TInt CTestRetrieveMobilePhoneAuthenticationIds::CheckGBAResults()
- {
- TInt ret=KErrNone;
-
- CMobilePhoneGbaNafIdList* nafList =NULL;
- TInt leaveCode=KErrNone;
- TRAP(leaveCode, nafList=iRetrieveAuthId->RetrieveGbaListL(););
-
- //Check that a list is returned back to the test
- iGBATest->TEST(nafList!=NULL);
-
- if (nafList)
- {
-
- RMobilePhone::TGbaNafEntryV8 nafEntry;
-
- //Check that the number of entries in the list is as expected
- if(nafList->Enumerate() != SIMTSY_GBA_NAFLIST_COUNT)
- {
- TRAP(ret,nafEntry=nafList->GetEntryL(0));
- if (ret != KErrNone)
- {
- iGBATest-> INFO_PRINTF1(_L("The NAFLIST doesnot contain TGbaNafEntryV8 entries "));
- }
- delete nafList;
- return KErrNotFound;
- }
-
- // Get each NafList entry
-
- for (TInt i=0; i< SIMTSY_GBA_NAFLIST_COUNT; ++i)
- {
- TRAP(ret,nafEntry=nafList->GetEntryL(i));
- if (ret != KErrNone)
- {
- break;
- }
- switch(i)
- {
- case 0:
- {
- iGBATest->TEST(nafEntry.iBtid == _L8("C6453"));
- iGBATest->TEST(nafEntry.iNafId == _L8("B2345"));
- break;
- }
- case 1:
- {
- iGBATest->TEST(nafEntry.iBtid == _L8("D6453"));
- iGBATest->TEST(nafEntry.iNafId == _L8("C2345"));
- break;
- }
- case 2:
- {
- iGBATest->TEST(nafEntry.iBtid == _L8("E6453"));
- iGBATest->TEST(nafEntry.iNafId == _L8("D2345"));
- break;
- }
- default:
- {
- break;
- }
- }
- }
- delete nafList;
- }
- return ret;
- }
-
-TInt CTestRetrieveMobilePhoneAuthenticationIds::CheckMBMSResults()
- {
- TInt ret=KErrNone;
-
- CMobilePhoneMbmsMskIdList* mbmsList =NULL;
- TInt leaveCode=KErrNone;
- TRAP(leaveCode, mbmsList=iRetrieveAuthId->RetrieveMbmsListL(););
-
- //Check that a list is returned back to the test
- iGBATest->TEST(mbmsList!=NULL);
-
- if (mbmsList)
- {
- //Check that the number of entries in the list is as expected
- RMobilePhone::TMskEntryV8 tMskEntry;
-
- if(mbmsList->Enumerate() != SIMTSY_MBMS_MSKLIST_COUNT)
- {
- TRAP(ret,tMskEntry=mbmsList->GetEntryL(0));
- if (ret != KErrNone)
- {
- iGBATest-> INFO_PRINTF1(_L("The MBMSLIST doesnot contain TMskEntryV8 entries "));
- }
- delete mbmsList;
- return KErrNotFound;
- }
-
- // Get each MbmsList entry
-
- for (TInt i=0; i<SIMTSY_MBMS_MSKLIST_COUNT; ++i)
- {
- TRAP(ret,tMskEntry=mbmsList->GetEntryL(i));
- if (ret != KErrNone)
- {
- break;
- }
- switch(i)
- {
- case 0:
- {
- iGBATest->TEST(tMskEntry.iMskId == _L8("MSK1"));
- iGBATest->TEST(tMskEntry.iKeyDomainId == _L8("KEYDMN1"));
- iGBATest->TEST(tMskEntry.iTimeStampCounter == _L8("STM1"));
- break;
- }
- case 1:
- {
- iGBATest->TEST(tMskEntry.iMskId == _L8("MSK2"));
- iGBATest->TEST(tMskEntry.iKeyDomainId == _L8("KEYDMN2"));
- iGBATest->TEST(tMskEntry.iTimeStampCounter == _L8("STM2"));
- break;
- }
- case 2:
- {
- iGBATest->TEST(tMskEntry.iMskId == _L8("MSK3"));
- iGBATest->TEST(tMskEntry.iKeyDomainId == _L8("KEYDMN3"));
- iGBATest->TEST(tMskEntry.iTimeStampCounter == _L8("STM3"));
- break;
- }
- default:
- break;
- }
- }
- delete mbmsList;
- }
- return ret;
- }
-
-
-
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Te_SimNetworkStatusTest.cpp
+//
+//
+
+#include "Te_SimUSimRel6Test.h"
+#include <testconfigfileparser.h>
+#include <etelmm.h>
+#include "SimConstants.h"
+
+/****************************************************************************\
+ * *
+ * Videomail Testcases *
+ * *
+ ****************************************************************************/
+
+CSimVideomailTest1::CSimVideomailTest1()
+ {
+ SetTestStepName(_L("VideomailTest1"));
+ }
+
+TVerdict CSimVideomailTest1::doTestStepL()
+/**
+TEL-SIMTSY-MM-8653.
+Client retrieves mailbox dialling numbers successfully; writes a new phonebook entry successfully.
+*/
+ {
+ INFO_PRINTF1(_L("Testing Videomail features"));
+ TRequestStatus stat0,stat1;
+ RMobilePhone::TMobilePhoneVoicemailIdsV8 voicemailId;
+ RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg voicemailIdPckg(voicemailId);
+ iPhone.NotifyMailboxNumbersChange(stat0,voicemailIdPckg);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ TESTL(voicemailId.iData==iVoiceMailIds->At(0).iData);
+ TESTL(voicemailId.iFax==iVoiceMailIds->At(0).iFax);
+ TESTL(voicemailId.iOther==iVoiceMailIds->At(0).iOther);
+ TESTL(voicemailId.iVoice==iVoiceMailIds->At(0).iVoice);
+ TESTL(voicemailId.iVideo==iVoiceMailIds->At(0).iVideo);
+
+ iPhone.GetMailboxNumbers(stat1,voicemailIdPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1==KErrNone);
+ TESTL(voicemailId.iData==iVoiceMailIds->At(0).iData);
+ TESTL(voicemailId.iFax==iVoiceMailIds->At(0).iFax);
+ TESTL(voicemailId.iOther==iVoiceMailIds->At(0).iOther);
+ TESTL(voicemailId.iVoice==iVoiceMailIds->At(0).iVoice);
+ TESTL(voicemailId.iVideo==iVoiceMailIds->At(0).iVideo);
+
+ INFO_PRINTF1(_L("Testing Get Phonebook store info from Phone level."));
+ TESTL(iPhonebook.Open(iPhone,KETelIccMbdnPhoneBook,KEtelUSimPhoneBookType)==KErrNone);
+ INFO_PRINTF1(_L("Opened Phonebook object"));
+ INFO_PRINTF1(_L("Testing Phonebook Write"));
+
+ TUint32 notifyEvent;
+ TInt notifyIndex;
+ iPhonebook.NotifyStoreEvent(stat1,notifyEvent,notifyIndex);
+ TInt index=7;
+ TBuf8<100> phBkBuf;
+ phBkBuf.Copy(KTestPhonebookB,sizeof(KTestPhonebookB));
+ iPhonebook.Write(stat0,phBkBuf,index);
+ User::WaitForRequest(stat0);
+ User::WaitForRequest(stat1);
+ TESTL(notifyEvent==(RMobilePhoneStore::KStoreHasSpace |
+ RMobilePhoneStore::KStoreEntryAdded));
+ TESTL(notifyIndex==7);
+ TInt numEntries=1;
+ iPhonebook.Read(stat0,notifyIndex,numEntries,phBkBuf);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ iPhonebook.Close();
+ return TestStepResult();
+ }
+
+CSimVideomailTest2::CSimVideomailTest2()
+ {
+ SetTestStepName(_L("VideomailTest2"));
+ }
+
+
+TVerdict CSimVideomailTest2::doTestStepL()
+/**
+TEL-SIMTSY-MM-8654.
+Client is notified of the change in videomail mailbox number successfully.
+*/
+ {
+ TRequestStatus stat0;
+ RMobilePhone::TMobilePhoneVoicemailIdsV8 voicemailId;
+ RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg voicemailIdPckg(voicemailId);
+ iPhone.NotifyMailboxNumbersChange(stat0,voicemailIdPckg);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ TESTL(voicemailId.iData==iVoiceMailIds->At(0).iData);
+ TESTL(voicemailId.iFax==iVoiceMailIds->At(0).iFax);
+ TESTL(voicemailId.iOther==iVoiceMailIds->At(0).iOther);
+ TESTL(voicemailId.iVoice==iVoiceMailIds->At(0).iVoice);
+ TESTL(voicemailId.iVideo==iVoiceMailIds->At(0).iVideo);
+ return TestStepResult();
+ }
+
+CSimVideomailTest3::CSimVideomailTest3()
+ {
+ SetTestStepName(_L("VideomailTest3"));
+ }
+
+TVerdict CSimVideomailTest3::doTestStepL()
+/**
+TEL-SIMTSY-MM-8655.
+Client retrieves message waiting indicators and sets one indicator to off successfully.
+*/
+ {
+ TRequestStatus stat0,stat1;
+ RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaiting;
+ RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckg(messageWaiting);
+
+ TInt messageWaitCount;
+ iPhone.NotifyMessageWaiting(stat0,messageWaitCount);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ TESTL(messageWaitCount==6);
+
+ iPhone.NotifyIccMessageWaitingIndicatorsChange(stat1,messageWaitingPckg);
+
+ messageWaiting.iDisplayStatus=iMessageWaiting->At(0).iDisplayStatus;
+ messageWaiting.iVoiceMsgs=iMessageWaiting->At(0).iVoiceMsgs;
+ messageWaiting.iAuxVoiceMsgs=iMessageWaiting->At(0).iAuxVoiceMsgs;
+ messageWaiting.iDataMsgs=iMessageWaiting->At(0).iDataMsgs;
+ messageWaiting.iFaxMsgs=iMessageWaiting->At(0).iFaxMsgs;
+ messageWaiting.iEmailMsgs=iMessageWaiting->At(0).iEmailMsgs;
+ messageWaiting.iOtherMsgs=iMessageWaiting->At(0).iOtherMsgs;
+ messageWaiting.iVideoMsgs=iMessageWaiting->At(0).iVideoMsgs;
+
+ iPhone.SetIccMessageWaitingIndicators(stat0,messageWaitingPckg);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ User::WaitForRequest(stat1);
+ TESTL(stat1==KErrNone);
+ TESTL(messageWaiting.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
+ TESTL(messageWaiting.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
+ TESTL(messageWaiting.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
+ TESTL(messageWaiting.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
+ TESTL(messageWaiting.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
+ TESTL(messageWaiting.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
+ TESTL(messageWaiting.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
+ TESTL(messageWaiting.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
+
+ iPhone.GetIccMessageWaitingIndicators(stat1,messageWaitingPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1==KErrNone);
+ TESTL(messageWaiting.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
+ TESTL(messageWaiting.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
+ TESTL(messageWaiting.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
+ TESTL(messageWaiting.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
+ TESTL(messageWaiting.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
+ TESTL(messageWaiting.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
+ TESTL(messageWaiting.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
+ TESTL(messageWaiting.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
+
+ return TestStepResult();
+ }
+
+CSimVideomailTest4::CSimVideomailTest4()
+ {
+ SetTestStepName(_L("VideomailTest4"));
+ }
+
+TVerdict CSimVideomailTest4::doTestStepL()
+/**
+TEL-SIMTSY-MM-8656.
+Client is unable to set message waiting indicators due to absence of indicators on the UICC.
+*/
+ {
+ TRequestStatus stat0,stat1;
+ RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaiting;
+ RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckg(messageWaiting);
+ RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaitingV8;
+ RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckgV8(messageWaitingV8);
+
+ TInt messageWaitCount;
+ iPhone.NotifyMessageWaiting(stat0,messageWaitCount);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ TESTL(messageWaitCount==6);
+
+ iPhone.NotifyIccMessageWaitingIndicatorsChange(stat1,messageWaitingPckgV8);
+
+ iPhone.GetIccMessageWaitingIndicators(stat0,messageWaitingPckgV8);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrNone);
+ TESTL(messageWaitingV8.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
+ TESTL(messageWaitingV8.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
+ TESTL(messageWaitingV8.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
+ TESTL(messageWaitingV8.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
+ TESTL(messageWaitingV8.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
+ TESTL(messageWaitingV8.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
+ TESTL(messageWaitingV8.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
+ TESTL(messageWaitingV8.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
+
+ messageWaiting.iDisplayStatus=iMessageWaiting->At(0).iDisplayStatus;
+ messageWaiting.iVoiceMsgs=iMessageWaiting->At(0).iVoiceMsgs;
+ messageWaiting.iAuxVoiceMsgs=iMessageWaiting->At(0).iAuxVoiceMsgs;
+ messageWaiting.iDataMsgs=iMessageWaiting->At(0).iDataMsgs;
+ messageWaiting.iFaxMsgs=iMessageWaiting->At(0).iFaxMsgs;
+ messageWaiting.iEmailMsgs=iMessageWaiting->At(0).iEmailMsgs;
+ messageWaiting.iOtherMsgs=iMessageWaiting->At(0).iOtherMsgs;
+ iPhone.SetIccMessageWaitingIndicators(stat0,messageWaitingPckg);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrCorrupt);
+ User::WaitForRequest(stat1);
+ TESTL(stat1==KErrNone);
+ TESTL(messageWaitingV8.iDisplayStatus==iMessageWaiting->At(0).iDisplayStatus);
+ TESTL(messageWaitingV8.iVoiceMsgs==iMessageWaiting->At(0).iVoiceMsgs);
+ TESTL(messageWaitingV8.iAuxVoiceMsgs==iMessageWaiting->At(0).iAuxVoiceMsgs);
+ TESTL(messageWaitingV8.iDataMsgs==iMessageWaiting->At(0).iDataMsgs);
+ TESTL(messageWaitingV8.iFaxMsgs==iMessageWaiting->At(0).iFaxMsgs);
+ TESTL(messageWaitingV8.iEmailMsgs==iMessageWaiting->At(0).iEmailMsgs);
+ TESTL(messageWaitingV8.iOtherMsgs==iMessageWaiting->At(0).iOtherMsgs);
+ TESTL(messageWaitingV8.iVideoMsgs==iMessageWaiting->At(0).iVideoMsgs);
+
+ return TestStepResult();
+ }
+
+
+
+CSimVideomailTest5::CSimVideomailTest5()
+ {
+ SetTestStepName(_L("VideomailTest5"));
+ }
+
+TVerdict CSimVideomailTest5::doTestStepL()
+/**
+TEL-SIMTSY-MM-8657.
+Cancel Message waiting and MBDN requests. (All APIs)
+*/
+ {
+ TRequestStatus stat0,stat1;
+ RMobilePhone::TMobilePhoneMessageWaitingV8 messageWaiting;
+ RMobilePhone::TMobilePhoneMessageWaitingV8Pckg messageWaitingPckg(messageWaiting);
+
+ TInt messageWaitCount;
+ iPhone.NotifyMessageWaiting(stat0,messageWaitCount);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyMessageWaiting);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrCancel);
+
+ iPhone.NotifyIccMessageWaitingIndicatorsChange(stat1,messageWaitingPckg);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyIccMessageWaitingIndicatorsChange);
+ User::WaitForRequest(stat1);
+ TESTL(stat1==KErrCancel);
+
+ RMobilePhone::TMobilePhoneVoicemailIdsV8 voicemailId;
+ RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg voicemailIdPckg(voicemailId);
+ iPhone.NotifyMailboxNumbersChange(stat0,voicemailIdPckg);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyMailboxNumbersChange);
+ User::WaitForRequest(stat0);
+ TESTL(stat0==KErrCancel);
+
+ return TestStepResult();
+ }
+
+/****************************************************************************\
+ * *
+ * Wireless Local Area Network Testcases *
+ * *
+ ****************************************************************************/
+
+CSimWlanTest1::CSimWlanTest1()
+ {
+ SetTestStepName(_L("Wlan Test1"));
+ }
+
+TVerdict CSimWlanTest1::doTestStepL()
+/**
+TEL-SIMTSY-MM-8663.
+Client stores the Wlan parameters on USIM successfully.
+*/
+ {
+ // local variables used throughout the tests
+ TRequestStatus reqStatus,aReqStatus,stat0,reqStatus1;
+ RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ RMobilePhone::TMobilePassword code = _L("1111");
+ RMobilePhone::TMobilePassword unblockCode = _L("1111");
+ RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
+ iPhone.NotifySecurityEvent(aReqStatus,securityEvent);
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
+ iPhone.NotifyWlanDataChange(reqStatus1,usimWlanDataV8Pckgd);
+
+ TestSmartCardAuthenticate();
+
+ usimWlanDataV8.iPseudonym = iWlanData->At(0).iPseudonym ;
+ usimWlanDataV8.iReauthenticationId = iWlanData->At(0).iReauthenticationId;
+ iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ User::WaitForRequest(stat0);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
+ User::WaitForRequest(reqStatus);
+ User::WaitForRequest(reqStatus1);
+ TEST(reqStatus.Int() == KErrNone);
+ TEST(reqStatus1.Int() == KErrNone);
+ TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(0).iFieldsUsed);
+ TEST(usimWlanDataV8.iPseudonym == iWlanData->At(0).iPseudonym);
+ TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(0).iReauthenticationId);
+ return TestStepResult();
+ }
+
+CSimWlanTest2::CSimWlanTest2()
+ {
+ SetTestStepName(_L("Wlan Test2"));
+ }
+
+TVerdict CSimWlanTest2::doTestStepL()
+/**
+TEL-SIMTSY-MM-8664.
+Client is unable to store the Wlan parameters on USIM due to PIN verification failure.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ RMobilePhone::TMobilePassword code = _L("2222");
+ RMobilePhone::TMobilePassword unblockCode = _L("1111");
+ RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+
+ TestSmartCardAuthenticate();
+
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
+ usimWlanDataV8.iPseudonym = SIMTSY_PHONE_WLAN_ACESS_DENIED;
+ usimWlanDataV8.iReauthenticationId = iWlanData->At(1).iReauthenticationId;
+ iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(stat0);
+ TEST(stat0.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrAccessDenied);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrAccessDenied);
+ return TestStepResult();
+ }
+
+CSimWlanTest3::CSimWlanTest3()
+ {
+ SetTestStepName(_L("Wlan Test3"));
+ }
+
+TVerdict CSimWlanTest3::doTestStepL()
+/**
+TEL-SIMTSY-MM-8665.
+Client, at its own will, retrieves WLAN parameters from USIM successfully.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ RMobilePhone::TMobilePassword code = _L("1111");
+ RMobilePhone::TMobilePassword unblockCode = _L("1111");
+ RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
+ iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(stat0);
+ TEST(stat0.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ User::WaitForRequest(stat0);
+ User::WaitForRequest(reqStatus);
+ TEST(stat0.Int() == KErrNone);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(reqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
+ TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(1).iFieldsUsed);
+ TEST(usimWlanDataV8.iPseudonym == iWlanData->At(1).iPseudonym);
+ TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(1).iReauthenticationId);
+ TEST(usimWlanDataV8.iMasterKey == iWlanData->At(1).iMasterKey);
+ TEST(usimWlanDataV8.iCounter == iWlanData->At(1).iCounter);
+ return TestStepResult();
+ }
+
+CSimWlanTest4::CSimWlanTest4()
+ {
+ SetTestStepName(_L("Wlan Test4"));
+ }
+
+TVerdict CSimWlanTest4::doTestStepL()
+/**
+TEL-SIMTSY-MM-8667.
+Client is unable to retrieve WLAN parameters from USIM due to lack of support in USIM service table
+*/
+ {
+ TRequestStatus reqStatus;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ usimWlanDataV8.iCounter = iWlanData->At(2).iCounter;
+ iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotSupported);
+ return TestStepResult();
+ }
+
+CSimWlanTest5::CSimWlanTest5()
+ {
+ SetTestStepName(_L("Wlan Test5"));
+ }
+
+TVerdict CSimWlanTest5::doTestStepL()
+/**
+TEL-SIMTSY-MM-8670.
+Client is unable to retrieve WLAN parameters from USIM due to PIN verification failure.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0,reqStatus1;
+ RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ RMobilePhone::TMobilePassword code = _L("1111");
+ RMobilePhone::TMobilePassword unblockCode = _L("1111");
+ RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
+ iPhone.NotifySecurityEvent(aReqStatus,securityEvent);
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
+ iPhone.NotifyWlanDataChange(reqStatus1,usimWlanDataV8Pckgd);
+
+ TestSmartCardAuthenticate();
+
+ usimWlanDataV8.iPseudonym = iWlanData->At(0).iPseudonym ;
+ usimWlanDataV8.iReauthenticationId = iWlanData->At(0).iReauthenticationId;
+ iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ User::WaitForRequest(stat0);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
+ User::WaitForRequest(reqStatus);
+ User::WaitForRequest(reqStatus1);
+ TEST(reqStatus.Int() == KErrNone);
+ TEST(reqStatus1.Int() == KErrNone);
+ TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(0).iFieldsUsed);
+ TEST(usimWlanDataV8.iPseudonym == iWlanData->At(0).iPseudonym);
+ TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(0).iReauthenticationId);
+
+ code = _L("2222");
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+ usimWlanDataV8.iPseudonym = SIMTSY_PHONE_WLAN_ACESS_DENIED;
+ iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(stat0);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrAccessDenied);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrAccessDenied);
+ return TestStepResult();
+ }
+
+CSimWlanTest6::CSimWlanTest6()
+ {
+ SetTestStepName(_L("Wlan Test6"));
+ }
+
+TVerdict CSimWlanTest6::doTestStepL()
+/**
+TEL-SIMTSY-MM-8669.
+Client is unable to retrieve WLAN parameters from USIM due to due to inactive USIM application.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+ RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
+ RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
+ authenticateData.iAUTN = KConfigScWlanAuthAUTN();
+ authenticateData.iRAND = KConfigScWlanAuthRAND();
+ authenticateData.iCK = KConfigScWlan();
+
+ RMobilePhone::TAID appAID;
+ iPhone.SmartCardAuthenticate(aReqStatus,appAID,authenticateDataPckg);
+ usimWlanDataV8.iPseudonym = SIMTSY_PHONE_WLAN_ACESS_DENIED;
+ iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(aReqStatus);
+ TESTL(aReqStatus==KErrMMEtelScApplicationNotActive);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrAccessDenied);
+ return TestStepResult();
+ }
+
+CSimWlanTest7::CSimWlanTest7()
+ {
+ SetTestStepName(_L("Wlan Test7"));
+ }
+
+TVerdict CSimWlanTest7::doTestStepL()
+/**
+TEL-SIMTSY-MM-8671.
+Client retrieves the preferred networks list present on the UICC successfully.
+*/
+ {
+ CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
+ preferredNetworks->Start();
+ CActiveScheduler::Start();
+ delete preferredNetworks->iTestPhone->iNetworkList;
+ delete preferredNetworks->iTestPhone->iWlanList;
+ delete preferredNetworks;
+ return TestStepResult();
+ }
+
+CSimWlanTest8::CSimWlanTest8()
+ {
+ SetTestStepName(_L("Wlan Test8"));
+ }
+
+TVerdict CSimWlanTest8::doTestStepL()
+/**
+TEL-SIMTSY-MM-8674.
+Client retrieves the WLAN SID list present on the UICC successfully.
+*/
+ {
+ CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
+ preferredWlanSidsList->Start();
+ CActiveScheduler::Start();
+ delete preferredWlanSidsList->iTestWLAN->iNetworkList;
+ delete preferredWlanSidsList->iTestWLAN->iWlanList;
+ delete preferredWlanSidsList;
+ return TestStepResult();
+ }
+
+CSimWlanTest9::CSimWlanTest9()
+ {
+ SetTestStepName(_L("Wlan Test9"));
+ }
+
+TVerdict CSimWlanTest9::doTestStepL()
+/**
+TEL-SIMTSY-MM-8675.
+Client edits the WLAN SID list and stores back on UICC successfully.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus;
+ iPhone.NotifyPreferredWlanSIDListChange(aReqStatus);
+ CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
+ preferredWlanSidsList->Start();
+ CActiveScheduler::Start();
+ RMobilePhone::TWlanSIDV8 wlanSIDV8_1;
+ wlanSIDV8_1.iWSID = iWlanSid->At(0).iWSID;
+ wlanSIDV8_1.iUserDefined = iWlanSid->At(0).iUserDefined;
+ preferredWlanSidsList->iTestWLAN->iWlanList->ChangeEntryL(0,wlanSIDV8_1);
+ preferredWlanSidsList->iTestWLAN->iWlanList->DeleteEntryL(1);
+ preferredWlanSidsList->iTestWLAN->iWlanList->AddEntryL(wlanSIDV8_1);
+ iPhone.StorePreferredWlanSIDListL(reqStatus,preferredWlanSidsList->iTestWLAN->iWlanList);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrNone);
+ delete preferredWlanSidsList->iTestWLAN->iNetworkList;
+ delete preferredWlanSidsList->iTestWLAN->iWlanList;
+ delete preferredWlanSidsList;
+ return TestStepResult();
+ }
+
+CSimWlanTest10::CSimWlanTest10()
+ {
+ SetTestStepName(_L("Wlan Test10"));
+ }
+
+TVerdict CSimWlanTest10::doTestStepL()
+/**
+TEL-SIMTSY-MM-8684
+Test to cancel all the WLAN APIs successfully.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+ iPhone.NotifyPreferredWlanSIDListChange(aReqStatus);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyPreferredWlanSIDListChange);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrCancel);
+
+ iPhone.NotifyPreferredNetworksListChange(reqStatus);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyStorePreferredNetworksListChange);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrCancel);
+
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
+ iPhone.NotifyWlanDataChange(reqStatus,usimWlanDataV8Pckgd);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyWlanDataChange);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrCancel);
+
+ //preferredWlanSids Cancel
+ CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
+ preferredWlanSidsList->Start();
+ preferredWlanSidsList->Cancel();
+ User::After(1500000L);
+
+ CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
+ preferredNetworks->Start();
+ preferredNetworks->Cancel();
+ User::After(1500000L);
+
+ delete preferredWlanSidsList;
+ delete preferredNetworks;
+ return TestStepResult();
+ }
+
+CSimWlanTest11::CSimWlanTest11()
+ {
+ SetTestStepName(_L("Wlan Test11"));
+ }
+
+TVerdict CSimWlanTest11::doTestStepL()
+/**
+TEL-SIMTSY-MM-8676.
+Client is unable to store the WLAN SID list back on the UICC because the submitted list is larger than the expected.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ iPhone.NotifyPreferredWlanSIDListChange(aReqStatus);
+ CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
+ preferredWlanSidsList->Start();
+ CActiveScheduler::Start();
+ RMobilePhone::TWlanSIDV8 wlanSIDV8_1;
+ wlanSIDV8_1.iWSID = iWlanSid->At(0).iWSID;
+ wlanSIDV8_1.iUserDefined = iWlanSid->At(0).iUserDefined;
+ preferredWlanSidsList->iTestWLAN->iWlanList->AddEntryL(wlanSIDV8_1);
+
+ iPhone.StorePreferredWlanSIDListL(reqStatus,preferredWlanSidsList->iTestWLAN->iWlanList);
+ User::WaitForRequest(reqStatus);
+
+ TEST(reqStatus.Int() == KErrNoMemory);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrNone);
+ delete preferredWlanSidsList->iTestWLAN->iWlanList;
+ delete preferredWlanSidsList->iTestWLAN->iNetworkList;
+ delete preferredWlanSidsList;
+ return TestStepResult();
+ }
+
+CSimWlanTest12::CSimWlanTest12()
+ {
+ SetTestStepName(_L("Wlan Test12"));
+ }
+
+TVerdict CSimWlanTest12::doTestStepL()
+/**
+TEL-SIMTSY-MM-8677.
+Test SetWlanData with different capability
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ TInt ret;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
+ usimWlanDataV8.iPseudonym = iWlanData->At(1).iPseudonym ;
+ usimWlanDataV8.iReauthenticationId = iWlanData->At(1).iReauthenticationId;
+ usimWlanDataV8.iMasterKey = iWlanData->At(1).iMasterKey;
+ usimWlanDataV8.iCounter = iWlanData->At(1).iCounter;
+ iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ ret=reqStatus.Int();
+ INFO_PRINTF2(_L("ret=%d"),ret);
+ TEST(reqStatus.Int() == KErrPermissionDenied);
+ return TestStepResult();
+ }
+
+CSimWlanTest13::CSimWlanTest13()
+ {
+ SetTestStepName(_L("Wlan Test13"));
+ }
+
+TVerdict CSimWlanTest13::doTestStepL()
+/**
+TEL-SIMTSY-MM-8678.
+Test GetWlanData with different capability
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
+ iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrPermissionDenied);
+ return TestStepResult();
+ }
+
+CSimWlanTest14::CSimWlanTest14()
+ {
+ SetTestStepName(_L("Wlan Test14"));
+ }
+
+TVerdict CSimWlanTest14::doTestStepL()
+/**
+TEL-SIMTSY-MM-8679.
+Test NotifyWlanDataChange with different capability
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
+ iPhone.NotifyWlanDataChange(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int()==KErrPermissionDenied);
+
+ return TestStepResult();
+ }
+
+CSimWlanTest15::CSimWlanTest15()
+ {
+ SetTestStepName(_L("Wlan Test15"));
+ }
+
+TVerdict CSimWlanTest15::doTestStepL()
+/**
+TEL-SIMTSY-MM-8681.Test
+StorePreferredWlanSIDListL with different capability
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus,stat0;
+ RMobilePhone::TWlanSIDV8 wlanSIDV8_1;
+ RMobilePhone::TWlanSIDV8 wlanSIDV8_2;
+ RMobilePhone::TWlanSIDV8 wlanSIDV8_3;
+
+ CMobilePhoneStoredWlanSIDList* wlanSIDlist;
+ wlanSIDlist = CMobilePhoneStoredWlanSIDList::NewL();
+ CleanupStack::PushL(wlanSIDlist);
+
+ wlanSIDV8_1.iWSID = iWlanSid->At(0).iWSID;
+ wlanSIDV8_2.iWSID = iWlanSid->At(1).iWSID;
+ wlanSIDV8_3.iWSID = iWlanSid->At(2).iWSID;
+
+ wlanSIDV8_1.iUserDefined = iWlanSid->At(0).iUserDefined;
+ wlanSIDV8_2.iUserDefined = iWlanSid->At(1).iUserDefined;
+ wlanSIDV8_3.iUserDefined = iWlanSid->At(2).iUserDefined;
+
+ wlanSIDlist->AddEntryL(wlanSIDV8_1);
+ wlanSIDlist->AddEntryL(wlanSIDV8_2);
+ wlanSIDlist->AddEntryL(wlanSIDV8_3);
+
+ iPhone.StorePreferredWlanSIDListL(reqStatus,wlanSIDlist);
+ User::WaitForRequest(reqStatus);
+
+ TEST(reqStatus.Int()==KErrPermissionDenied);
+ CleanupStack::PopAndDestroy();
+ return TestStepResult();
+ }
+
+CSimWlanTest16::CSimWlanTest16()
+ {
+ SetTestStepName(_L("Wlan Test16"));
+ }
+
+TVerdict CSimWlanTest16::doTestStepL()
+/**
+TEL-SIMTSY-MM-8682
+Test StorePreferredNetworksListL() with different capability
+*/
+ {
+ TRequestStatus reqStatus;
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry1;
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry2;
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry3;
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry4; //- FOR WLAN
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntryFetch;
+
+ preferredNetworkEntry4.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN;
+ preferredNetworkEntry4.iUserDefined = iPreferredNetworks->At(0).iUserDefined;
+ preferredNetworkEntry4.iCountryCode = iPreferredNetworks->At(0).iCountryCode;
+ preferredNetworkEntry4.iNetworkId = iPreferredNetworks->At(0).iNetworkId;
+
+ preferredNetworkEntry3.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN;
+ preferredNetworkEntry3.iUserDefined = iPreferredNetworks->At(1).iUserDefined;
+ preferredNetworkEntry3.iCountryCode = iPreferredNetworks->At(1).iCountryCode;
+ preferredNetworkEntry3.iNetworkId = iPreferredNetworks->At(1).iNetworkId;
+
+ preferredNetworkEntry2.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC;
+ preferredNetworkEntry2.iUserDefined = iPreferredNetworks->At(2).iUserDefined;
+ preferredNetworkEntry2.iCountryCode = iPreferredNetworks->At(2).iCountryCode;
+ preferredNetworkEntry2.iNetworkId = iPreferredNetworks->At(2).iNetworkId;
+
+ preferredNetworkEntry1.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
+ preferredNetworkEntry1.iUserDefined = iPreferredNetworks->At(3).iUserDefined;
+ preferredNetworkEntry1.iCountryCode = iPreferredNetworks->At(3).iCountryCode;
+ preferredNetworkEntry1.iNetworkId = iPreferredNetworks->At(3).iNetworkId;
+
+ CMobilePhoneStoredNetworkList* networklist = CMobilePhoneStoredNetworkList::NewL();
+ CleanupStack::PushL(networklist);
+
+ //add at the end
+
+ networklist->AddEntryL(preferredNetworkEntry4); //- FOR WLAN
+ networklist->AddEntryL(preferredNetworkEntry3);
+ networklist->AddEntryL(preferredNetworkEntry2);
+ networklist->AddEntryL(preferredNetworkEntry1);
+
+ iPhone.StorePreferredNetworksListL(reqStatus, networklist);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int()==KErrPermissionDenied);
+ CleanupStack::PopAndDestroy(); // networklist
+ return TestStepResult();
+ }
+
+CSimWlanTest17::CSimWlanTest17()
+ {
+ SetTestStepName(_L("Wlan Test17"));
+ }
+
+TVerdict CSimWlanTest17::doTestStepL()
+/**
+TEL-SIMTSY-MM-8680.
+Test CRetrieveMobilePhonePreferredWlanSIDs::Start with different capability
+*/
+ {
+ CTestRetrieveMobilePhonePreferredWlanSIDs* preferredWlanSidsList=CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(iPhone);
+ preferredWlanSidsList->Start();
+ CActiveScheduler::Start();
+
+ delete preferredWlanSidsList;
+ return TestStepResult();
+ }
+
+CSimWlanTest18::CSimWlanTest18()
+ {
+ SetTestStepName(_L("Wlan Test18"));
+ }
+
+TVerdict CSimWlanTest18::doTestStepL()
+/**
+TEL-SIMTSY-MM-8683.
+Test CRetrieveMobilePhonePreferredNetworks::Start with different capability.
+*/
+ {
+ CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
+ preferredNetworks->Start();
+ CActiveScheduler::Start();
+ delete preferredNetworks->iTestPhone->iNetworkList;
+ delete preferredNetworks->iTestPhone->iWlanList;
+ delete preferredNetworks;
+ return TestStepResult();
+ }
+CSimWlanTest19::CSimWlanTest19()
+ {
+ SetTestStepName(_L("Wlan Test19"));
+ }
+
+TVerdict CSimWlanTest19::doTestStepL()
+/**
+TEL-SIMTSY-MM-8673.
+Client is unable to store the list back on the UICC because the submitted list is larger than the expected.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus;
+ INFO_PRINTF1(_L("Test - RMobilePhone::NotifyPreferredWlanSIDListChange async"));
+ iPhone.NotifyPreferredNetworksListChange(aReqStatus);
+
+ CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
+ preferredNetworks->Start();
+ CActiveScheduler::Start();
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry1;
+
+ preferredNetworkEntry1.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
+ preferredNetworkEntry1.iUserDefined = iPreferredNetworks->At(3).iUserDefined;
+ preferredNetworkEntry1.iCountryCode = iPreferredNetworks->At(3).iCountryCode;
+ preferredNetworkEntry1.iNetworkId = iPreferredNetworks->At(3).iNetworkId;
+
+ preferredNetworks->iTestPhone->iNetworkList->AddEntryL(preferredNetworkEntry1);
+
+ iPhone.StorePreferredNetworksListL(reqStatus,preferredNetworks->iTestPhone->iNetworkList);
+ User::WaitForRequest(reqStatus);
+ User::WaitForRequest(aReqStatus);
+ TEST(reqStatus.Int() == KErrNoMemory);
+ TEST(aReqStatus.Int() == KErrNone);
+
+ delete preferredNetworks->iTestPhone->iNetworkList;
+ delete preferredNetworks->iTestPhone->iWlanList;
+ delete preferredNetworks;
+ return TestStepResult();
+ }
+
+CSimWlanTest20::CSimWlanTest20()
+ {
+ SetTestStepName(_L("Wlan Test20"));
+ }
+
+TVerdict CSimWlanTest20::doTestStepL()
+/**
+TEL-SIMTSY-MM-8668.
+Client confirms on the support of WLAN functionality by the USIM.
+*/
+ {
+ //Verify the support of WLAN in USIM Service Table
+ TRequestStatus reqStatus;
+ RMobilePhone::TMobilePhoneServiceTableV8 asyncSstV8File;
+ RMobilePhone::TMobilePhoneServiceTableV8Pckg asyncSstV8FilePckg(asyncSstV8File);
+ RMobilePhone::TMobilePhoneServiceTable serviceTableType=RMobilePhone::EUSIMServiceTable;
+
+ iPhone.GetServiceTable(reqStatus, serviceTableType, asyncSstV8FilePckg);
+
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int()==KErrNone);
+ if(reqStatus.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for Wlan passed"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for Wlan failed"));
+ }
+
+ TEST((asyncSstV8File.iServices65To72) == RMobilePhone::KUstWLANReAuthenId);
+ return TestStepResult();
+ }
+
+CSimWlanTest21::CSimWlanTest21()
+ {
+ SetTestStepName(_L("Wlan Test21"));
+ }
+
+TVerdict CSimWlanTest21::doTestStepL()
+/**
+TEL-SIMTSY-MM-8672.
+Client edits the preferred networks list and stores back on UICC successfully.
+*/
+ {
+ TRequestStatus reqStatus,aReqStatus;
+ INFO_PRINTF1(_L("Test - RMobilePhone::NotifyPreferredWlanSIDListChange async"));
+ iPhone.NotifyPreferredNetworksListChange(aReqStatus);
+
+ CTestGetPreferredNetworks* preferredNetworks=CTestGetPreferredNetworks::NewLC(iPhone);
+ preferredNetworks->Start();
+ CActiveScheduler::Start();
+
+ RMobilePhone::TMobilePreferredNetworkEntryV3 preferredNetworkEntry1;
+
+ preferredNetworkEntry1.iAccess = SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
+ preferredNetworkEntry1.iUserDefined = iPreferredNetworks->At(3).iUserDefined;
+ preferredNetworkEntry1.iCountryCode = iPreferredNetworks->At(3).iCountryCode;
+ preferredNetworkEntry1.iNetworkId = iPreferredNetworks->At(3).iNetworkId;
+ preferredNetworks->iTestPhone->iNetworkList->ChangeEntryL(0,preferredNetworkEntry1);
+ preferredNetworks->iTestPhone->iNetworkList->DeleteEntryL(1);
+ preferredNetworks->iTestPhone->iNetworkList->AddEntryL(preferredNetworkEntry1);
+ iPhone.StorePreferredNetworksListL(reqStatus,preferredNetworks->iTestPhone->iNetworkList);
+ User::WaitForRequest(reqStatus);
+ User::WaitForRequest(aReqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ TEST(aReqStatus.Int() == KErrNone);
+
+ delete preferredNetworks->iTestPhone->iNetworkList;
+ delete preferredNetworks->iTestPhone->iWlanList;
+ delete preferredNetworks;
+ return TestStepResult();
+ }
+
+CSimWlanTest22::CSimWlanTest22()
+ {
+ SetTestStepName(_L("Wlan Test22"));
+ }
+
+TVerdict CSimWlanTest22::doTestStepL()
+/**
+TEL-SIMTSY-MM-8666.
+Client retrieves WLAN parameters from USIM after update done by another client.
+*/
+ {
+ INFO_PRINTF1(_L("Two Client Scenario..."));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3,stat0,reqStatus,aReqStatus;
+
+ RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ RMobilePhone::TMobilePassword code = _L("1111");
+ RMobilePhone::TMobilePassword unblockCode = _L("1111");
+ RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
+
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(1).iFieldsUsed;
+ iPhone.NotifyWlanDataChange(reqSts1,usimWlanDataV8Pckgd);
+ iPhone.NotifySecurityEvent(reqSts2,securityEvent);
+
+ /* Create another thread and perform the authentication functionality. */
+ RThread thread;
+ INFO_PRINTF1(_L("A different client performing WLAN authentication"));
+ TInt KStackSize=0x8000;
+ TInt KHeapSize=0x8000;
+ TInt KMaxHeapSize=0x80000;
+
+ TInt res=thread.Create(_L("DifferentClient"), OtherCltWlan,KStackSize,KHeapSize,KMaxHeapSize,NULL, EOwnerThread);
+
+ TEST(res == KErrNone);
+
+ thread.Logon(reqSts3);
+ TEST(reqSts3.Int()==KRequestPending);
+
+ thread.Resume();
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int()==KErrNone);
+
+
+ if (thread.ExitType() != EExitKill && thread.ExitReason() != 0)
+ {
+ User::Leave(thread.ExitReason());
+ }
+ thread.Close();
+
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts1.Int() == KErrNone);
+ TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(1).iFieldsUsed);
+ TEST(usimWlanDataV8.iPseudonym == iWlanData->At(1).iPseudonym);
+ TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(1).iReauthenticationId);
+ TEST(usimWlanDataV8.iMasterKey == iWlanData->At(1).iMasterKey);
+ TEST(usimWlanDataV8.iCounter == iWlanData->At(1).iCounter);
+ iPhone.GetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(reqSts2);
+ TEST(reqSts2.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ User::WaitForRequest(stat0);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(stat0.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
+
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(1).iFieldsUsed);
+ TEST(usimWlanDataV8.iPseudonym == iWlanData->At(1).iPseudonym);
+ TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(1).iReauthenticationId);
+ TEST(usimWlanDataV8.iMasterKey == iWlanData->At(1).iMasterKey);
+ TEST(usimWlanDataV8.iCounter == iWlanData->At(1).iCounter);
+ return TestStepResult();
+ }
+
+TInt OtherCltWlan(void* aThreadData)
+ {
+
+ (void)aThreadData; // as we are not using this variable.
+
+ TInt ret =KErrNone;
+ TRAP(ret,CSimUsimR6TestWlanThread* myInstance = CSimUsimR6TestWlanThread::getInstanceL());
+
+ return ret;
+
+ }
+
+CSimUsimR6TestWlanThread* CSimUsimR6TestWlanThread::instance=NULL;
+
+CSimUsimR6TestWlanThread* CSimUsimR6TestWlanThread::getInstanceL()
+ {
+ if(instance == NULL)
+ {
+ instance = new(ELeave) CSimUsimR6TestWlanThread();
+ }
+ return instance;
+ }
+
+CSimUsimR6TestWlanThread::CSimUsimR6TestWlanThread()
+ {
+ // Do Nothing Constructor
+ }
+
+CSimUsimR6TestWlanThread::CSimUsimR6TestWlanThread(const CSimUsimR6TestWlanThread&)
+ {
+ // Do Nothing copy Constructor
+ }
+
+CSimUsimR6TestWlanThread& CSimUsimR6TestWlanThread::operator=(const CSimUsimR6TestWlanThread&)
+ {
+ // Do Nothing Operator overloaded function
+ CSimUsimR6TestWlanThread* test = CSimUsimR6TestWlanThread::getInstanceL();
+ return (*test);
+ }
+
+TVerdict CSimUsimR6TestWlanThread::doTestStepL()
+/**
+TEL-SIMTSY-MM-8663.
+Client stores the Wlan parameters on USIM successfully.
+*/
+ {
+ // local variables used throughout the tests
+ TRequestStatus reqStatus,aReqStatus,stat0,reqStatus1;
+ RMobilePhone::TMobilePhoneSecurityCode whichCode = RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TUsimWlanDataV8 usimWlanDataV8;
+ RMobilePhone::TUsimWlanDataV8Pckg usimWlanDataV8Pckgd(usimWlanDataV8);
+
+ RMobilePhone::TMobilePassword code = _L("1111");
+ RMobilePhone::TMobilePassword unblockCode = _L("1111");
+ RMobilePhone::TMobilePhoneSecurityEvent securityEvent;
+ iPhone.NotifySecurityEvent(aReqStatus,securityEvent);
+ usimWlanDataV8.iFieldsUsed = iWlanData->At(0).iFieldsUsed;
+ iPhone.NotifyWlanDataChange(reqStatus1,usimWlanDataV8Pckgd);
+
+ TestSmartCardAuthenticate();
+
+ usimWlanDataV8.iPseudonym = iWlanData->At(0).iPseudonym ;
+ usimWlanDataV8.iReauthenticationId = iWlanData->At(0).iReauthenticationId;
+ iPhone.SetWlanData(reqStatus,usimWlanDataV8Pckgd);
+ User::WaitForRequest(aReqStatus);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ iPhone.NotifySecurityEvent(stat0,securityEvent);
+ iPhone.VerifySecurityCode(aReqStatus,whichCode,code,unblockCode);
+ User::WaitForRequest(aReqStatus);
+ User::WaitForRequest(stat0);
+ TEST(aReqStatus.Int() == KErrNone);
+ TEST(securityEvent == RMobilePhone::EUSIMAppPinVerified);
+ User::WaitForRequest(reqStatus);
+ User::WaitForRequest(reqStatus1);
+ TEST(reqStatus.Int() == KErrNone);
+ TEST(reqStatus1.Int() == KErrNone);
+ TEST(usimWlanDataV8.iFieldsUsed == iWlanData->At(0).iFieldsUsed);
+ TEST(usimWlanDataV8.iPseudonym == iWlanData->At(0).iPseudonym);
+ TEST(usimWlanDataV8.iReauthenticationId == iWlanData->At(0).iReauthenticationId);
+ return TestStepResult();
+ }
+
+CTestRetrieveMobilePhonePreferredWlanSIDs* CTestRetrieveMobilePhonePreferredWlanSIDs::NewLC(RMobilePhone& aPhone)
+ {
+ CTestRetrieveMobilePhonePreferredWlanSIDs* r=new(ELeave) CTestRetrieveMobilePhonePreferredWlanSIDs(aPhone);
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ CleanupStack::Pop();
+ return r;
+ }
+
+CTestRetrieveMobilePhonePreferredWlanSIDs::CTestRetrieveMobilePhonePreferredWlanSIDs(RMobilePhone& aPhone)
+: CActive(EPriorityNormal), iPhone(aPhone)
+{}
+
+void CTestRetrieveMobilePhonePreferredWlanSIDs::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ iRetrieve=CRetrieveMobilePhonePreferredWlanSIDs::NewL(iPhone);
+ iTestWLAN = new (ELeave) CSimWlanTest6();
+ }
+
+CTestRetrieveMobilePhonePreferredWlanSIDs::~CTestRetrieveMobilePhonePreferredWlanSIDs()
+ {
+ delete iRetrieve;
+ delete iTestWLAN;
+ }
+
+void CTestRetrieveMobilePhonePreferredWlanSIDs::Start()
+ {
+ iRetrieve->Start(iStatus);
+ SetActive();
+ }
+
+void CTestRetrieveMobilePhonePreferredWlanSIDs::RunL()
+ {
+ TInt ret=iStatus.Int();
+ if(ret==KErrPermissionDenied)
+ {
+ iTestWLAN->INFO_PRINTF1(_L("Permission Access Denied"));
+ CActiveScheduler::Stop();
+ return;
+ }
+ User::LeaveIfError(ret);
+ ret=CheckWLANResults();
+ User::LeaveIfError(ret);
+ CActiveScheduler::Stop();
+ }
+
+void CTestRetrieveMobilePhonePreferredWlanSIDs::DoCancel()
+ {
+ iRetrieve->Cancel();
+ }
+
+TInt CTestRetrieveMobilePhonePreferredWlanSIDs::CheckWLANResults()
+ {
+ TInt ret=KErrNone;
+
+ iTestWLAN->iWlanList =NULL;
+ TInt leaveCode=KErrNone;
+ TRAP(leaveCode, iTestWLAN->iWlanList=iRetrieve->RetrieveListL(););
+
+ //Check that a list is returned back to the test
+ iTestWLAN->TEST(iTestWLAN->iWlanList!=NULL);
+
+ if (iTestWLAN->iWlanList)
+ {
+ //Check that the number of entries in the list is as expected
+ iTestWLAN->TEST(iTestWLAN->iWlanList->Enumerate()==SIMTSY_PHONE_WLAN_SIDLIST_COUNT);
+ // Get each entry
+ RMobilePhone::TWlanSIDV8 wlanSIDV8;
+ for (TInt i=0; i<SIMTSY_PHONE_WLAN_SIDLIST_COUNT; ++i)
+ {
+ TRAP(ret,wlanSIDV8=iTestWLAN->iWlanList->GetEntryL(i));
+ if (ret != KErrNone)
+ {
+ break;
+ }
+ switch(i)
+ {
+ case 0:
+ {
+ iTestWLAN->TEST(wlanSIDV8.iWSID == SIMTSY_PHONE_WLAN_WSID_ONE);
+ iTestWLAN->TEST(wlanSIDV8.iUserDefined == SIMTSY_PHONE_WLAN_USERDEFD_ONE);
+ break;
+ }
+ case 1:
+ {
+ iTestWLAN->TEST(wlanSIDV8.iWSID == SIMTSY_PHONE_WLAN_WSID_TWO);
+ iTestWLAN->TEST(wlanSIDV8.iUserDefined == SIMTSY_PHONE_WLAN_USERDEFD_TWO);
+ break;
+ }
+ case 2:
+ {
+ iTestWLAN->TEST(wlanSIDV8.iWSID == SIMTSY_PHONE_WLAN_WSID_THREE);
+ iTestWLAN->TEST(wlanSIDV8.iUserDefined == SIMTSY_PHONE_WLAN_USERDEFD_THREE); break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+ return ret;
+ }
+
+/**************************************************************/
+//
+// Testing asynchronous retrieve of preferred stored network list
+//
+/**************************************************************/
+
+
+CTestGetPreferredNetworks* CTestGetPreferredNetworks::NewLC(RMobilePhone& aPhone)
+ {
+ CTestGetPreferredNetworks* r=new(ELeave) CTestGetPreferredNetworks(aPhone);
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ CleanupStack::Pop();
+ return r;
+ }
+
+CTestGetPreferredNetworks::CTestGetPreferredNetworks(RMobilePhone& aPhone)
+ : CActive(EPriorityNormal), iPhone(aPhone)
+ {}
+
+
+void CTestGetPreferredNetworks::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ iRetrieve=CRetrieveMobilePhonePreferredNetworks::NewL(iPhone);
+ iTestPhone = new (ELeave) CSimWlanTest6();
+ }
+
+CTestGetPreferredNetworks::~CTestGetPreferredNetworks()
+ {
+ delete iRetrieve;
+ delete iTestPhone;
+ }
+
+void CTestGetPreferredNetworks::Start()
+ {
+ iRetrieve->Start(iStatus);
+ SetActive();
+ }
+
+void CTestGetPreferredNetworks::RunL()
+ {
+ TInt ret=iStatus.Int();
+ if(ret==KErrPermissionDenied)
+ {
+ iTestPhone->INFO_PRINTF1(_L("Permission Access Denied"));
+ CActiveScheduler::Stop();
+ return;
+ }
+ User::LeaveIfError(ret);
+ ret=CheckResults();
+ User::LeaveIfError(ret);
+
+ CActiveScheduler::Stop();
+ }
+
+
+void CTestGetPreferredNetworks::DoCancel()
+ {
+ iRetrieve->Cancel();
+ }
+
+TInt CTestGetPreferredNetworks::CheckResults()
+ {
+ TInt ret=KErrNone;
+
+ iTestPhone->iNetworkList=NULL;
+ TInt leaveCode=KErrNone;
+ TRAP(leaveCode, iTestPhone->iNetworkList=iRetrieve->RetrieveListL(););
+
+ if (iTestPhone->iNetworkList)
+ {
+ iTestPhone->TEST(iTestPhone->iNetworkList->Enumerate()==SIMTSY_PHONE_NTWK_LIST_ENTRIES);
+
+ // Get each stored network entry
+ RMobilePhone::TMobilePreferredNetworkEntryV3 entry;
+
+ for (TInt i=0; i<SIMTSY_PHONE_NTWK_LIST_ENTRIES; ++i)
+ {
+ TRAP(ret,entry=iTestPhone->iNetworkList->GetEntryL(i));
+ if (ret != KErrNone)
+ break;
+ switch(i)
+ {
+ case 0:
+ {
+ iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM);
+ iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE);
+ iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID1);
+ iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID1);
+ }
+ break;
+ case 1:
+ {
+ iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC);
+ iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE);
+ iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID2);
+ iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID2);
+ }
+ break;
+ case 2:
+ default:
+ {
+ iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN);
+ iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE);
+ iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID2);
+ iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID1);
+ }
+ break;
+ case 3:
+ {
+ iTestPhone->TEST(entry.iAccess == SIMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN);// - RAFIK UNCOMMENT THIS
+ iTestPhone->TEST(entry.iUserDefined == SIMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE);
+ iTestPhone->TEST(entry.iCountryCode == SIMTSY_PHONE_NTWK_LIST_COUNTRY_ID2);
+ iTestPhone->TEST(entry.iNetworkId == SIMTSY_PHONE_NTWK_LIST_NETWORK_ID1);
+ break;
+ }
+ }
+ }
+ }
+ return ret;
+ }
+
+
+CSim3GSecurityContextTest1::CSim3GSecurityContextTest1()
+ {
+ SetTestStepName(_L("3GSecurityContextTest1"));
+ }
+
+TVerdict CSim3GSecurityContextTest1::doTestStepL()
+/**
+TEL-SIMTSY-MM-8658.
+Client performs EAP-AKA USIM authentication successfully.
+*/
+ {
+ TestSmartCardAuthenticate();
+ return TestStepResult();
+ }
+
+CSim3GSecurityContextTest2::CSim3GSecurityContextTest2()
+ {
+ SetTestStepName(_L("CSim3GSecurityContextTest2"));
+ }
+
+TVerdict CSim3GSecurityContextTest2::doTestStepL()
+/**
+TEL-SIMTSY-MM-8659.
+Client is unable to perform EAP-AKA USIM authentication due to lack of support in USIM service table.
+*/
+ {
+ TRequestStatus reqStatus;
+ RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
+ RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
+ authenticateData.iAUTN = KConfigScWlanAuthAUTN();
+ authenticateData.iRAND = KConfigScWlanAuthRAND();
+ authenticateData.iCK = KConfigScWlanNotSupported();
+
+ RMobilePhone::TAID appAID = KWlanAid();
+ iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
+ User::WaitForRequest(reqStatus);
+ TESTL(reqStatus==KErrNotSupported);
+ return TestStepResult();
+ }
+
+CSim3GSecurityContextTest3::CSim3GSecurityContextTest3()
+ {
+ SetTestStepName(_L("CSim3GSecurityContextTest3"));
+ }
+
+TVerdict CSim3GSecurityContextTest3::doTestStepL()
+/**
+TEL-SIMTSY-MM-8660.
+Client is unable to perform EAP-AKA USIM authentication due to inactive USIM application.
+*/
+ {
+ TRequestStatus reqStatus;
+ RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
+ RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
+ authenticateData.iAUTN = KConfigScWlanAuthAUTN();
+ authenticateData.iRAND = KConfigScWlanAuthRAND();
+ authenticateData.iCK = KConfigScWlan();
+
+ RMobilePhone::TAID appAID;
+ iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
+ User::WaitForRequest(reqStatus);
+ TESTL(reqStatus==KErrMMEtelScApplicationNotActive);
+ return TestStepResult();
+ }
+
+CSim3GSecurityContextTest4::CSim3GSecurityContextTest4()
+ {
+ SetTestStepName(_L("CSim3GSecurityContextTest4"));
+ }
+
+TVerdict CSim3GSecurityContextTest4::doTestStepL()
+/**
+TEL-SIMTSY-MM-8661.
+Client is unable to perform EAP-AKA USIM authentication due to MAC verification failure.
+*/
+ {
+ TRequestStatus reqStatus;
+ RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
+ RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
+ authenticateData.iCK = KConfigScWlan();
+
+ RMobilePhone::TAID appAID = KWlanAid();
+ iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
+ User::WaitForRequest(reqStatus);
+ TESTL(reqStatus==KErrMMEtelMacVerificationFailed);
+ return TestStepResult();
+ }
+
+CSim3GSecurityContextTest5::CSim3GSecurityContextTest5()
+ {
+ SetTestStepName(_L("CSim3GSecurityContextTest5"));
+ }
+
+TVerdict CSim3GSecurityContextTest5::doTestStepL()
+/**
+TEL-SIMTSY-MM-8662.
+Client is unable to perform EAP-AKA USIM authentication due to synchronisation failure.
+*/
+ {
+ TRequestStatus reqStatus;
+ RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
+ RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
+ authenticateData.iAUTN = KConfigScWlanAuthAUTN();
+ authenticateData.iCK = KConfigScWlan();
+
+ RMobilePhone::TAID appAID = KWlanAid();
+ iPhone.SmartCardAuthenticate(reqStatus,appAID,authenticateDataPckg);
+ User::WaitForRequest(reqStatus);
+ TESTL(reqStatus==KErrMMEtelSqnVerificationFailed);
+ return TestStepResult();
+ }
+
+/****************************************************************************\
+ * *
+ * Generic Bootstrapping Architecture Testcases *
+ * *
+ ****************************************************************************/
+
+CSimUsimR6GBATest1::CSimUsimR6GBATest1()
+ {
+ SetTestStepName(_L("UsimR6GBATest1"));
+ }
+
+TVerdict CSimUsimR6GBATest1::doTestStepL()
+/**
+TEL-SIMTSY-MM-8601.
+Client confirms on the support of GBA functionality by the USIM.
+*/
+ {
+ INFO_PRINTF1(_L("BeginUsimR6GBATest"));
+
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+ TRequestStatus reqStatus=KErrNone;
+
+ //Verify the support of GBA in USIM Service Table
+
+ RMobilePhone::TMobilePhoneServiceTableV8 asyncSstV8File;
+ RMobilePhone::TMobilePhoneServiceTableV8Pckg asyncSstV8FilePckg(asyncSstV8File);
+ RMobilePhone::TMobilePhoneServiceTable serviceTableType=RMobilePhone::EUSIMServiceTable;
+
+ iPhone.GetServiceTable(reqStatus, serviceTableType, asyncSstV8FilePckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int()==KErrNone);
+ if(reqStatus.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for GBA passed"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for GBA failed"));
+ }
+ TEST((asyncSstV8File.iServices65To72) == RMobilePhone::KUstGBA);
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest2::CSimUsimR6GBATest2()
+ {
+ SetTestStepName(_L("UsimR6GBATest2"));
+ }
+
+TVerdict CSimUsimR6GBATest2::doTestStepL()
+/**
+TEL-SIMTSY-MM-8602.
+Client performs successfully GBA authentication in Bootstrap mode
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3,reqStatus;
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+ iPhone.NotifyAuthenticateDataChange(reqStatus,tAuthInfoV8Pckg);
+
+ RMobilePhone::TAID appAID = Kaid();
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+ iPhone.SmartCardAuthenticate(reqSts2, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts2);
+ TEST(reqSts2.Int() == KErrNone);
+
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ INFO_PRINTF1(_L("RMobilePhone::NotifyAuthenticateDataChange Completed."));
+
+ tAuthInfoV8 = tAuthInfoV8Pckg();
+
+ TEST(tAuthInfoV8.iAID == Kaid());
+ TEST(tAuthInfoV8.iData == RMobilePhone::EGbaBootstrapParams );
+ /* Client sends the RES to the network in the HTTP Digest AKA response.
+ * The network (i.e. the BSF) authenticates the phone by verifying the
+ * Digest AKA response. The network generates the Ks key, the
+ * transaction identifier (B-TID) and the Ks key Lifetime.
+ * The network (the BSF) then sends the B-TID value and the key
+ * lifetime to the phone.
+ */
+ RMobilePhone::TBsfDataV8 tBsfDataV8;
+ RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
+
+ _LIT8(KBtid,"B2345");
+ _LIT8(KKeyLifeTime,"D3789");
+ tBsfDataV8.iBtid = KBtid;
+ tBsfDataV8.iKeyLifetime = KKeyLifeTime;
+
+ iPhone.SetGbaBootstrapParams(reqSts3,appAID,tBsfDataV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinRequired"));
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the PIN1"));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+
+ if(reqSts3.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("SetGBABootParams Completed Successfully"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("SetGBABootParams Not Completed Successfully"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest3::CSimUsimR6GBATest3()
+ {
+ SetTestStepName(_L("UsimR6GBATest3"));
+ }
+
+TVerdict CSimUsimR6GBATest3::doTestStepL()
+/**
+TEL-SIMTSY-MM-8603.
+Client is unable to perform GBA authentication in Bootstrap mode as USIM application is not active
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrMMEtelScApplicationNotActive );
+
+ if(reqSts.Int() == KErrMMEtelScApplicationNotActive)
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate completed with Application Not Active"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest4::CSimUsimR6GBATest4()
+ {
+ SetTestStepName(_L("UsimR6GBATest4"));
+ }
+
+TVerdict CSimUsimR6GBATest4::doTestStepL()
+/**
+TEL-SIMTSY-MM-8604.
+Client is unable to perform GBA authentication in Bootstrap mode as
+USIM application is busy with another client’s request for GBA.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(40);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrInUse );
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completed with Application busy."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest5::CSimUsimR6GBATest5()
+ {
+ SetTestStepName(_L("UsimR6GBATest5"));
+ }
+
+TVerdict CSimUsimR6GBATest5::doTestStepL()
+/**
+TEL-SIMTSY-MM-8605.
+Client is unable to update EFGBABP due to PIN verification failure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts2, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts2);
+ TEST(reqSts2.Int() == KErrNone);
+
+ if(reqSts2.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate completed successfully."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate not completed successfully."));
+ }
+
+ /* Client sends the RES to the network in the HTTP Digest AKA response.
+ * The network (i.e. the BSF) authenticates the phone by verifying the
+ * Digest AKA response. The network generates the Ks key, the
+ * transaction identifier (B-TID) and the Ks key Lifetime.
+ * The network (the BSF) then sends the B-TID value and the key
+ * lifetime to the phone.
+ */
+ RMobilePhone::TBsfDataV8 tBsfDataV8;
+ RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
+
+ _LIT8(KBtid,"B4567"); // not the value in the config file to return KErrAccessDenied
+ _LIT8(KKeyLifeTime,"D3789");
+ tBsfDataV8.iBtid = KBtid;
+ tBsfDataV8.iKeyLifetime = KKeyLifeTime;
+
+ iPhone.SetGbaBootstrapParams(reqSts3,appAID,tBsfDataV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinRequired"));
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "4567"); // Invalid password
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the PIN1"));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrAccessDenied);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinRequired);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with USIM PIN Verification failed"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrAccessDenied);
+ if(reqSts3.Int() == KErrAccessDenied)
+ {
+ INFO_PRINTF1(_L("SetGbaBootstrapParams completed with KErrAccessDenied"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest6::CSimUsimR6GBATest6()
+ {
+ SetTestStepName(_L("UsimR6GBATest6"));
+ }
+
+TVerdict CSimUsimR6GBATest6::doTestStepL()
+/**
+TEL-SIMTSY-MM-8606.
+Client performs successfully GBA authentication
+in NAF derivation mode after deriving Bootstrap key (Ks).
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(49);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2;
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ _LIT8(Kaid,"AE879");
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Precondition:
+ * Client performed the GBA authentication in bootstrap mode successsfully
+ */
+
+ // Generation of Ks_ext_NAF using NAF derivation method
+
+ _LIT8(KNafid,"C6453");
+ _LIT8(KImpi,"E7654");
+
+ iPhone.NotifyAuthenticateDataChange(reqSts1,tAuthInfoV8Pckg);
+
+ RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
+ RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
+
+ tGbaNafAuthDataV8.iNafId = KNafid;
+ tGbaNafAuthDataV8.iImpi = KImpi;
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts2, appAID,tGbaNafAuthDataV8Pckg);
+ User::WaitForRequest(reqSts2);
+ TEST(reqSts2.Int() == KErrNone);
+
+ if(reqSts2.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate completed successfully."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate not completed successfully."));
+ }
+
+ tGbaNafAuthDataV8 = tGbaNafAuthDataV8Pckg();
+ _LIT8(KksExtNaf,"A6543");
+ TEST(tGbaNafAuthDataV8.iKsExtNaf.Compare(KksExtNaf) == 0);
+
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts1.Int() == KErrNone);
+ INFO_PRINTF1(_L("RMobilePhone::NotifyAuthenticateDataChange Completed."));
+
+ tAuthInfoV8 = tAuthInfoV8Pckg();
+ TEST(tAuthInfoV8.iAID == Kaid());
+ TEST(tAuthInfoV8.iData == RMobilePhone::EGbaNafIdList );
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest7::CSimUsimR6GBATest7()
+ {
+ SetTestStepName(_L("UsimR6GBATest7"));
+ }
+
+TVerdict CSimUsimR6GBATest7::doTestStepL()
+/**
+TEL-SIMTSY-MM-8607.
+Client performs successfully GBA authentication in
+NAF derivation mode using the existing Bootstrap key (Ks).
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+ if(reqSts3.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed successfully."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams not completed successfully."));
+ }
+
+ tGbaBootstrapParamsV8 = tGbaBootstrapParamsV8Pckg();
+ TEST(tGbaBootstrapParamsV8.iRand == _L8("RAND_IN"));
+ TEST(tGbaBootstrapParamsV8.iBtid == _L8("B2345"));
+ TEST(tGbaBootstrapParamsV8.iKeyLifetime == _L8("D3789"));
+
+ RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
+ RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
+
+ _LIT8(KNafId,"C6453");
+ _LIT8(KImpi,"E7654");
+
+ tGbaNafAuthDataV8.iNafId = KNafId;
+ tGbaNafAuthDataV8.iImpi = KImpi;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ iPhone.SmartCardAuthenticate(reqSts3,appAID,tGbaNafAuthDataV8Pckg);
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+
+ tGbaNafAuthDataV8 = tGbaNafAuthDataV8Pckg();
+ _LIT8(KksExtNaf,"A6543");
+ TEST(tGbaNafAuthDataV8.iKsExtNaf.Compare(KksExtNaf) == 0);
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest8::CSimUsimR6GBATest8()
+ {
+ SetTestStepName(_L("UsimR6GBATest8"));
+ }
+
+TVerdict CSimUsimR6GBATest8::doTestStepL()
+/**
+TEL-SIMTSY-MM-8608.
+Client is unable to perform GBA authentication in NAF derivation mode as Ks is not available.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(41);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts3;
+
+ RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
+ RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
+
+ _LIT8(KNafId,"C6453");
+ _LIT8(KImpi,"E7654");
+ _LIT8(Kaid,"AE879");
+
+ tGbaNafAuthDataV8.iNafId = KNafId;
+ tGbaNafAuthDataV8.iImpi = KImpi;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts3,appAID,tGbaNafAuthDataV8Pckg);
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrMMEtelAuthKeyNotFound);
+
+ if(reqSts3.Int() == KErrMMEtelAuthKeyNotFound)
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate completed with Ks Not Found."));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest9::CSimUsimR6GBATest9()
+ {
+ SetTestStepName(_L("UsimR6GBATest9"));
+ }
+
+TVerdict CSimUsimR6GBATest9::doTestStepL()
+/**
+TEL-SIMTSY-MM-8609.
+Client is unable to perform GBA authentication in
+NAF derivation mode as USIM application is not active
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
+ RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
+
+ _LIT8(KNafId,"C6453");
+ _LIT8(KImpi,"E7654");
+ _LIT8(Kaid,"AE879");
+
+ tGbaNafAuthDataV8.iNafId = KNafId;
+ tGbaNafAuthDataV8.iImpi = KImpi;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts,appAID,tGbaNafAuthDataV8Pckg);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrMMEtelScApplicationNotActive);
+
+ if(reqSts.Int() == KErrMMEtelScApplicationNotActive)
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::SmartCardAuthenticate Completed with Application Not Active."));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest10::CSimUsimR6GBATest10()
+ {
+ SetTestStepName(_L("UsimR6GBATest10"));
+ }
+
+TVerdict CSimUsimR6GBATest10::doTestStepL()
+/**
+TEL-SIMTSY-MM-8610.
+Client is unable to perform GBA authentication in
+NAF derivation mode as USIM application is busy with another client’s request for GBA.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(40);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaNafAuthDataV8 tGbaNafAuthDataV8;
+ RMobilePhone::TGbaNafAuthDataV8Pckg tGbaNafAuthDataV8Pckg(tGbaNafAuthDataV8);
+
+ _LIT8(KNafId,"C6453");
+ _LIT8(KImpi,"E7654");
+ _LIT8(Kaid,"AE879");
+
+ tGbaNafAuthDataV8.iNafId = KNafId;
+ tGbaNafAuthDataV8.iImpi = KImpi;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts,appAID,tGbaNafAuthDataV8Pckg);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrInUse);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate Completed with KErrInUse."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest11::CSimUsimR6GBATest11()
+ {
+ SetTestStepName(_L("UsimR6GBATest11"));
+ }
+
+TVerdict CSimUsimR6GBATest11::doTestStepL()
+/**
+TEL-SIMTSY-MM-8611.
+Client, at its discretion, retrieves GBA Bootstrapping parameters from UICC successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+
+ INFO_PRINTF1(_L("Two Client Scenario..."));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed Successfully with EUSIMAppPinVerified."));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+ if(reqSts3.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed Successfully."));
+ }
+
+ tGbaBootstrapParamsV8 = tGbaBootstrapParamsV8Pckg();
+
+ _LIT8(KRand,"RAND_IN");
+ _LIT8(KBtid,"B2345");
+ _LIT8(KKeyLifeTime,"D3789");
+
+ TEST(tGbaBootstrapParamsV8.iRand.Compare(KRand)==0);
+ TEST(tGbaBootstrapParamsV8.iBtid.Compare(KBtid)==0);
+ TEST(tGbaBootstrapParamsV8.iKeyLifetime.Compare(KKeyLifeTime)==0);
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest12::CSimUsimR6GBATest12()
+ {
+ SetTestStepName(_L("UsimR6GBATest12"));
+ }
+
+TVerdict CSimUsimR6GBATest12::doTestStepL()
+/**
+TEL-SIMTSY-MM-8612.
+Clients retrieve GBA Bootstrapping parameters successfully upon notification from UICC.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+
+ INFO_PRINTF1(_L("Two Client Scenario..."));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+ _LIT8(Kaid,"AE879");
+
+ iPhone.NotifyAuthenticateDataChange(reqSts2,tAuthInfoV8Pckg);
+
+ /* Create another thread and perform the authentication functionality. */
+ RThread thread;
+ INFO_PRINTF1(_L("A different client performing GBA authentication"));
+ TInt KStackSize=0x8000;
+ TInt KHeapSize=0x8000;
+ TInt KMaxHeapSize=0x80000;
+
+ TInt res=thread.Create(_L("DifferentClient"), OtherCltGBA,KStackSize,KHeapSize,KMaxHeapSize,NULL, EOwnerThread);
+
+ TEST(res == KErrNone);
+
+ thread.Logon(reqSts3);
+ TEST(reqSts3.Int()==KRequestPending);
+
+ thread.Resume();
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int()==KErrNone);
+
+ /* Client has updated the EFGBA with the new authentication parameters */
+
+ User::WaitForRequest(reqSts2); // NotifyAuthenticateData completes as the
+ // authentication is performed by another client
+ TEST(reqSts2.Int()==KErrNone);
+ if(reqSts2.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("NotifyAuthenticateDataChange completed Successfully in Client 1."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("NotifyAuthenticateDataChange Not completed Successfully in Client 1."));
+ }
+
+ tAuthInfoV8 = tAuthInfoV8Pckg();
+
+ TEST(tAuthInfoV8.iAID == Kaid());
+ TEST(tAuthInfoV8.iData == RMobilePhone::EGbaBootstrapParams);
+
+ if (thread.ExitType() != EExitKill && thread.ExitReason() != 0)
+ {
+ User::Leave(thread.ExitReason());
+ }
+ thread.Close();
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("GetAuthenticationParams completed Successfully in Client 1."));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+ if(reqSts3.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
+ }
+
+ tGbaBootstrapParamsV8 = tGbaBootstrapParamsV8Pckg();
+
+ _LIT8(KRand,"RAND_IN");
+ _LIT8(KBtid,"B2345");
+ _LIT8(KKeyLifeTime,"D3789");
+
+ TEST(tGbaBootstrapParamsV8.iRand.Compare(KRand)==0);
+ TEST(tGbaBootstrapParamsV8.iBtid.Compare(KBtid)==0);
+ TEST(tGbaBootstrapParamsV8.iKeyLifetime.Compare(KKeyLifeTime)==0);
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATestThread* CSimUsimR6GBATestThread::instance=NULL;
+
+CSimUsimR6GBATestThread* CSimUsimR6GBATestThread::getInstanceL()
+ {
+ if(instance == NULL)
+ {
+ instance = new(ELeave) CSimUsimR6GBATestThread();
+ }
+ return instance;
+ }
+
+CSimUsimR6GBATestThread::CSimUsimR6GBATestThread()
+ {
+ // Do Nothing Constructor
+ }
+
+CSimUsimR6GBATestThread::CSimUsimR6GBATestThread(const CSimUsimR6GBATestThread&)
+ {
+ // Do Nothing copy Constructor
+ }
+
+CSimUsimR6GBATestThread& CSimUsimR6GBATestThread::operator=(const CSimUsimR6GBATestThread&)
+ {
+ // Do Nothing Operator overloaded function
+ CSimUsimR6GBATestThread* test = CSimUsimR6GBATestThread::getInstanceL();
+ return (*test);
+ }
+
+TVerdict CSimUsimR6GBATestThread::doTestStepL()
+/**
+TEL-SIMTSY-MM-
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ iPhone.NotifyAuthenticateDataChange(reqSts2,tAuthInfoV8Pckg);
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"ABCD");
+ _LIT8(Kautn,"ADFC");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ iPhone.SmartCardAuthenticate(reqSts3, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+
+ User::WaitForRequest(reqSts2); // NotifyAuthenticateData completes successfully.
+ TEST(reqSts2.Int() == KErrNone);
+ if(reqSts2.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("NotifyAuthenticateDataChange completed Successfully in Client 1."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("NotifyAuthenticateDataChange Not completed Successfully in Client 1."));
+ }
+
+ tAuthInfoV8 = tAuthInfoV8Pckg();
+
+ TEST(tAuthInfoV8.iAID == Kaid());
+ TEST(tAuthInfoV8.iData == RMobilePhone::EGbaBootstrapParams );
+
+ RMobilePhone::TBsfDataV8 tBsfDataV8;
+ RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
+
+ _LIT8(KBtid,"B2345");
+ _LIT8(KKeyLifeTime,"D3789");
+ tBsfDataV8.iBtid = KBtid;
+ tBsfDataV8.iKeyLifetime = KKeyLifeTime;
+
+ iPhone.SetGbaBootstrapParams(reqSts3,appAID,tBsfDataV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinRequired"));
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the PIN1"));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+// INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+TInt OtherCltGBA(void* /*aThreadData*/)
+ {
+ TInt ret =KErrNone;
+ TRAP(ret,CSimUsimR6GBATestThread* myInstance = CSimUsimR6GBATestThread::getInstanceL());
+ return ret;
+ }
+
+CSimUsimR6GBATest13::CSimUsimR6GBATest13()
+ {
+ SetTestStepName(_L("UsimR6GBATest13"));
+ }
+
+TVerdict CSimUsimR6GBATest13::doTestStepL()
+/**
+TEL-SIMTSY-MM-8613.
+Client is unable to retrieve GBA Bootstrapping parameters as the USIM application is not active.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrMMEtelScApplicationNotActive);
+
+ if(reqSts.Int() == KErrMMEtelScApplicationNotActive)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed with Application Not Active"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest14::CSimUsimR6GBATest14()
+ {
+ SetTestStepName(_L("UsimR6GBATest14"));
+ }
+
+TVerdict CSimUsimR6GBATest14::doTestStepL()
+/**
+TEL-SIMTSY-MM-8614.
+Client is unable to retrieve GBA Bootstrapping parameters due to PIN verification failure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(42);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "3334"); // Invalid pin for the USIM Appln.
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2.Int() == KErrAccessDenied);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinRequired);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with USIM PIN Verification failed"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrAccessDenied);
+ if(reqSts3.Int() == KErrAccessDenied)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed with KErrAccessDenied"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest15::CSimUsimR6GBATest15()
+ {
+ SetTestStepName(_L("UsimR6GBATest15"));
+ }
+
+TVerdict CSimUsimR6GBATest15::doTestStepL()
+/**
+TEL-SIMTSY-MM-8615.
+Client retrieves NAF_ID list from UICC successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
+ CTestRetrieveMobilePhoneAuthenticationIds::EGba);
+
+ pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EGba);
+ pRetrieve->TestRetrieve(RMobilePhone::EGbaNafIdList);
+
+ //Delete test object
+ CleanupStack::PopAndDestroy(); //pRetrieve
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest16::CSimUsimR6GBATest16()
+ {
+ SetTestStepName(_L("UsimR6GBATest16"));
+ }
+
+TVerdict CSimUsimR6GBATest16::doTestStepL()
+/**
+TEL-SIMTSY-MM-8616.
+Client is unable to perform GBA authentication due to MAC verification failure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(44);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrMMEtelAuthMacInvalid);
+
+ if(reqSts.Int() == KErrMMEtelAuthMacInvalid)
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed with KErrMMEtelAuthMacInvalid"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate API not completed with KErrMMEtelAuthMacInvalid"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest17::CSimUsimR6GBATest17()
+ {
+ SetTestStepName(_L("UsimR6GBATest17"));
+ }
+
+TVerdict CSimUsimR6GBATest17::doTestStepL()
+/**
+TEL-SIMTSY-MM-8617.
+Client is unable to perform GBA authentication due to invalid sequence.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(45);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ INFO_PRINTF1(_L("Testing SmartCardAuthenticate async with AID..."));
+
+ iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrMMEtelAuthVerificationFailure);
+
+ if(reqSts.Int() == KErrMMEtelAuthVerificationFailure)
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed with KErrMMEtelAuthVerificationFailure"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("SmartCardAuthenticate API not completed with KErrMMEtelAuthVerificationFailure"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest18::CSimUsimR6GBATest18()
+ {
+ SetTestStepName(_L("UsimR6GBATest18"));
+ }
+
+TVerdict CSimUsimR6GBATest18::doTestStepL()
+/**
+TEL-SIMTSY-MM-8618.
+Cancel GBA authentication requests. (All APIs)
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts;
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ iPhone.NotifyAuthenticateDataChange(reqSts,tAuthInfoV8Pckg);
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyAuthenticateDataChange);
+ User::WaitForRequest(reqSts);
+ TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
+
+ INFO_PRINTF1(_L("Cancellation of NotifyAuthenticateDataChange API Completed"));
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ iPhone.CancelAsyncRequest(EMobilePhoneSmartCardAuthenticate);
+ User::WaitForRequest(reqSts);
+
+ TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
+ INFO_PRINTF1(_L("Cancellation of SmartCardAuthenticate API Completed"));
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+ iPhone.CancelAsyncRequest(EMobilePhoneGetAuthenticationParams);
+ User::WaitForRequest(reqSts);
+
+ TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
+ INFO_PRINTF1(_L("Cancellation of GetAuthenticationParams API Completed"));
+
+ RMobilePhone::TBsfDataV8 tBsfDataV8;
+ RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
+
+ _LIT8(KBtid,"B2345");
+ _LIT8(KKeyLifeTime,"D3789");
+ tBsfDataV8.iBtid = KBtid;
+ tBsfDataV8.iKeyLifetime = KKeyLifeTime;
+
+ iPhone.SetGbaBootstrapParams(reqSts,appAID,tBsfDataV8Pckg);
+ iPhone.CancelAsyncRequest(EMobilePhoneSetGbaBootstrapParams);
+ User::WaitForRequest(reqSts);
+
+ TEST((reqSts.Int() == KErrNone) || (reqSts.Int() == KErrCancel));
+ INFO_PRINTF1(_L("Cancellation of SetGbaBootstrapParams API Completed"));
+
+ /* Cancellation of the two phase retrieval */
+ CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
+ CTestRetrieveMobilePhoneAuthenticationIds::EGba);
+
+ pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EGba);
+ pRetrieve->TestCancel(RMobilePhone::EGbaNafIdList);
+
+ //Delete test object
+ CleanupStack::PopAndDestroy(); //pRetrieve
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest19::CSimUsimR6GBATest19()
+ {
+ SetTestStepName(_L("UsimR6GBATest19"));
+ }
+
+TVerdict CSimUsimR6GBATest19::doTestStepL()
+/**
+TEL-SIMTSY-MM-8619.
+Test SmartCardAuthenticate API with different capability
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L("Testing the SmartCardAuthenticate API with different capability"));
+
+ /* Expected Capability = ReadDeviceData */
+ /* Calling Client's capability = LocalServices */
+ TRequestStatus reqSts;
+
+ RMobilePhone::TGbaBootstrapAuthDataV8 tGbaBootstrapAuthDataV8;
+ RMobilePhone::TGbaBootstrapAuthDataV8Pckg tGbaBootstrapAuthDataV8Pckgd(tGbaBootstrapAuthDataV8);
+
+ _LIT8(Krand,"RAND_IN");
+ _LIT8(Kautn,"AUTN_IN");
+ _LIT8(Kaid,"AE879");
+ tGbaBootstrapAuthDataV8.iRAND = Krand;
+ tGbaBootstrapAuthDataV8.iAUTN = Kautn;
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ iPhone.SmartCardAuthenticate(reqSts, appAID, tGbaBootstrapAuthDataV8Pckgd);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrPermissionDenied);
+
+ INFO_PRINTF1(_L("Testing of SmartCardAuthenticate API with different capability Completed"));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest20::CSimUsimR6GBATest20()
+ {
+ SetTestStepName(_L("UsimR6GBATest20"));
+ }
+
+TVerdict CSimUsimR6GBATest20::doTestStepL()
+/**
+TEL-SIMTSY-MM-8620.
+Test SetGbaBootstrapParams API with different capability
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L("Testing the SetGbaBootstrapParams API with different capability"));
+
+ TRequestStatus reqSts;
+ /* Expected Capability = WriteDeviceData */
+ /* Calling Client's capability = LocalServices */
+
+ _LIT8(Kaid,"AE879");
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TBsfDataV8 tBsfDataV8;
+ RMobilePhone::TBsfDataV8Pckg tBsfDataV8Pckg(tBsfDataV8);
+
+ _LIT8(KBtid,"B2345");
+ _LIT8(KKeyLifeTime,"D3789");
+ tBsfDataV8.iBtid = KBtid;
+ tBsfDataV8.iKeyLifetime = KKeyLifeTime;
+
+ iPhone.SetGbaBootstrapParams(reqSts,appAID,tBsfDataV8Pckg);
+ User::WaitForRequest(reqSts);
+
+ TEST(reqSts.Int() == KErrPermissionDenied);
+ INFO_PRINTF1(_L("Testing of SetGbaBootstrapParams API with different capability Completed"));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest21::CSimUsimR6GBATest21()
+ {
+ SetTestStepName(_L("UsimR6GBATest21"));
+ }
+
+TVerdict CSimUsimR6GBATest21::doTestStepL()
+/**
+TEL-SIMTSY-MM-8621.
+Test NotifyAuthenticateDataChange API with different capability
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L("Testing the NotifyAuthenticateDataChange API with different capability"));
+
+ TRequestStatus reqSts;
+ /* Expected Capability = ReadDeviceData */
+ /* Calling Client's capability = LocalServices */
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ iPhone.NotifyAuthenticateDataChange(reqSts,tAuthInfoV8Pckg);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrPermissionDenied);
+
+ INFO_PRINTF1(_L("Testing of NotifyAuthenticateDataChange API with different capability Completed"));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest22::CSimUsimR6GBATest22()
+ {
+ SetTestStepName(_L("UsimR6GBATest22"));
+ }
+
+TVerdict CSimUsimR6GBATest22::doTestStepL()
+/**
+TEL-SIMTSY-MM-8622.
+Test GetAuthenticationParams API with different capability
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(4);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L("Testing the GetAuthenticationParams API with different capability"));
+
+ TRequestStatus reqSts;
+ /* Expected Capability = ReadDeviceData */
+ /* Calling Client's capability = LocalServices */
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ RMobilePhone::TGbaBootstrapParamsV8 tGbaBootstrapParamsV8;
+ RMobilePhone::TGbaBootstrapParamsV8Pckg tGbaBootstrapParamsV8Pckg(tGbaBootstrapParamsV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EGbaBootstrapParams;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts,tAuthInfoV8Pckg,tGbaBootstrapParamsV8Pckg);
+ User::WaitForRequest(reqSts);
+ TEST(reqSts.Int() == KErrPermissionDenied);
+
+ INFO_PRINTF1(_L("Testing of GetAuthenticationParams API with different capability Completed"));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6GBATest23::CSimUsimR6GBATest23()
+ {
+ SetTestStepName(_L("UsimR6GBATest23"));
+ }
+
+TVerdict CSimUsimR6GBATest23::doTestStepL()
+/**
+TEL-SIMTSY-MM-8623.
+Test CRetrieveMobilePhoneAuthenticationIds::Start API with different capability
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
+ CTestRetrieveMobilePhoneAuthenticationIds::EGba);
+
+ pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EGba);
+ pRetrieve->TestRetrieve(RMobilePhone::EGbaNafIdList);
+
+ //Delete test object
+ CleanupStack::PopAndDestroy(); //pRetrieve
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+/****************************************************************************\
+ * *
+ * Multicast Broadcast Messaging Service Testcases *
+ * *
+ ****************************************************************************/
+
+CSimUsimR6MBMSTest1::CSimUsimR6MBMSTest1()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest1"));
+ }
+
+TVerdict CSimUsimR6MBMSTest1::doTestStepL()
+/**
+TEL-SIMTSY-MM-8624.
+Client performs MBMS authentication in MSK update mode successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L("Testing of MBMS Functionality "));
+
+ /*Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate API test completed "));
+
+ TEST(tMbmsMskUpdateDataV8.iOutputMikey == _L8("OUT_MIKEY_V_BIT"));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+
+CSimUsimR6MBMSTest2::CSimUsimR6MBMSTest2()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest2"));
+ }
+
+TVerdict CSimUsimR6MBMSTest2::doTestStepL()
+/**
+TEL-SIMTSY-MM-8625.
+Client is unable to perform MBMS authentication in MSK update mode
+due to lack of MBMS service support in UICC.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(40);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotSupported);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest3::CSimUsimR6MBMSTest3()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest3"));
+ }
+
+TVerdict CSimUsimR6MBMSTest3::doTestStepL()
+/**
+TEL-SIMTSY-MM-8626.
+Client is unable to perform MBMS authentication in
+MSK update mode because USIM application is not active.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest4::CSimUsimR6MBMSTest4()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest4"));
+ }
+
+TVerdict CSimUsimR6MBMSTest4::doTestStepL()
+/**
+TEL-SIMTSY-MM-8627.
+Client is unable to perform MBMS authentication in
+MSK update mode because Ks_int_NAF is overwritten.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(41);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ * After the successful authentication, the KsIntNaf has been overwritten.
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest5::CSimUsimR6MBMSTest5()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest5"));
+ }
+
+TVerdict CSimUsimR6MBMSTest5::doTestStepL()
+/**
+TEL-SIMTSY-MM-8628.
+Client is unable to perform MBMS authentication in MSK update mode due to out of memory.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(42);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNoMemory);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNoMemory."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+
+CSimUsimR6MBMSTest6::CSimUsimR6MBMSTest6()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest6"));
+ }
+
+TVerdict CSimUsimR6MBMSTest6::doTestStepL()
+/**
+TEL-SIMTSY-MM-8629.
+Client successfully creates space to store new MSK IDs and
+MUK IDs before initiating a MSK request procedure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(42);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNoMemory);
+ if(reqStatus.Int() == KErrNoMemory)
+ {
+ INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MSK Updation failed because of NoMemory."));
+ }
+
+ /*
+ * Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs.
+ */
+
+ RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
+ RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
+
+ tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
+ tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ if(reqStatus.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MSK Deletion successful."));
+ }
+
+ RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
+ RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
+
+ tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ if(reqStatus.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MUK Deletion successful."));
+ }
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+ if(reqStatus.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("RMobilePhone::SmartCardAuthenticate MUK Updation successful."));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest7::CSimUsimR6MBMSTest7()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest7"));
+ }
+
+TVerdict CSimUsimR6MBMSTest7::doTestStepL()
+/**
+TEL-SIMTSY-MM-8630.
+Client runs GBA authentication in NAF derivation mode before re-running MSK update mode
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(41);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
+
+ tMbmsMskUpdateDataV8 = tTMbmsMskUpdateDataV8Pckg();
+ TEST(tMbmsMskUpdateDataV8.iOutputMikey == _L8("OUT_MIKEY_V_BIT"));
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest8::CSimUsimR6MBMSTest8()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest8"));
+ }
+
+TVerdict CSimUsimR6MBMSTest8::doTestStepL()
+/**
+TEL-SIMTSY-MM-8631.
+Client is unable to perform MBMS authentication in
+MSK update mode because of MAC verification failure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(44);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthMacInvalid);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthMacInvalid."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest9::CSimUsimR6MBMSTest9()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest9"));
+ }
+
+TVerdict CSimUsimR6MBMSTest9::doTestStepL()
+/**
+TEL-SIMTSY-MM-8632.
+Client is unable to perform MBMS authentication in
+MSK update mode because of incorrect MUK.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(41);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ * After the succesful authentication, the KsIntNaf has been overwritten.
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest10::CSimUsimR6MBMSTest10()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest10"));
+ }
+
+TVerdict CSimUsimR6MBMSTest10::doTestStepL()
+/**
+TEL-SIMTSY-MM-8633.
+Client is unable to perform MBMS authentication in
+MSK update mode because of key freshness failure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(45);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Precondition:
+ * Client performed successfully GBA authentication in
+ * NAF derivation mode after deriving Bootstrap key (Ks).
+ * After the succesful authentication, the KsIntNaf has been overwritten.
+ */
+ TRequestStatus reqStatus= KErrNone;
+
+ RMobilePhone::TMbmsMskUpdateDataV8 tMbmsMskUpdateDataV8;
+ RMobilePhone::TMbmsMskUpdateDataV8Pckg tTMbmsMskUpdateDataV8Pckg(tMbmsMskUpdateDataV8);
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ tMbmsMskUpdateDataV8.iInputMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tTMbmsMskUpdateDataV8Pckg);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthVerificationFailure);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthVerificationFailure."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest11::CSimUsimR6MBMSTest11()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest11"));
+ }
+
+TVerdict CSimUsimR6MBMSTest11::doTestStepL()
+/**
+TEL-SIMTSY-MM-8634.
+Client performs MBMS authentication in MTK generation mode successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Client performs MBMS authentication in MTK generation mode successfully.*/
+
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
+ RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
+
+ tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+
+ TEST(tMbmsMtkGenerateDataV8.iMtk == _L8("MBMS_TR_KEY"));
+ TEST(tMbmsMtkGenerateDataV8.iSaltKey == _L8("SALT_KEY"));
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+
+CSimUsimR6MBMSTest12::CSimUsimR6MBMSTest12()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest12"));
+ }
+
+TVerdict CSimUsimR6MBMSTest12::doTestStepL()
+/**
+TEL-SIMTSY-MM-8635.
+Client is unable to perform MBMS authentication in MTK generation mode because
+this feature is not enabled in USIM service table.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(40);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
+ RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
+
+ tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotSupported);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+
+CSimUsimR6MBMSTest13::CSimUsimR6MBMSTest13()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest13"));
+ }
+
+TVerdict CSimUsimR6MBMSTest13::doTestStepL()
+/**
+TEL-SIMTSY-MM-8636.
+Client is unable to perform MBMS authentication in
+MSK update mode because USIM application is not active.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
+ RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
+
+ tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest14::CSimUsimR6MBMSTest14()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest14"));
+ }
+
+TVerdict CSimUsimR6MBMSTest14::doTestStepL()
+/**
+TEL-SIMTSY-MM-8637.
+Client is unable to perform MBMS authentication in
+MTK generation mode due to unavailability of MSK.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(41);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
+ RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
+
+ tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthKeyNotFound);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyNotFound."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest15::CSimUsimR6MBMSTest15()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest15"));
+ }
+
+TVerdict CSimUsimR6MBMSTest15::doTestStepL()
+/**
+TEL-SIMTSY-MM-8638.
+Client is unable to perform MBMS authentication in
+MTK generation mode because of invalidated MSK.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(45);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
+ RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
+
+ tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthVerificationFailure);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthVerificationFailure."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest16::CSimUsimR6MBMSTest16()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest16"));
+ }
+
+TVerdict CSimUsimR6MBMSTest16::doTestStepL()
+/**
+TEL-SIMTSY-MM-8639.
+Client is unable to perform MBMS authentication in
+MTK generation mode because of invalid MTK.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(49);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ RMobilePhone::TMbmsMtkGenerateDataV8 tMbmsMtkGenerateDataV8;
+ RMobilePhone::TMbmsMtkGenerateDataV8Pckg tMbmsMtkGenerateDataV8Pckgd(tMbmsMtkGenerateDataV8);
+
+ tMbmsMtkGenerateDataV8.iMikey = _L8("IN_MIKEY_V_BIT");
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMtkGenerateDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelAuthKeyInvalid);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelAuthKeyInvalid."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest17::CSimUsimR6MBMSTest17()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest17"));
+ }
+
+TVerdict CSimUsimR6MBMSTest17::doTestStepL()
+/**
+TEL-SIMTSY-MM-8640.
+Client performs MBMS authentication in MSK Deletion Mode successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /*Client retrieves MSK ID list from UICC successfully. */
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
+
+ RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
+ RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
+
+ tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
+ tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest18::CSimUsimR6MBMSTest18()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest18"));
+ }
+
+TVerdict CSimUsimR6MBMSTest18::doTestStepL()
+/**
+TEL-SIMTSY-MM-8641.
+Client performs MBMS authentication in MSK Deletion Mode - record match not found.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(47);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /*Client retrieves MSK ID list from UICC successfully. */
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
+
+ RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
+ RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
+
+ tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
+ tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotFound);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotFound."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest19::CSimUsimR6MBMSTest19()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest19"));
+ }
+
+TVerdict CSimUsimR6MBMSTest19::doTestStepL()
+/**
+TEL-SIMTSY-MM-8642.
+Client is unable to perform MBMS authentication in
+MSK Deletion Mode because USIM application is not active.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /*Client retrieves MSK ID list from UICC successfully. */
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
+
+ RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
+ RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
+
+ tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
+ tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest20::CSimUsimR6MBMSTest20()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest20"));
+ }
+
+TVerdict CSimUsimR6MBMSTest20::doTestStepL()
+/**
+TEL-SIMTSY-MM-8643.
+Client is unable to perform MBMS authentication in
+MSK Deletion Mode due to lack of MBMS service support in UICC.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(40);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /*Client retrieves MSK ID list from UICC successfully. */
+ TRequestStatus reqStatus = KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MSKs that are no longer needed to free up storage for new MSKs. */
+
+ RMobilePhone::TMbmsMskDeleteDataV8 tMbmsMskDeleteDataV8;
+ RMobilePhone::TMbmsMskDeleteDataV8Pckg tMbmsMskDeleteDataV8Pckgd(tMbmsMskDeleteDataV8);
+
+ tMbmsMskDeleteDataV8.iKeyDomainId = _L8("KDN");
+ tMbmsMskDeleteDataV8.iMskIdKeyGroup = _L8("GR");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMskDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotSupported);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest21::CSimUsimR6MBMSTest21()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest21"));
+ }
+
+TVerdict CSimUsimR6MBMSTest21::doTestStepL()
+/**
+TEL-SIMTSY-MM-8644.
+Client performs MBMS authentication in MUK Deletion Mode successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Client retrieves MUK ID and timestamp counter successfully.*/
+
+ TRequestStatus reqStatus=KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MUK to free up storage for new MUK */
+
+ RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
+ RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
+
+ tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNone);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate API completed."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest22::CSimUsimR6MBMSTest22()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest22"));
+ }
+
+TVerdict CSimUsimR6MBMSTest22::doTestStepL()
+/**
+TEL-SIMTSY-MM-8645.
+Client performs MBMS authentication in MUK Deletion Mode - record match not found.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(47);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Client retrieves MUK ID and timestamp counter successfully.*/
+
+ TRequestStatus reqStatus=KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MUK to free up storage for new MUK */
+
+ RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
+ RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
+
+ tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotFound);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotFound."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest23::CSimUsimR6MBMSTest23()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest23"));
+ }
+
+TVerdict CSimUsimR6MBMSTest23::doTestStepL()
+/**
+TEL-SIMTSY-MM-8646.
+Client is unable to perform MBMS authentication in
+MSK update mode because UICC application is not active.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Client retrieves MUK ID and timestamp counter successfully.*/
+
+ TRequestStatus reqStatus=KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MUK to free up storage for new MUK */
+
+ RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
+ RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
+
+ tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrMMEtelScApplicationNotActive);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrMMEtelScApplicationNotActive."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest24::CSimUsimR6MBMSTest24()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest24"));
+ }
+
+TVerdict CSimUsimR6MBMSTest24::doTestStepL()
+/**
+TEL-SIMTSY-MM-8647.
+Client is unable to perform MBMS authentication in
+MSK update mode because this feature is not enabled in USIM service table
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(40);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ /* Client retrieves MUK ID and timestamp counter successfully.*/
+
+ TRequestStatus reqStatus=KErrNone;
+ _LIT8(Kaid,"AE879");
+
+ RMobilePhone::TAID appAID = Kaid();
+
+ /*Client decides to delete the MUK to free up storage for new MUK */
+
+ RMobilePhone::TMbmsMukDeleteDataV8 tMbmsMukDeleteDataV8;
+ RMobilePhone::TMbmsMukDeleteDataV8Pckg tMbmsMukDeleteDataV8Pckgd(tMbmsMukDeleteDataV8);
+
+ tMbmsMukDeleteDataV8.iMukIdTlv = _L8("MUK_ID_TLV");
+
+ INFO_PRINTF1(_L("Testing RMobilePhone::SmartCardAuthenticate async with AID."));
+
+ iPhone.SmartCardAuthenticate(reqStatus, appAID, tMbmsMukDeleteDataV8Pckgd);
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int() == KErrNotSupported);
+
+ INFO_PRINTF1(_L("SmartCardAuthenticate completes with KErrNotSupported."));
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest25::CSimUsimR6MBMSTest25()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest25"));
+ }
+
+TVerdict CSimUsimR6MBMSTest25::doTestStepL()
+/**
+TEL-SIMTSY-MM-8648.
+Client retrieves MUK ID and timestamp counter successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ RMobilePhone::TMbmsUserKeyV8 tMbmsUserKeyV8;
+ RMobilePhone::TMbmsUserKeyV8Pckg tMbmsUserKeyV8Pckg(tMbmsUserKeyV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EMbmsMuk;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tMbmsUserKeyV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+ INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrNone);
+ if(reqSts3.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed successfully."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams not completed successfully."));
+ }
+
+ tMbmsUserKeyV8 = tMbmsUserKeyV8Pckg();
+ TEST(tMbmsUserKeyV8.iMukIdi == _L8("MUK_IDI"));
+ TEST(tMbmsUserKeyV8.iMukIdr == _L8("MUK_IDR"));
+ TEST(tMbmsUserKeyV8.iTimeStampCounter == _L8("STM"));
+
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest26::CSimUsimR6MBMSTest26()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest26"));
+ }
+
+TVerdict CSimUsimR6MBMSTest26::doTestStepL()
+/**
+TEL-SIMTSY-MM-8689.
+Client is unable to retrieve MUK ID and timestamp counter because
+UICC application is not active.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ RMobilePhone::TMbmsUserKeyV8 tMbmsUserKeyV8;
+ RMobilePhone::TMbmsUserKeyV8Pckg tMbmsUserKeyV8Pckg(tMbmsUserKeyV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EMbmsMuk;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tMbmsUserKeyV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "1234");
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrNone);
+ INFO_PRINTF2(_L("Value of secEvent = %d"),secEvent);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinVerified);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with EUSIMAppPinVerified"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrMMEtelScApplicationNotActive);
+ if(reqSts3.Int() == KErrMMEtelScApplicationNotActive)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed with KErrMMEtelScApplicationNotActive."));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams not completed with KErrMMEtelScApplicationNotActive."));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest27::CSimUsimR6MBMSTest27()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest27"));
+ }
+
+TVerdict CSimUsimR6MBMSTest27::doTestStepL()
+/**
+TEL-SIMTSY-MM-8650.
+Client is unable to retrieve MUK ID due to PIN verification failure.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(48);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ TRequestStatus reqSts1,reqSts2,reqSts3;
+
+ RMobilePhone::TMobilePhoneSecurityEvent secEvent;
+ iPhone.NotifySecurityEvent(reqSts1,secEvent);
+
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ RMobilePhone::TMbmsUserKeyV8 tMbmsUserKeyV8;
+ RMobilePhone::TMbmsUserKeyV8Pckg tMbmsUserKeyV8Pckg(tMbmsUserKeyV8);
+
+ _LIT8(Kaid,"AE879");
+
+ tAuthInfoV8.iData = RMobilePhone::EMbmsMuk;
+ tAuthInfoV8.iAID = Kaid();
+
+ iPhone.GetAuthenticationParams(reqSts3,tAuthInfoV8Pckg,tMbmsUserKeyV8Pckg);
+
+ User::WaitForRequest(reqSts1);
+ TEST(secEvent == RMobilePhone::EUSIMAppPinRequired);
+
+ RMobilePhone::TMobilePhoneSecurityCode type=RMobilePhone::ESecurityUSIMAppPin;
+ RMobilePhone::TMobilePassword pass;
+ _LIT8(Kpswrd, "6789"); // Invalid password
+ pass.Copy(Kpswrd);
+
+ INFO_PRINTF1(_L("Verifying the SIM APP PIN..."));
+ iPhone.NotifySecurityEvent(reqSts1, secEvent);
+ iPhone.VerifySecurityCode(reqSts2, type, pass,pass);
+ User::WaitForRequest(reqSts2);
+ User::WaitForRequest(reqSts1);
+ TEST(reqSts2==KErrAccessDenied);
+ TEST(secEvent==RMobilePhone::EUSIMAppPinRequired);
+
+ INFO_PRINTF1(_L("NotifySecurityEvent completed with USIM PIN Verification failed"));
+
+ User::WaitForRequest(reqSts3);
+ TEST(reqSts3.Int() == KErrAccessDenied);
+ if(reqSts3.Int() == KErrAccessDenied)
+ {
+ INFO_PRINTF1(_L("GetAuthenticationParams completed with KErrAccessDenied"));
+ }
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest28::CSimUsimR6MBMSTest28()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest28"));
+ }
+
+TVerdict CSimUsimR6MBMSTest28::doTestStepL()
+/**
+TEL-SIMTSY-MM-8651.
+Client retrieves MSK ID list from UICC successfully.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(38);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+
+ CTestRetrieveMobilePhoneAuthenticationIds *pRetrieve = CTestRetrieveMobilePhoneAuthenticationIds::NewLC(iPhone,
+ CTestRetrieveMobilePhoneAuthenticationIds::EMbms);
+
+ pRetrieve->SetAuthType(CTestRetrieveMobilePhoneAuthenticationIds::EMbms);
+ pRetrieve->TestRetrieve(RMobilePhone::EMbmsMskIdList);
+
+ //Delete test object
+ CleanupStack::PopAndDestroy(); //pRetrieve
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CSimUsimR6MBMSTest29::CSimUsimR6MBMSTest29()
+ {
+ SetTestStepName(_L("UsimR6MBMSTest29"));
+ }
+
+TVerdict CSimUsimR6MBMSTest29::doTestStepL()
+/**
+TEL-SIMTSY-MM-8652.
+Client confirms on the support of MBMS functionality by the USIM.
+*/
+ {
+ CreateConfigFileL(_L("c:\\config3.txt"));
+ SetTestNumberL(39);
+
+ TInt ret = iPhone.Open(iTelServer,KPhoneName);
+ TESTL(ret == KErrNone);
+ INFO_PRINTF1(_L(""));
+ TRequestStatus reqStatus=KErrNone;
+
+ //Verify the support of MBMS in USIM Service Table
+
+ RMobilePhone::TMobilePhoneServiceTableV8 asyncSstV8File;
+ RMobilePhone::TMobilePhoneServiceTableV8Pckg asyncSstV8FilePckg(asyncSstV8File);
+ RMobilePhone::TMobilePhoneServiceTable serviceTableType=RMobilePhone::EUSIMServiceTable;
+
+ iPhone.GetServiceTable(reqStatus, serviceTableType, asyncSstV8FilePckg);
+
+ User::WaitForRequest(reqStatus);
+ TEST(reqStatus.Int()==KErrNone);
+ if(reqStatus.Int() == KErrNone)
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for MBMS passed"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Test - RMobilePhone::GetServiceTable V8table for MBMS failed"));
+ }
+
+ TEST((asyncSstV8File.iServices65To72) == RMobilePhone::KUstMBMSSecurity);
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+CTestCanceller::CTestCanceller(CActive* aRetrieve)
+: CAsyncOneShot(EPriorityNormal),iRetrieve(aRetrieve)
+ {}
+
+CTestCanceller::~CTestCanceller()
+ {}
+
+void CTestCanceller::RunL()
+ {
+ iRetrieve->Cancel();
+ CActiveScheduler::Stop();
+ }
+
+CTestRetrieveMobilePhoneAuthenticationIds* CTestRetrieveMobilePhoneAuthenticationIds::NewLC(RMobilePhone& aPhone,TTypeOfAuth aType)
+ {
+ CTestRetrieveMobilePhoneAuthenticationIds* r=new(ELeave) CTestRetrieveMobilePhoneAuthenticationIds(aPhone,aType);
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ return r;
+ }
+
+CTestRetrieveMobilePhoneAuthenticationIds::CTestRetrieveMobilePhoneAuthenticationIds(RMobilePhone& aPhone,TTypeOfAuth aType)
+: CActive(EPriorityNormal), iPhone(aPhone), iAuthType(aType)
+ {}
+
+void CTestRetrieveMobilePhoneAuthenticationIds::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ iRetrieveAuthId=CRetrieveMobilePhoneAuthenticationIds::NewL(iPhone);
+ iCanceller=new (ELeave) CTestCanceller(this);
+ iGBATest = new (ELeave) CSimUsimR6GBATest14();
+ }
+
+CTestRetrieveMobilePhoneAuthenticationIds::~CTestRetrieveMobilePhoneAuthenticationIds()
+ {
+ delete iRetrieveAuthId;
+ delete iCanceller;
+ delete iGBATest;
+ }
+void CTestRetrieveMobilePhoneAuthenticationIds::SetAuthType(TTypeOfAuth aAuthType)
+ {
+ iAuthType = aAuthType;
+ iGBATest->INFO_PRINTF2(_L("Value of iAuthType = %d"),iAuthType);
+ }
+
+void CTestRetrieveMobilePhoneAuthenticationIds::TestRetrieve(RMobilePhone::TAuthData aAuthData)
+ {
+ Start(aAuthData);
+ CActiveScheduler::Start();
+ }
+
+void CTestRetrieveMobilePhoneAuthenticationIds::Start(RMobilePhone::TAuthData aAuthData)
+ {
+ //If iTestVersion is set to EGba, test calling the Gba retrieval method
+ RMobilePhone::TAuthInfoV8 tAuthInfoV8;
+ RMobilePhone::TAuthInfoV8Pckg tAuthInfoV8Pckg(tAuthInfoV8);
+
+ if(iAuthType==CTestRetrieveMobilePhoneAuthenticationIds::EGba)
+ {
+ tAuthInfoV8.iData = aAuthData;
+ iRetrieveAuthId->Start(iStatus,tAuthInfoV8Pckg);
+ TRequestStatus tmpStatus;
+ iRetrieveAuthId->Start(tmpStatus,tAuthInfoV8Pckg);
+ User::WaitForRequest(tmpStatus);
+ iGBATest->TEST(tmpStatus.Int() == KErrInUse);
+ SetActive();
+ }
+ //If iTestVersion is set to EMbms, test calling the Mbms retrieval method
+ else if(iAuthType==CTestRetrieveMobilePhoneAuthenticationIds::EMbms)
+ {
+ tAuthInfoV8.iData = aAuthData;
+ iRetrieveAuthId->Start(iStatus,tAuthInfoV8Pckg);
+ TRequestStatus tmpStatus;
+ iRetrieveAuthId->Start(tmpStatus,tAuthInfoV8Pckg);
+ User::WaitForRequest(tmpStatus);
+ iGBATest->TEST(tmpStatus.Int() == KErrInUse);
+ SetActive();
+ }
+ else
+ {}
+ }
+
+void CTestRetrieveMobilePhoneAuthenticationIds::RunL()
+ {
+ TInt ret=iStatus.Int();
+ if(ret == KErrPermissionDenied)
+ {
+ iGBATest->INFO_PRINTF1(_L("CRetrieveMobilePhoneAuthenticationId -> Start failed with Permission Denied"));
+ CActiveScheduler::Stop();
+ return;
+ }
+ else
+ {
+ User::LeaveIfError(ret);
+ }
+
+ iGBATest->INFO_PRINTF2(_L("In RunL with iAuthType = %d"),iAuthType);
+
+ if(iAuthType == EGba)
+ {
+ iGBATest->INFO_PRINTF1(_L("In RunL with iAuthType =EGba"));
+ ret=CheckGBAResults();
+ }
+ else if(iAuthType == EMbms)
+ {
+ iGBATest->INFO_PRINTF1(_L("In RunL with iAuthType =EMbms"));
+ ret=CheckMBMSResults();
+ }
+ else
+ {
+ iGBATest->INFO_PRINTF1(_L("In RunL with iAuthType =Error"));
+ ret=KErrNotFound;
+ }
+
+ if((ret != KErrNone) && (ret != KErrNotFound))
+ {
+ User::LeaveIfError(ret);
+ }
+
+ CActiveScheduler::Stop();
+ }
+
+void CTestRetrieveMobilePhoneAuthenticationIds::TestCancel(RMobilePhone::TAuthData aAuthData)
+ {
+ Start(aAuthData);
+
+ CTestCanceller* cancelAuthData = RetrieveCancelPtr();
+ cancelAuthData->Call();
+
+ CActiveScheduler::Start();
+ TBool cancelled = (iStatus == KErrCancel || iStatus == KErrNone);
+
+ // Ensure that AO can be used after its previous transaction was cancelled
+ Start(aAuthData);
+ CActiveScheduler::Start();
+
+ if (cancelled)
+ {
+ iGBATest->INFO_PRINTF2(_L("Cancelled Type of Authentication is %d"),iAuthType);
+ iGBATest->INFO_PRINTF1(_L("Test %d - CRetrieveMobilePhoneAuthenticationIds (async & cancel (Cancelled Request)) passed"));
+ }
+ else
+ {
+ iGBATest->INFO_PRINTF1(_L("Test %d - CRetrieveMobilePhoneAuthenticationIds (async & cancel (Request Not Cancelled)) passed"));
+ }
+ }
+
+CTestCanceller* CTestRetrieveMobilePhoneAuthenticationIds::RetrieveCancelPtr()
+ {
+ return iCanceller;
+ }
+
+void CTestRetrieveMobilePhoneAuthenticationIds::DoCancel()
+ {
+ iRetrieveAuthId->Cancel();
+ }
+
+TInt CTestRetrieveMobilePhoneAuthenticationIds::CheckGBAResults()
+ {
+ TInt ret=KErrNone;
+
+ CMobilePhoneGbaNafIdList* nafList =NULL;
+ TInt leaveCode=KErrNone;
+ TRAP(leaveCode, nafList=iRetrieveAuthId->RetrieveGbaListL(););
+
+ //Check that a list is returned back to the test
+ iGBATest->TEST(nafList!=NULL);
+
+ if (nafList)
+ {
+
+ RMobilePhone::TGbaNafEntryV8 nafEntry;
+
+ //Check that the number of entries in the list is as expected
+ if(nafList->Enumerate() != SIMTSY_GBA_NAFLIST_COUNT)
+ {
+ TRAP(ret,nafEntry=nafList->GetEntryL(0));
+ if (ret != KErrNone)
+ {
+ iGBATest-> INFO_PRINTF1(_L("The NAFLIST doesnot contain TGbaNafEntryV8 entries "));
+ }
+ delete nafList;
+ return KErrNotFound;
+ }
+
+ // Get each NafList entry
+
+ for (TInt i=0; i< SIMTSY_GBA_NAFLIST_COUNT; ++i)
+ {
+ TRAP(ret,nafEntry=nafList->GetEntryL(i));
+ if (ret != KErrNone)
+ {
+ break;
+ }
+ switch(i)
+ {
+ case 0:
+ {
+ iGBATest->TEST(nafEntry.iBtid == _L8("C6453"));
+ iGBATest->TEST(nafEntry.iNafId == _L8("B2345"));
+ break;
+ }
+ case 1:
+ {
+ iGBATest->TEST(nafEntry.iBtid == _L8("D6453"));
+ iGBATest->TEST(nafEntry.iNafId == _L8("C2345"));
+ break;
+ }
+ case 2:
+ {
+ iGBATest->TEST(nafEntry.iBtid == _L8("E6453"));
+ iGBATest->TEST(nafEntry.iNafId == _L8("D2345"));
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+ delete nafList;
+ }
+ return ret;
+ }
+
+TInt CTestRetrieveMobilePhoneAuthenticationIds::CheckMBMSResults()
+ {
+ TInt ret=KErrNone;
+
+ CMobilePhoneMbmsMskIdList* mbmsList =NULL;
+ TInt leaveCode=KErrNone;
+ TRAP(leaveCode, mbmsList=iRetrieveAuthId->RetrieveMbmsListL(););
+
+ //Check that a list is returned back to the test
+ iGBATest->TEST(mbmsList!=NULL);
+
+ if (mbmsList)
+ {
+ //Check that the number of entries in the list is as expected
+ RMobilePhone::TMskEntryV8 tMskEntry;
+
+ if(mbmsList->Enumerate() != SIMTSY_MBMS_MSKLIST_COUNT)
+ {
+ TRAP(ret,tMskEntry=mbmsList->GetEntryL(0));
+ if (ret != KErrNone)
+ {
+ iGBATest-> INFO_PRINTF1(_L("The MBMSLIST doesnot contain TMskEntryV8 entries "));
+ }
+ delete mbmsList;
+ return KErrNotFound;
+ }
+
+ // Get each MbmsList entry
+
+ for (TInt i=0; i<SIMTSY_MBMS_MSKLIST_COUNT; ++i)
+ {
+ TRAP(ret,tMskEntry=mbmsList->GetEntryL(i));
+ if (ret != KErrNone)
+ {
+ break;
+ }
+ switch(i)
+ {
+ case 0:
+ {
+ iGBATest->TEST(tMskEntry.iMskId == _L8("MSK1"));
+ iGBATest->TEST(tMskEntry.iKeyDomainId == _L8("KEYDMN1"));
+ iGBATest->TEST(tMskEntry.iTimeStampCounter == _L8("STM1"));
+ break;
+ }
+ case 1:
+ {
+ iGBATest->TEST(tMskEntry.iMskId == _L8("MSK2"));
+ iGBATest->TEST(tMskEntry.iKeyDomainId == _L8("KEYDMN2"));
+ iGBATest->TEST(tMskEntry.iTimeStampCounter == _L8("STM2"));
+ break;
+ }
+ case 2:
+ {
+ iGBATest->TEST(tMskEntry.iMskId == _L8("MSK3"));
+ iGBATest->TEST(tMskEntry.iKeyDomainId == _L8("KEYDMN3"));
+ iGBATest->TEST(tMskEntry.iTimeStampCounter == _L8("STM3"));
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ delete mbmsList;
+ }
+ return ret;
+ }
+
+
+