diff options
author | nxp72763 <anil.hiranniah@nxp.com> | 2019-12-09 17:28:36 +0530 |
---|---|---|
committer | nxp72763 <anil.hiranniah@nxp.com> | 2019-12-09 17:28:36 +0530 |
commit | 0144902231e743809c83966bd39a3de44ed4e32f (patch) | |
tree | 04a2813f84dd812d98f1285c56c6ca00a31731d2 | |
parent | 48b59a20f629b0dfd92087d087af76436ab9ec0e (diff) | |
download | secure_element-0144902231e743809c83966bd39a3de44ed4e32f.tar.gz |
Fix GSMAv14 TS27 TC 6.3.1.6.4.7eSE ID20-ID23 failure.
handle responses (0x62xx or 0x63xx) to manage channel open command as
Success
Bug:142574709
Test: GSMA test, VTS
Change-Id: Ib5d1d459572bdc0c550a7e009d7c4924f983eb36
-rwxr-xr-x | 1.0/SecureElement.cpp | 4 | ||||
-rwxr-xr-x | 1.1/SecureElement.cpp | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/1.0/SecureElement.cpp b/1.0/SecureElement.cpp index 6a38a25..fe5674d 100755 --- a/1.0/SecureElement.cpp +++ b/1.0/SecureElement.cpp @@ -218,7 +218,7 @@ Return<void> SecureElement::openLogicalChannel(const hidl_vec<uint8_t>& aid, uint8_t sw2 = rspApdu.p_data[rspApdu.len - 1]; /*Return response on success, empty vector on failure*/ /*Status is success*/ - if (sw1 == 0x90 && sw2 == 0x00) { + if ((sw1 == 0x90 && sw2 == 0x00) || (sw1 == 0x62) || (sw1 == 0x63)) { /*Copy the response including status word*/ resApduBuff.selectResponse.resize(rspApdu.len); memcpy(&resApduBuff.selectResponse[0], rspApdu.p_data, rspApdu.len); @@ -294,7 +294,7 @@ Return<void> SecureElement::openBasicChannel(const hidl_vec<uint8_t>& aid, uint8_t sw2 = rspApdu.p_data[rspApdu.len - 1]; /*Return response on success, empty vector on failure*/ /*Status is success*/ - if ((sw1 == 0x90) && (sw2 == 0x00)) { + if ((sw1 == 0x90 && sw2 == 0x00) || (sw1 == 0x62) || (sw1 == 0x63)) { /*Copy the response including status word*/ result.resize(rspApdu.len); memcpy(&result[0], rspApdu.p_data, rspApdu.len); diff --git a/1.1/SecureElement.cpp b/1.1/SecureElement.cpp index e04b8ba..0ab9bb4 100755 --- a/1.1/SecureElement.cpp +++ b/1.1/SecureElement.cpp @@ -259,7 +259,7 @@ Return<void> SecureElement::openLogicalChannel(const hidl_vec<uint8_t>& aid, uint8_t sw2 = rspApdu.p_data[rspApdu.len - 1]; /*Return response on success, empty vector on failure*/ /*Status is success*/ - if (sw1 == 0x90 && sw2 == 0x00) { + if ((sw1 == 0x90 && sw2 == 0x00) || (sw1 == 0x62) || (sw1 == 0x63)) { /*Copy the response including status word*/ resApduBuff.selectResponse.resize(rspApdu.len); memcpy(&resApduBuff.selectResponse[0], rspApdu.p_data, rspApdu.len); @@ -335,7 +335,7 @@ Return<void> SecureElement::openBasicChannel(const hidl_vec<uint8_t>& aid, uint8_t sw2 = rspApdu.p_data[rspApdu.len - 1]; /*Return response on success, empty vector on failure*/ /*Status is success*/ - if ((sw1 == 0x90) && (sw2 == 0x00)) { + if ((sw1 == 0x90 && sw2 == 0x00) || (sw1 == 0x62) || (sw1 == 0x63)) { /*Copy the response including status word*/ result.resize(rspApdu.len); memcpy(&result[0], rspApdu.p_data, rspApdu.len); |