summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornxp72763 <anil.hiranniah@nxp.com>2019-12-09 17:28:36 +0530
committernxp72763 <anil.hiranniah@nxp.com>2019-12-09 17:28:36 +0530
commit0144902231e743809c83966bd39a3de44ed4e32f (patch)
tree04a2813f84dd812d98f1285c56c6ca00a31731d2
parent48b59a20f629b0dfd92087d087af76436ab9ec0e (diff)
downloadsecure_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-x1.0/SecureElement.cpp4
-rwxr-xr-x1.1/SecureElement.cpp4
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);