telephonyserverplugins/simtsy/src/csimsmartcardauth.cpp
changeset 44 8b72faa1200f
parent 0 3553901f7fa8
child 66 07a122eea281
equal deleted inserted replaced
39:2473f5e227f9 44:8b72faa1200f
     1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    15 
    15 
    16 /**
    16 /**
    17  @file
    17  @file
    18 */
    18 */
    19 
    19 
       
    20 
       
    21 
       
    22 #include "OstTraceDefinitions.h"
       
    23 #ifdef OST_TRACE_COMPILER_IN_USE
       
    24 #include "csimsmartcardauthTraces.h"
       
    25 #endif
       
    26 
    20 #include <testconfigfileparser.h>
    27 #include <testconfigfileparser.h>
    21 #include "CSimPhone.h"
    28 #include "CSimPhone.h"
    22 #include "Simlog.h"
       
    23 #include "csimsmartcardauth.h"
    29 #include "csimsmartcardauth.h"
    24 #include "utils.h"
    30 #include "utils.h"
    25 
    31 
    26 CSimSmartCardAuth* CSimSmartCardAuth::NewL(CSimPhone *aPhone)
    32 CSimSmartCardAuth* CSimSmartCardAuth::NewL(CSimPhone *aPhone)
    27 	{
    33 	{
    42 void CSimSmartCardAuth::ConstructL()
    48 void CSimSmartCardAuth::ConstructL()
    43 	{
    49 	{
    44 	ParseAuthInfoL();
    50 	ParseAuthInfoL();
    45 	ParseGBAAuthInfoL();
    51 	ParseGBAAuthInfoL();
    46 	ParseMBMSAuthInfoL();
    52 	ParseMBMSAuthInfoL();
    47 	LOGPHONE1("CSimSmartCardAuth created");
    53 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_CONSTRUCTL_1, "CSimSmartCardAuth created");
    48 	}
    54 	}
    49 
    55 
    50 CSimSmartCardAuth::~CSimSmartCardAuth()
    56 CSimSmartCardAuth::~CSimSmartCardAuth()
    51 	{
    57 	{
    52 	iAuthInfoList.Close();
    58 	iAuthInfoList.Close();
    58 	if(iMBMSInfoList)
    64 	if(iMBMSInfoList)
    59 		{
    65 		{
    60 		iMBMSInfoList->Delete(0,iMBMSInfoList->Count());
    66 		iMBMSInfoList->Delete(0,iMBMSInfoList->Count());
    61 		delete iMBMSInfoList;
    67 		delete iMBMSInfoList;
    62 		}
    68 		}
    63 	LOGPHONE1("CSimSmartCardAuth destroyed");
    69 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_DTOR_1, "CSimSmartCardAuth destroyed");
    64 	}
    70 	}
    65 
    71 
    66 TInt CSimSmartCardAuth::GetScAuthenticationData(const TTsyReqHandle aTsyReqHandle, TDes8* aPckg1, const RMobilePhone::TAID* aAID)
    72 TInt CSimSmartCardAuth::GetScAuthenticationData(const TTsyReqHandle aTsyReqHandle, TDes8* aPckg1, const RMobilePhone::TAID* aAID)
    67 	{
    73 	{
    68 
    74 
    69 	LOGPHONE1("CSimSmartCardAuth::GetScAuthenticationData called");
    75 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_GETSCAUTHENTICATIONDATA_1, "CSimSmartCardAuth::GetScAuthenticationData called");
    70 
    76 
    71 	RMobilePhone::TSmartCardAuthenticateDataV6Pckg
    77 	RMobilePhone::TSmartCardAuthenticateDataV6Pckg
    72 			* authenticateDataPckgd =reinterpret_cast<RMobilePhone::TSmartCardAuthenticateDataV6Pckg*>(aPckg1);
    78 			* authenticateDataPckgd =reinterpret_cast<RMobilePhone::TSmartCardAuthenticateDataV6Pckg*>(aPckg1);
    73 	RMobilePhone::TSmartCardAuthenticateDataV6& authenticateData=(*authenticateDataPckgd) ();
    79 	RMobilePhone::TSmartCardAuthenticateDataV6& authenticateData=(*authenticateDataPckgd) ();
    74 
    80 
   438 	return KErrNone;
   444 	return KErrNone;
   439 	}
   445 	}
   440 
   446 
   441 TInt CSimSmartCardAuth::GetScAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle)
   447 TInt CSimSmartCardAuth::GetScAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle)
   442 	{
   448 	{
   443 	LOGPHONE1("CSimSmartCardAuth::GetScAuthenticationDataCancel called");
   449 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_GETSCAUTHENTICATIONDATACANCEL_1, "CSimSmartCardAuth::GetScAuthenticationDataCancel called");
   444 	iPhone->ReqCompleted(aTsyReqHandle, KErrCancel);
   450 	iPhone->ReqCompleted(aTsyReqHandle, KErrCancel);
   445 	return KErrNone;
   451 	return KErrNone;
   446 	}
   452 	}
   447 
   453 
   448 const CTestConfigSection* CSimSmartCardAuth::CfgFile()
   454 const CTestConfigSection* CSimSmartCardAuth::CfgFile()
   453 /**
   459 /**
   454 Parses the list of SmartCardAuthInfo tags from the config.txt file.
   460 Parses the list of SmartCardAuthInfo tags from the config.txt file.
   455 */
   461 */
   456 void CSimSmartCardAuth::ParseAuthInfoL()
   462 void CSimSmartCardAuth::ParseAuthInfoL()
   457 	{
   463 	{
   458 	LOGPHONE1("CSimSmartCardAuth::ParseAuthInfoL called");
   464 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_1, "CSimSmartCardAuth::ParseAuthInfoL called");
   459 
   465 
   460 	CTestConfigItem* item = NULL;
   466 	CTestConfigItem* item = NULL;
   461 
   467 
   462 	LOGPHONE1("Starting to Parse Smart Card Authentication Info");
   468 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_2, "Starting to Parse Smart Card Authentication Info");
   463 	TInt count = CfgFile()->ItemCount(KScAuthInfo);
   469 	TInt count = CfgFile()->ItemCount(KScAuthInfo);
   464 
   470 
   465 	TInt index;
   471 	TInt index;
   466 	for(index = 0; index < count; index++)
   472 	for(index = 0; index < count; index++)
   467 		{
   473 		{
   479 
   485 
   480 		//Get the data format
   486 		//Get the data format
   481 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 8, appId);
   487 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 8, appId);
   482 		if(ret != KErrNone)
   488 		if(ret != KErrNone)
   483 			{
   489 			{
   484 			LOGPARSERR("appId",ret,8,&KScAuthInfo);
   490 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_3, "WARNING - CONFIGURATION FILE PARSING - Reading element APPID returned %d (element no. %d) from tag %s.",ret,8,KScAuthInfo);
   485 			_LIT8(emptyAID, "");
   491 			_LIT8(emptyAID, "");
   486 			appId.Set(emptyAID);
   492 			appId.Set(emptyAID);
   487 			}
   493 			}
   488 		else
   494 		else
   489 			{
   495 			{
   490 			ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 9, dataFrmt);
   496 			ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 9, dataFrmt);
   491 			if(ret != KErrNone)
   497 			if(ret != KErrNone)
   492 				{
   498 				{
   493 				LOGPARSERR("dataFrmt",ret,9,&KScAuthInfo);
   499 				OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_4, "WARNING - CONFIGURATION FILE PARSING - Reading element DATAFRMT returned %d (element no. %d) from tag %s.",ret,9,KScAuthInfo);
   494 				}
   500 				}
   495 			else if (dataFrmt >= EMaxConfigDataFormat)
   501 			else if (dataFrmt >= EMaxConfigDataFormat)
   496 				{
   502 				{
   497 				LOGPHONE1("WARNING IN CONFIGURATION FILE PARSING - Invalid format for SC Authenticate tag");
   503 				OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_5, "WARNING IN CONFIGURATION FILE PARSING - Invalid format for SC Authenticate tag");
   498 				dataFrmt = EConfigDataFormatAscii;
   504 				dataFrmt = EConfigDataFormatAscii;
   499 				}
   505 				}
   500 
   506 
   501 			authInfo.iAID.Copy(appId);
   507 			authInfo.iAID.Copy(appId);
   502 
   508 
   512 
   518 
   513 		//Get the AUTN
   519 		//Get the AUTN
   514 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 0, AUTN);
   520 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 0, AUTN);
   515 		if(ret != KErrNone)
   521 		if(ret != KErrNone)
   516 			{
   522 			{
   517 			LOGPARSERR("AUTN",ret,0,&KScAuthInfo);
   523 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_6, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTN returned %d (element no. %d) from tag %s.",ret,0,KScAuthInfo);
   518 			continue;
   524 			continue;
   519 			}
   525 			}
   520 		else
   526 		else
   521 			{
   527 			{
   522 			authInfo.iAUTN.Copy(AUTN);
   528 			authInfo.iAUTN.Copy(AUTN);
   533 
   539 
   534 		//Get the RAND
   540 		//Get the RAND
   535 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 1, RAND);
   541 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 1, RAND);
   536 		if(ret != KErrNone)
   542 		if(ret != KErrNone)
   537 			{
   543 			{
   538 			LOGPARSERR("RAND",ret,1,&KScAuthInfo);
   544 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_7, "WARNING - CONFIGURATION FILE PARSING - Reading element RAND returned %d (element no. %d) from tag %s.",ret,1,KScAuthInfo);
   539 			continue;
   545 			continue;
   540 			}
   546 			}
   541 		else
   547 		else
   542 			{
   548 			{
   543 			authInfo.iRAND.Copy(RAND);
   549 			authInfo.iRAND.Copy(RAND);
   554 
   560 
   555 		//Get the RES
   561 		//Get the RES
   556 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 2, RES);
   562 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 2, RES);
   557 		if(ret != KErrNone)
   563 		if(ret != KErrNone)
   558 			{
   564 			{
   559 			LOGPARSERR("RES",ret,2,&KScAuthInfo);
   565 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_8, "WARNING - CONFIGURATION FILE PARSING - Reading element RES returned %d (element no. %d) from tag %s.",ret,2,KScAuthInfo);
   560 			continue;
   566 			continue;
   561 			}
   567 			}
   562 		else
   568 		else
   563 			{
   569 			{
   564 			authInfo.iRES.Copy(RES);
   570 			authInfo.iRES.Copy(RES);
   575 		
   581 		
   576 		//Get the IK
   582 		//Get the IK
   577 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 3, IK);
   583 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 3, IK);
   578 		if(ret != KErrNone)
   584 		if(ret != KErrNone)
   579 			{
   585 			{
   580 			LOGPARSERR("IK",ret,3,&KScAuthInfo);
   586 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_9, "WARNING - CONFIGURATION FILE PARSING - Reading element IK returned %d (element no. %d) from tag %s.",ret,3,KScAuthInfo);
   581 			continue;
   587 			continue;
   582 			}
   588 			}
   583 		else
   589 		else
   584 			{
   590 			{
   585 			authInfo.iIK.Copy(IK);
   591 			authInfo.iIK.Copy(IK);
   596 
   602 
   597 		//Get the CK
   603 		//Get the CK
   598 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 4, CK);
   604 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 4, CK);
   599 		if(ret != KErrNone)
   605 		if(ret != KErrNone)
   600 			{
   606 			{
   601 			LOGPARSERR("CK",ret,4,&KScAuthInfo);
   607 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_10, "WARNING - CONFIGURATION FILE PARSING - Reading element CK returned %d (element no. %d) from tag %s.",ret,4,KScAuthInfo);
   602 			continue;
   608 			continue;
   603 			}
   609 			}
   604 		else
   610 		else
   605 			{
   611 			{
   606 			authInfo.iCK.Copy(CK);
   612 			authInfo.iCK.Copy(CK);
   617 
   623 
   618 		//Get the CK
   624 		//Get the CK
   619 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 5, Kc);
   625 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 5, Kc);
   620 		if(ret != KErrNone)
   626 		if(ret != KErrNone)
   621 			{
   627 			{
   622 			LOGPARSERR("Kc",ret,5,&KScAuthInfo);
   628 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_11, "WARNING - CONFIGURATION FILE PARSING - Reading element KC returned %d (element no. %d) from tag %s.",ret,5,KScAuthInfo);
   623 			continue;
   629 			continue;
   624 			}
   630 			}
   625 		else
   631 		else
   626 			{
   632 			{
   627 			authInfo.iKc.Copy(Kc);
   633 			authInfo.iKc.Copy(Kc);
   638 
   644 
   639 		//Get the AUTS
   645 		//Get the AUTS
   640 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 6, AUTS);
   646 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 6, AUTS);
   641 		if(ret != KErrNone)
   647 		if(ret != KErrNone)
   642 			{
   648 			{
   643 			LOGPARSERR("AUTS",ret,6,&KScAuthInfo);
   649 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_12, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTS returned %d (element no. %d) from tag %s.",ret,6,KScAuthInfo);
   644 			continue;
   650 			continue;
   645 			}
   651 			}
   646 		else
   652 		else
   647 			{
   653 			{
   648 			authInfo.iAUTS.Copy(AUTS);
   654 			authInfo.iAUTS.Copy(AUTS);
   659 
   665 
   660 		//Get authentication error
   666 		//Get authentication error
   661 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 7, authErr);
   667 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 7, authErr);
   662 		if(ret != KErrNone)
   668 		if(ret != KErrNone)
   663 			{
   669 			{
   664 			LOGPARSERR("authErr",ret,7,&KScAuthInfo);
   670 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEAUTHINFOL_13, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTHERR returned %d (element no. %d) from tag %s.",ret,7,KScAuthInfo);
   665 			continue;
   671 			continue;
   666 			}
   672 			}
   667 		else
   673 		else
   668 			{
   674 			{
   669 			authInfo.iAuthErr = authErr;
   675 			authInfo.iAuthErr = authErr;
   677 /**
   683 /**
   678 Parses the list of GBAAuthInfo tags from the config.txt file.
   684 Parses the list of GBAAuthInfo tags from the config.txt file.
   679 */
   685 */
   680 void CSimSmartCardAuth::ParseGBAAuthInfoL()
   686 void CSimSmartCardAuth::ParseGBAAuthInfoL()
   681 	{
   687 	{
   682 	LOGPHONE1("CSimSmartCardAuth::ParseGBAAuthInfoL called");
   688 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_1, "CSimSmartCardAuth::ParseGBAAuthInfoL called");
   683 
   689 
   684 	CTestConfigItem* item = NULL;
   690 	CTestConfigItem* item = NULL;
   685 
   691 
   686 	LOGPHONE1("Starting to Parse GBA Authentication Info");
   692 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_2, "Starting to Parse GBA Authentication Info");
   687 	TInt count = CfgFile()->ItemCount(KGBAAuthInfo);
   693 	TInt count = CfgFile()->ItemCount(KGBAAuthInfo);
   688 
   694 
   689 	TInt index;
   695 	TInt index;
   690 	for(index = 0; index < count; index++)
   696 	for(index = 0; index < count; index++)
   691 		{
   697 		{
   704 
   710 
   705 		//Get the AUTN
   711 		//Get the AUTN
   706 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 0, AUTN);
   712 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 0, AUTN);
   707 		if(ret != KErrNone)
   713 		if(ret != KErrNone)
   708 			{
   714 			{
   709 			LOGPARSERR("AUTN",ret,0,&KGBAAuthInfo);
   715 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_3, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTN returned %d (element no. %d) from tag %s.",ret,0,KGBAAuthInfo);
   710 			continue;
   716 			continue;
   711 			}
   717 			}
   712 		else
   718 		else
   713 			{
   719 			{
   714 			authInfo.iAUTN.Copy(AUTN);
   720 			authInfo.iAUTN.Copy(AUTN);
   716 
   722 
   717 		//Get the RAND
   723 		//Get the RAND
   718 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 1, RAND);
   724 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 1, RAND);
   719 		if(ret != KErrNone)
   725 		if(ret != KErrNone)
   720 			{
   726 			{
   721 			LOGPARSERR("RAND",ret,1,&KGBAAuthInfo);
   727 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_4, "WARNING - CONFIGURATION FILE PARSING - Reading element RAND returned %d (element no. %d) from tag %s.",ret,1,KGBAAuthInfo);
   722 			continue;
   728 			continue;
   723 			}
   729 			}
   724 		else
   730 		else
   725 			{
   731 			{
   726 			authInfo.iRAND.Copy(RAND);
   732 			authInfo.iRAND.Copy(RAND);
   728 
   734 
   729 		//Get the APPID
   735 		//Get the APPID
   730 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 2, appId);
   736 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 2, appId);
   731 		if(ret != KErrNone)
   737 		if(ret != KErrNone)
   732 			{
   738 			{
   733 			LOGPARSERR("APPID",ret,2,&KGBAAuthInfo);
   739 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_5, "WARNING - CONFIGURATION FILE PARSING - Reading element APPID returned %d (element no. %d) from tag %s.",ret,2,KGBAAuthInfo);
   734 			continue;
   740 			continue;
   735 			}
   741 			}
   736 		else
   742 		else
   737 			{
   743 			{
   738 			authInfo.iAID.Copy(appId);
   744 			authInfo.iAID.Copy(appId);
   740 		
   746 		
   741 		//Get the RES
   747 		//Get the RES
   742 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 3, RES);
   748 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 3, RES);
   743 		if(ret != KErrNone)
   749 		if(ret != KErrNone)
   744 			{
   750 			{
   745 			LOGPARSERR("RES",ret,3,&KGBAAuthInfo);
   751 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_6, "WARNING - CONFIGURATION FILE PARSING - Reading element RES returned %d (element no. %d) from tag %s.",ret,3,KGBAAuthInfo);
   746 			continue;
   752 			continue;
   747 			}
   753 			}
   748 		else
   754 		else
   749 			{
   755 			{
   750 			authInfo.iRES.Copy(RES);
   756 			authInfo.iRES.Copy(RES);
   752 		
   758 		
   753 		//Get the AUTS
   759 		//Get the AUTS
   754 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 4, AUTS);
   760 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 4, AUTS);
   755 		if(ret != KErrNone)
   761 		if(ret != KErrNone)
   756 			{
   762 			{
   757 			LOGPARSERR("AUTS",ret,4,&KGBAAuthInfo);
   763 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_7, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTS returned %d (element no. %d) from tag %s.",ret,4,KGBAAuthInfo);
   758 			continue;
   764 			continue;
   759 			}
   765 			}
   760 		else
   766 		else
   761 			{
   767 			{
   762 			authInfo.iAUTS.Copy(AUTS);
   768 			authInfo.iAUTS.Copy(AUTS);
   764 		
   770 		
   765 		//Get the NAFID
   771 		//Get the NAFID
   766 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 5, NAFID);
   772 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 5, NAFID);
   767 		if(ret != KErrNone)
   773 		if(ret != KErrNone)
   768 			{
   774 			{
   769 			LOGPARSERR("NAFID",ret,5,&KGBAAuthInfo);
   775 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_8, "WARNING - CONFIGURATION FILE PARSING - Reading element NAFID returned %d (element no. %d) from tag %s.",ret,5,KGBAAuthInfo);
   770 			continue;
   776 			continue;
   771 			}
   777 			}
   772 		else
   778 		else
   773 			{
   779 			{
   774 			authInfo.iNAFID.Copy(NAFID);
   780 			authInfo.iNAFID.Copy(NAFID);
   776 		
   782 		
   777 		//Get the IMPI
   783 		//Get the IMPI
   778 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 6, IMPI);
   784 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 6, IMPI);
   779 		if(ret != KErrNone)
   785 		if(ret != KErrNone)
   780 			{
   786 			{
   781 			LOGPARSERR("IMPI",ret,6,&KGBAAuthInfo);
   787 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_9, "WARNING - CONFIGURATION FILE PARSING - Reading element IMPI returned %d (element no. %d) from tag %s.",ret,6,KGBAAuthInfo);
   782 			continue;
   788 			continue;
   783 			}
   789 			}
   784 		else
   790 		else
   785 			{
   791 			{
   786 			authInfo.iIMPI.Copy(IMPI);
   792 			authInfo.iIMPI.Copy(IMPI);
   788 		
   794 		
   789 		//Get the KsExtNaf
   795 		//Get the KsExtNaf
   790 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 7, KSExtNaf);
   796 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 7, KSExtNaf);
   791 		if(ret != KErrNone)
   797 		if(ret != KErrNone)
   792 			{
   798 			{
   793 			LOGPARSERR("KSExtNaf",ret,7,&KGBAAuthInfo);
   799 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_10, "WARNING - CONFIGURATION FILE PARSING - Reading element KSEXTNAF returned %d (element no. %d) from tag %s.",ret,7,KGBAAuthInfo);
   794 			continue;
   800 			continue;
   795 			}
   801 			}
   796 		else
   802 		else
   797 			{
   803 			{
   798 			authInfo.iKsExtNaf.Copy(KSExtNaf);
   804 			authInfo.iKsExtNaf.Copy(KSExtNaf);
   800 		
   806 		
   801 		//Get the BtID
   807 		//Get the BtID
   802 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 8, BtID);
   808 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 8, BtID);
   803 		if(ret != KErrNone)
   809 		if(ret != KErrNone)
   804 			{
   810 			{
   805 			LOGPARSERR("BtID",ret,8,&KGBAAuthInfo);
   811 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_11, "WARNING - CONFIGURATION FILE PARSING - Reading element BTID returned %d (element no. %d) from tag %s.",ret,8,KGBAAuthInfo);
   806 			continue;
   812 			continue;
   807 			}
   813 			}
   808 		else
   814 		else
   809 			{
   815 			{
   810 			authInfo.iBtid.Copy(BtID);
   816 			authInfo.iBtid.Copy(BtID);
   812 		
   818 		
   813 		//Get the KeyLifeTime
   819 		//Get the KeyLifeTime
   814 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 9, KeyLifeTime);
   820 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 9, KeyLifeTime);
   815 		if(ret != KErrNone)
   821 		if(ret != KErrNone)
   816 			{
   822 			{
   817 			LOGPARSERR("KeyLifeTime",ret,9,&KGBAAuthInfo);
   823 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_12, "WARNING - CONFIGURATION FILE PARSING - Reading element KEYLIFETIME returned %d (element no. %d) from tag %s.",ret,9,KGBAAuthInfo);
   818 			continue;
   824 			continue;
   819 			}
   825 			}
   820 		else
   826 		else
   821 			{
   827 			{
   822 			authInfo.iKeyLifeTime.Copy(KeyLifeTime);
   828 			authInfo.iKeyLifeTime.Copy(KeyLifeTime);
   824 
   830 
   825 		//Get the OtherApplnBusy
   831 		//Get the OtherApplnBusy
   826 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 10, OtherApplnBusy);
   832 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 10, OtherApplnBusy);
   827 		if(ret != KErrNone)
   833 		if(ret != KErrNone)
   828 			{
   834 			{
   829 			LOGPARSERR("OtherApplnBusy",ret,10,&KGBAAuthInfo);
   835 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_13, "WARNING - CONFIGURATION FILE PARSING - Reading element OTHERAPPLNBUSY returned %d (element no. %d) from tag %s.",ret,10,KGBAAuthInfo);
   830 			continue;
   836 			continue;
   831 			}
   837 			}
   832 		else
   838 		else
   833 			{
   839 			{
   834 			authInfo.iOtherApplnBusy = OtherApplnBusy;
   840 			authInfo.iOtherApplnBusy = OtherApplnBusy;
   836 
   842 
   837 		//Get the CurrentApplnActive
   843 		//Get the CurrentApplnActive
   838 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 11, applnActive);
   844 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 11, applnActive);
   839 		if(ret != KErrNone)
   845 		if(ret != KErrNone)
   840 			{
   846 			{
   841 			LOGPARSERR("applnActive",ret,11,&KGBAAuthInfo);
   847 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_14, "WARNING - CONFIGURATION FILE PARSING - Reading element APPLNACTIVE returned %d (element no. %d) from tag %s.",ret,11,KGBAAuthInfo);
   842 			continue;
   848 			continue;
   843 			}
   849 			}
   844 		else
   850 		else
   845 			{
   851 			{
   846 			authInfo.iApplnActive = applnActive;
   852 			authInfo.iApplnActive = applnActive;
   848 
   854 
   849 		//Get authentication error
   855 		//Get authentication error
   850 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 12, authErr);
   856 		ret = CTestConfig::GetElement(item->Value(), KStdDelimiter, 12, authErr);
   851 		if(ret != KErrNone)
   857 		if(ret != KErrNone)
   852 			{
   858 			{
   853 			LOGPARSERR("authErr",ret,12,&KGBAAuthInfo);
   859 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEGBAAUTHINFOL_15, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTHERR returned %d (element no. %d) from tag %s.",ret,12,KGBAAuthInfo);
   854 			continue;
   860 			continue;
   855 			}
   861 			}
   856 		else
   862 		else
   857 			{
   863 			{
   858 			authInfo.iAuthErr = authErr;
   864 			authInfo.iAuthErr = authErr;
   866 /**
   872 /**
   867  Parses the list of MBMSAuthInfo tags from the config.txt file.
   873  Parses the list of MBMSAuthInfo tags from the config.txt file.
   868 */
   874 */
   869 void CSimSmartCardAuth::ParseMBMSAuthInfoL()
   875 void CSimSmartCardAuth::ParseMBMSAuthInfoL()
   870 	{
   876 	{
   871 	LOGPHONE1 ("CSimSmartCardAuth::ParseMBMSAuthInfoL called");
   877 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_1, "CSimSmartCardAuth::ParseMBMSAuthInfoL called");
   872 
   878 
   873 	CTestConfigItem* item = NULL;
   879 	CTestConfigItem* item = NULL;
   874 
   880 
   875 	LOGPHONE1 ("Starting to Parse MBMS Authentication Info");
   881 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_2, "Starting to Parse MBMS Authentication Info");
   876 
   882 
   877 	TInt count = CfgFile()->ItemCount (KMBMSInfo);
   883 	TInt count = CfgFile()->ItemCount (KMBMSInfo);
   878 	TMBMSInfo tMbmsInfo;
   884 	TMBMSInfo tMbmsInfo;
   879 
   885 
   880 	for (TInt index = 0; index < count; index++)
   886 	for (TInt index = 0; index < count; index++)
   894 
   900 
   895 		//Get the input Mikey
   901 		//Get the input Mikey
   896 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 0, iMikey);
   902 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 0, iMikey);
   897 		if ( ret != KErrNone)
   903 		if ( ret != KErrNone)
   898 			{
   904 			{
   899 			LOGPARSERR ("iMikey", ret, 0, &KMBMSInfo);
   905 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_3, "WARNING - CONFIGURATION FILE PARSING - Reading element IMIKEY returned %d (element no. %d) from tag %s.", ret, 0, KMBMSInfo);
   900 			continue;
   906 			continue;
   901 			}
   907 			}
   902 		else
   908 		else
   903 			{
   909 			{
   904 			tMbmsInfo.iInputMikey.Copy (iMikey);
   910 			tMbmsInfo.iInputMikey.Copy (iMikey);
   906 
   912 
   907 		//Get the output Mikey
   913 		//Get the output Mikey
   908 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 1, oMikey);
   914 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 1, oMikey);
   909 		if ( ret != KErrNone)
   915 		if ( ret != KErrNone)
   910 			{
   916 			{
   911 			LOGPARSERR ("oMikey", ret, 1, &KMBMSInfo);
   917 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_4, "WARNING - CONFIGURATION FILE PARSING - Reading element OMIKEY returned %d (element no. %d) from tag %s.", ret, 1, KMBMSInfo);
   912 			continue;
   918 			continue;
   913 			}
   919 			}
   914 		else
   920 		else
   915 			{
   921 			{
   916 			tMbmsInfo.iOutputMikey.Copy (oMikey);
   922 			tMbmsInfo.iOutputMikey.Copy (oMikey);
   918 
   924 
   919 		//Get the MTK
   925 		//Get the MTK
   920 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 2, mtk);
   926 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 2, mtk);
   921 		if ( ret != KErrNone)
   927 		if ( ret != KErrNone)
   922 			{
   928 			{
   923 			LOGPARSERR ("MTK", ret, 2, &KMBMSInfo);
   929 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_5, "WARNING - CONFIGURATION FILE PARSING - Reading element MTK returned %d (element no. %d) from tag %s.", ret, 2, KMBMSInfo);
   924 			continue;
   930 			continue;
   925 			}
   931 			}
   926 		else
   932 		else
   927 			{
   933 			{
   928 			tMbmsInfo.iMtk.Copy (mtk);
   934 			tMbmsInfo.iMtk.Copy (mtk);
   931 		//Get the SaltKey
   937 		//Get the SaltKey
   932 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 3,
   938 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 3,
   933 				saltKey);
   939 				saltKey);
   934 		if ( ret != KErrNone)
   940 		if ( ret != KErrNone)
   935 			{
   941 			{
   936 			LOGPARSERR ("saltKey", ret, 3, &KMBMSInfo);
   942 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_6, "WARNING - CONFIGURATION FILE PARSING - Reading element SALTKEY returned %d (element no. %d) from tag %s.", ret, 3, KMBMSInfo);
   937 			continue;
   943 			continue;
   938 			}
   944 			}
   939 		else
   945 		else
   940 			{
   946 			{
   941 			tMbmsInfo.iSaltkey.Copy (saltKey);
   947 			tMbmsInfo.iSaltkey.Copy (saltKey);
   943 
   949 
   944 		//Get the KeyDomain
   950 		//Get the KeyDomain
   945 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 4, keyDmn);
   951 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 4, keyDmn);
   946 		if ( ret != KErrNone)
   952 		if ( ret != KErrNone)
   947 			{
   953 			{
   948 			LOGPARSERR ("keyDmn ", ret, 4, &KMBMSInfo);
   954 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_7, "WARNING - CONFIGURATION FILE PARSING - Reading element KEYDMN  returned %d (element no. %d) from tag %s.", ret, 4, KMBMSInfo);
   949 			continue;
   955 			continue;
   950 			}
   956 			}
   951 		else
   957 		else
   952 			{
   958 			{
   953 			tMbmsInfo.iKeyDmn.Copy (keyDmn);
   959 			tMbmsInfo.iKeyDmn.Copy (keyDmn);
   956 		//Get the MskIdgrp
   962 		//Get the MskIdgrp
   957 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 5,
   963 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 5,
   958 				MskIdgrp);
   964 				MskIdgrp);
   959 		if ( ret != KErrNone)
   965 		if ( ret != KErrNone)
   960 			{
   966 			{
   961 			LOGPARSERR ("MskIdgrp", ret, 5, &KMBMSInfo);
   967 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_8, "WARNING - CONFIGURATION FILE PARSING - Reading element MSKIDGRP returned %d (element no. %d) from tag %s.", ret, 5, KMBMSInfo);
   962 			continue;
   968 			continue;
   963 			}
   969 			}
   964 		else
   970 		else
   965 			{
   971 			{
   966 			tMbmsInfo.iMskIdGrp.Copy (MskIdgrp);
   972 			tMbmsInfo.iMskIdGrp.Copy (MskIdgrp);
   968 
   974 
   969 		//Get the iMukIdTlv
   975 		//Get the iMukIdTlv
   970 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 6, MukId);
   976 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 6, MukId);
   971 		if ( ret != KErrNone)
   977 		if ( ret != KErrNone)
   972 			{
   978 			{
   973 			LOGPARSERR ("MukId ", ret, 6, &KMBMSInfo);
   979 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_9, "WARNING - CONFIGURATION FILE PARSING - Reading element MUKID  returned %d (element no. %d) from tag %s.", ret, 6, KMBMSInfo);
   974 			continue;
   980 			continue;
   975 			}
   981 			}
   976 		else
   982 		else
   977 			{
   983 			{
   978 			tMbmsInfo.iMukIdTlv.Copy (MukId);
   984 			tMbmsInfo.iMukIdTlv.Copy (MukId);
   980 
   986 
   981 		//Get the MukIdi
   987 		//Get the MukIdi
   982 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 7, MukIdi);
   988 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 7, MukIdi);
   983 		if ( ret != KErrNone)
   989 		if ( ret != KErrNone)
   984 			{
   990 			{
   985 			LOGPARSERR ("MukIdi", ret, 7, &KMBMSInfo);
   991 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_10, "WARNING - CONFIGURATION FILE PARSING - Reading element MUKIDI returned %d (element no. %d) from tag %s.", ret, 7, KMBMSInfo);
   986 			continue;
   992 			continue;
   987 			}
   993 			}
   988 		else
   994 		else
   989 			{
   995 			{
   990 			tMbmsInfo.iMukIdi.Copy (MukIdi);
   996 			tMbmsInfo.iMukIdi.Copy (MukIdi);
   992 
   998 
   993 		//Get the MukIdr 
   999 		//Get the MukIdr 
   994 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 8, MukIdr);
  1000 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 8, MukIdr);
   995 		if ( ret != KErrNone)
  1001 		if ( ret != KErrNone)
   996 			{
  1002 			{
   997 			LOGPARSERR ("MukIdr ", ret, 8, &KMBMSInfo);
  1003 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_11, "WARNING - CONFIGURATION FILE PARSING - Reading element MUKIDR  returned %d (element no. %d) from tag %s.", ret, 8, KMBMSInfo);
   998 			continue;
  1004 			continue;
   999 			}
  1005 			}
  1000 		else
  1006 		else
  1001 			{
  1007 			{
  1002 			tMbmsInfo.iMukIdr.Copy (MukIdr);
  1008 			tMbmsInfo.iMukIdr.Copy (MukIdr);
  1004 
  1010 
  1005 		//Get the MukTimeStamp
  1011 		//Get the MukTimeStamp
  1006 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 9,MukTimeStamp);
  1012 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 9,MukTimeStamp);
  1007 		if ( ret != KErrNone)
  1013 		if ( ret != KErrNone)
  1008 			{
  1014 			{
  1009 			LOGPARSERR ("iMikey", ret, 9, &KMBMSInfo);
  1015 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_12, "WARNING - CONFIGURATION FILE PARSING - Reading element IMIKEY returned %d (element no. %d) from tag %s.", ret, 9, KMBMSInfo);
  1010 			continue;
  1016 			continue;
  1011 			}
  1017 			}
  1012 		else
  1018 		else
  1013 			{
  1019 			{
  1014 			tMbmsInfo.iMukTimestamp.Copy (MukTimeStamp);
  1020 			tMbmsInfo.iMukTimestamp.Copy (MukTimeStamp);
  1016 
  1022 
  1017 		//Get the APPID
  1023 		//Get the APPID
  1018 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 10, appId);
  1024 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 10, appId);
  1019 		if ( ret != KErrNone)
  1025 		if ( ret != KErrNone)
  1020 			{
  1026 			{
  1021 			LOGPARSERR ("APPID", ret, 10, &KMBMSInfo);
  1027 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_13, "WARNING - CONFIGURATION FILE PARSING - Reading element APPID returned %d (element no. %d) from tag %s.", ret, 10, KMBMSInfo);
  1022 			continue;
  1028 			continue;
  1023 			}
  1029 			}
  1024 		else
  1030 		else
  1025 			{
  1031 			{
  1026 			tMbmsInfo.iAID.Copy (appId);
  1032 			tMbmsInfo.iAID.Copy (appId);
  1028 
  1034 
  1029 		//Get the KsIntNaf
  1035 		//Get the KsIntNaf
  1030 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 11,KSIntNaf);
  1036 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 11,KSIntNaf);
  1031 		if ( ret != KErrNone)
  1037 		if ( ret != KErrNone)
  1032 			{
  1038 			{
  1033 			LOGPARSERR ("KSIntNaf", ret, 11, &KMBMSInfo);
  1039 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_14, "WARNING - CONFIGURATION FILE PARSING - Reading element KSINTNAF returned %d (element no. %d) from tag %s.", ret, 11, KMBMSInfo);
  1034 			continue;
  1040 			continue;
  1035 			}
  1041 			}
  1036 		else
  1042 		else
  1037 			{
  1043 			{
  1038 			tMbmsInfo.iKsIntNaf.Copy (KSIntNaf);
  1044 			tMbmsInfo.iKsIntNaf.Copy (KSIntNaf);
  1040 
  1046 
  1041 		//Get the CurrentApplnActive
  1047 		//Get the CurrentApplnActive
  1042 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 12,applnActive);
  1048 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 12,applnActive);
  1043 		if ( ret != KErrNone)
  1049 		if ( ret != KErrNone)
  1044 			{
  1050 			{
  1045 			LOGPARSERR ("applnActive", ret, 12, &KMBMSInfo);
  1051 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_15, "WARNING - CONFIGURATION FILE PARSING - Reading element APPLNACTIVE returned %d (element no. %d) from tag %s.", ret, 12, KMBMSInfo);
  1046 			continue;
  1052 			continue;
  1047 			}
  1053 			}
  1048 		else
  1054 		else
  1049 			{
  1055 			{
  1050 			tMbmsInfo.iApplnActive = applnActive;
  1056 			tMbmsInfo.iApplnActive = applnActive;
  1052 
  1058 
  1053 		//Get authentication error
  1059 		//Get authentication error
  1054 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 13,authErr);
  1060 		ret = CTestConfig::GetElement (item->Value (), KStdDelimiter, 13,authErr);
  1055 		if ( ret != KErrNone)
  1061 		if ( ret != KErrNone)
  1056 			{
  1062 			{
  1057 			LOGPARSERR ("authErr", ret, 13, &KMBMSInfo);
  1063 			OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMSMARTCARDAUTH_PARSEMBMSAUTHINFOL_16, "WARNING - CONFIGURATION FILE PARSING - Reading element AUTHERR returned %d (element no. %d) from tag %s.", ret, 13, KMBMSInfo);
  1058 			continue;
  1064 			continue;
  1059 			}
  1065 			}
  1060 		else
  1066 		else
  1061 			{
  1067 			{
  1062 			tMbmsInfo.iAuthErr = authErr;
  1068 			tMbmsInfo.iAuthErr = authErr;