diff -r f479c7dc25d6 -r 25a3fbb5e4d3 securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp --- a/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Thu Sep 02 21:22:45 2010 +0300 +++ b/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Fri Sep 17 08:35:02 2010 +0300 @@ -281,9 +281,40 @@ return ret; } + // Validate the code using SCP. This is needed to get hash + RDEBUG("AbortSecurityCode", 0); + RSCPClient scpClient; + RDEBUG("scpClient.Connect", 0); + TInt tRet = scpClient.Connect(); + RDEBUG("tRet", tRet); + + CleanupClosePushL(scpClient); + + RArray aFailedPolicies; + TInt retLockcode = KErrNone; + RMobilePhone::TMobilePassword aISACode; + TInt scpFlags = 0; + RDEBUG("scpClient.VerifyCurrentLockcode", 0); + // this validate on ISA . No need to do iPhone.VerifySecurityCode + retLockcode = scpClient.VerifyCurrentLockcode(iSecUi_password, aISACode, aFailedPolicies, scpFlags); + RDEBUG("retLockcode", retLockcode); + + RDEBUG("aISACode", 0); + RDEBUGSTR(aISACode); + + RDEBUG("aFailedPolicies.Count()", aFailedPolicies.Count()); + RDEBUG("Close", 0); + scpClient.Close(); + RDEBUG("PopAndDestroy", 0); + CleanupStack::PopAndDestroy(); //scpClient + CWait* wait = CWait::NewL(); + RDEBUG("iSecUi_password", 0); + RDEBUGSTR(iSecUi_password); + RDEBUG("aISACode", 0); + RDEBUGSTR(aISACode); RDEBUG("VerifySecurityCode", 0); - iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth); + iPhone.VerifySecurityCode(wait->iStatus, secCodeType, aISACode /* not iSecUi_password !!! */, required_fourth); RDEBUG("WaitForRequestL", 0); status = wait->WaitForRequestL(); RDEBUG("status", status); @@ -296,7 +327,7 @@ } #endif - ret = ETrue; + ret = EFalse; queryAccepted = KErrCancel; // because it's not yet validated switch (status) { @@ -345,9 +376,11 @@ CSecuritySettings::ShowResultNoteL(status, CAknNoteDialog::EErrorTone); } } + RDEBUG("while AskSecCodeL", 1); } // while iQueryCanceled = ETrue; + RDEBUG("ret", ret); return ret; } // @@ -751,10 +784,10 @@ TDevicelockPolicies failedPolicy; TInt retLockcode = KErrNone; RMobilePhone::TMobilePassword aISACode; - TInt aFlags = 0; + TInt scpFlags = 0; RDEBUG("scpClient.VerifyCurrentLockcode", 0); // this validate on ISA . No need to do iPhone.VerifySecurityCode - retLockcode = scpClient.VerifyCurrentLockcode(iSecUi_password, aISACode, aFailedPolicies, aFlags); + retLockcode = scpClient.VerifyCurrentLockcode(iSecUi_password, aISACode, aFailedPolicies, scpFlags); RDEBUG("retLockcode", retLockcode); RDEBUG("aISACode", 0); @@ -809,9 +842,13 @@ else { RDEBUG( "wait", 0 ); + RDEBUG("iSecUi_password", 0); + RDEBUGSTR(iSecUi_password); + RDEBUG("aISACode", 0); + RDEBUGSTR(aISACode); wait = CWait::NewL(); RDEBUG("VerifySecurityCode", 0); - iPhone.VerifySecurityCode(wait->iStatus, secCodeType, iSecUi_password, required_fourth); + iPhone.VerifySecurityCode(wait->iStatus, secCodeType, aISACode /* not iSecUi_password !!! */, required_fourth); RDEBUG("WaitForRequestL", 0); status = wait->WaitForRequestL(); @@ -993,6 +1030,8 @@ } break; case KErrGsmSSPasswordAttemptsViolation: + RDEBUG("KErrGsmSSPasswordAttemptsViolation", KErrGsmSSPasswordAttemptsViolation); + // and continue case KErrLocked: { // security code blocked! @@ -1002,6 +1041,8 @@ } break; case KErrGsm0707IncorrectPassword: + RDEBUG("KErrGsm0707IncorrectPassword", KErrGsm0707IncorrectPassword); + // and continue case KErrAccessDenied: { RDEBUG("KErrAccessDenied", KErrAccessDenied); @@ -1096,6 +1137,7 @@ res = KErrNone; codeInfo.iRemainingEntryAttempts = 3; #endif + RDEBUG("KErrPermissionDenied", KErrPermissionDenied); User::LeaveIfError(res); RDEBUG("codeInfo.iRemainingEntryAttempts", @@ -1169,6 +1211,7 @@ case KErrAccessDenied: // code was entered erroneously CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone); + RDEBUG("StartUp", StartUp); if (StartUp) { returnValue = Pin1RequiredL(); @@ -1178,6 +1221,7 @@ case KErrLocked: // code blocked; show error note and terminate. // what if not during Startup? Probably it's Ok since the SIM would had also failed at StartUp + RDEBUG("StartUp", StartUp); if (StartUp) CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone); break; @@ -1271,8 +1315,12 @@ title.Append(_L("$")); title.AppendNum(attempts); TInt lSecUiCancelSupported = ESecUiCancelSupported | ESecUiEmergencyNotSupported; + RDEBUG("StartUp", 0); if (StartUp) // how to know whether PUK comes from failing at Starter, or failing at any other PIN (i.e. changing PIN, or changing PIN-request) ??? + { lSecUiCancelSupported = ESecUiCancelNotSupported | ESecUiEmergencySupported; + RDEBUG("new ", lSecUiCancelSupported); + } queryAccepted = iSecQueryUi->SecQueryDialog(title, puk1_password, SEC_C_PUK_CODE_MIN_LENGTH, SEC_C_PUK_CODE_MAX_LENGTH, ESecUiSecretNotSupported | ESecUiAlphaNotSupported | lSecUiCancelSupported | ESecUiPukRequired); RDEBUG("puk1_password", 0); @@ -1344,7 +1392,13 @@ HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_verify_new_pin_code")); title.Append(stringHolder2->Des()); CleanupStack::PopAndDestroy(stringHolder2); - queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPinPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported + lSecUiCancelSupported = ESecUiCancelSupported; + RDEBUG("StartUp", 0); + if (StartUp) // how to know whether PUK comes from failing at Starter, or failing at any other PIN (i.e. changing PIN, or changing PIN-request) ??? + { + lSecUiCancelSupported = ESecUiCancelNotSupported; + } + queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPinPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | lSecUiCancelSupported | ESecUiPukRequired); RDEBUG("aNewPinPassword", 0); RDEBUGSTR(aNewPinPassword);