keystore-engine: Couple of bug fixes for HIDL keystore
Fixes for issues found in wifi integration tests:
1. ensure_keystore_engine() needs to be invoked before we access
|g_keystore_backend|.
2. The HIDL backends need to return 0 when the operation succeeds.
Bug: 34603782
Test: Manual tests.
Change-Id: If61d3bef27dab6f4fb73113f0ed6d3e784a29f32
diff --git a/keystore-engine/keystore_backend_hidl.cpp b/keystore-engine/keystore_backend_hidl.cpp
index 80a3601..b00cf4e 100644
--- a/keystore-engine/keystore_backend_hidl.cpp
+++ b/keystore-engine/keystore_backend_hidl.cpp
@@ -54,7 +54,10 @@
};
Return<void> ret = service->sign(
key_id, std::vector<uint8_t>(in, in + len), cb);
- return ret.isOk() && success;
+ if (!ret.isOk() || !success) {
+ return 1;
+ }
+ return 0;
}
int32_t KeystoreBackendHidl::get_pubkey(
@@ -80,5 +83,8 @@
}
};
Return<void> ret = service->getPublicKey(key_id, cb);
- return ret.isOk() && success;
+ if (!ret.isOk() || !success) {
+ return 1;
+ }
+ return 0;
}