Return empty ATR vector in getATR API
The ATR is not supported by SPI in the secure element. The HAL should
return empty vector instead of returning the ATP.
Bug: 131298247
Test: AccessRule loaded successfully
atest VtsHalSecureElementV1_0TargetTest
Merged-In: Id7cb9c1aa0b3a4fed96d7ecaa8933b464942137d
Change-Id: Id7cb9c1aa0b3a4fed96d7ecaa8933b464942137d
diff --git a/1.0/SecureElement.cpp b/1.0/SecureElement.cpp
index 94546ef..7c1d0f5 100644
--- a/1.0/SecureElement.cpp
+++ b/1.0/SecureElement.cpp
@@ -71,12 +71,14 @@
Return<void> SecureElement::getAtr(getAtr_cb _hidl_cb) {
ALOGD("%s: Enter", __func__);
hidl_vec<uint8_t> response;
- uint8_t* ATP;
- ATP = StEse_getAtr();
- uint8_t len = *ATP;
- if (len) {
- response.resize(len);
- memcpy(&response[0], ATP, len);
+ uint8_t* ATR;
+ ATR = StEse_getAtr();
+ if (ATR != nullptr) {
+ uint8_t len = *ATR;
+ if (len) {
+ response.resize(len);
+ memcpy(&response[0], ATR, len);
+ }
}
_hidl_cb(response);
return Void();
diff --git a/1.1/SecureElement.cpp b/1.1/SecureElement.cpp
index 8a87808..434d403 100644
--- a/1.1/SecureElement.cpp
+++ b/1.1/SecureElement.cpp
@@ -103,12 +103,14 @@
Return<void> SecureElement::getAtr(getAtr_cb _hidl_cb) {
ALOGD("%s: Enter", __func__);
hidl_vec<uint8_t> response;
- uint8_t* ATP;
- ATP = StEse_getAtr();
- uint8_t len = *ATP;
- if (len) {
- response.resize(len);
- memcpy(&response[0], ATP, len);
+ uint8_t* ATR;
+ ATR = StEse_getAtr();
+ if (ATR != nullptr) {
+ uint8_t len = *ATR;
+ if (len) {
+ response.resize(len);
+ memcpy(&response[0], ATR, len);
+ }
}
_hidl_cb(response);
return Void();
diff --git a/ese-spi-driver/StEseApi.cc b/ese-spi-driver/StEseApi.cc
index 60a49cf..c31549c 100644
--- a/ese-spi-driver/StEseApi.cc
+++ b/ese-spi-driver/StEseApi.cc
@@ -31,7 +31,7 @@
/* ESE Context structure */
ese_Context_t ese_ctxt;
-const char* halVersion = "ST54-SE HAL1.0 Version 1.0.18";
+const char* halVersion = "ST54-SE HAL1.0 Version 1.0.19";
pthread_mutex_t mutex;
@@ -227,12 +227,13 @@
*
* Description This function get the last ATR received.
*
- * Returns pointer to the ATP array.
+ * Returns pointer to the ATR array.
*
******************************************************************************/
uint8_t* StEse_getAtr(void) {
STLOG_HAL_D("%s : Enter", __func__);
- return Atp_getAtp();
+ // The ATR is not supported by SPI in the secure element
+ return nullptr;
}
/******************************************************************************
diff --git a/ese-spi-driver/StEseApi.h b/ese-spi-driver/StEseApi.h
index a6aa1af..452278d 100644
--- a/ese-spi-driver/StEseApi.h
+++ b/ese-spi-driver/StEseApi.h
@@ -111,7 +111,7 @@
*
* @param void
*
- * @return pointer to the ATP array.
+ * @return pointer to the ATR array.
*
*/
uint8_t* StEse_getAtr(void);