Make client/app ids objects in the binder API
Previously a null client/app id was translated into a blob with
length=0, data=NULL, but this was a bit janky and required null ids to
be set on key creation/import.
Change-Id: I27607a50f4dc5a898625b569f5293369f0039eba
diff --git a/keystore/keystore.cpp b/keystore/keystore.cpp
index 46bc174..a949ffb 100644
--- a/keystore/keystore.cpp
+++ b/keystore/keystore.cpp
@@ -2540,8 +2540,8 @@
}
int32_t getKeyCharacteristics(const String16& name,
- const keymaster_blob_t& clientId,
- const keymaster_blob_t& appData,
+ const keymaster_blob_t* clientId,
+ const keymaster_blob_t* appData,
KeyCharacteristics* outCharacteristics) {
if (!outCharacteristics) {
@@ -2568,7 +2568,7 @@
ALOGW("device does not implement get_key_characteristics");
return KM_ERROR_UNIMPLEMENTED;
}
- rc = dev->get_key_characteristics(dev, &key, &clientId, &appData, &out);
+ rc = dev->get_key_characteristics(dev, &key, clientId, appData, &out);
if (out) {
outCharacteristics->characteristics = *out;
free(out);
@@ -2645,8 +2645,8 @@
}
void exportKey(const String16& name, keymaster_key_format_t format,
- const keymaster_blob_t& clientId,
- const keymaster_blob_t& appData, ExportResult* result) {
+ const keymaster_blob_t* clientId,
+ const keymaster_blob_t* appData, ExportResult* result) {
uid_t callingUid = IPCThreadState::self()->getCallingUid();
@@ -2669,7 +2669,7 @@
return;
}
uint8_t* ptr = NULL;
- rc = dev->export_key(dev, format, &key, &clientId, &appData,
+ rc = dev->export_key(dev, format, &key, clientId, appData,
&ptr, &result->dataLength);
result->exportData.reset(ptr);
result->resultCode = rc ? rc : ::NO_ERROR;