Keystore 2.0: Remove Keystore 1.0 and remaining references
* Remove superseded keystore engine backends.
* Remove keystore_cli.
* Update keystoer_cli_v2 to use Keystore 2.0.
* Update confirmationui invocation test.
* Remove reference to enable keystore2 property from keystore2.rc.
Test: N/A
Bug: 171305684
Change-Id: I855dead9d95c2c8cfa451944087bc8290871c0e5
diff --git a/keystore/tests/Android.bp b/keystore/tests/Android.bp
index 327eb93..249cb77 100644
--- a/keystore/tests/Android.bp
+++ b/keystore/tests/Android.bp
@@ -18,10 +18,6 @@
],
srcs: [
"aaid_truncation_test.cpp",
- "auth_token_table_test.cpp",
- "auth_token_formatting_test.cpp",
- "blob_test.cpp",
- "confirmationui_rate_limiting_test.cpp",
"verification_token_seralization_test.cpp",
"gtest_main.cpp",
],
@@ -35,7 +31,6 @@
"libhidlbase",
"libkeymaster4support",
"libkeymaster4_1support",
- "libkeystore_test",
"liblog",
"libutils",
],
@@ -63,17 +58,14 @@
],
name: "confirmationui_invocation_test",
static_libs: [
- "android.hardware.confirmationui@1.0",
"libbase",
"libgtest_main",
"libutils",
"liblog",
],
shared_libs: [
- "libbinder",
- "libkeystore_aidl", // for IKeyStoreService.asInterface()
- "libkeystore_binder",
- "libkeystore_parcelables",
+ "android.security.apc-ndk_platform",
+ "libbinder_ndk",
],
sanitize: {
cfi: false,
diff --git a/keystore/tests/confirmationui_invocation_test.cpp b/keystore/tests/confirmationui_invocation_test.cpp
index f5182b5..7f8a373 100644
--- a/keystore/tests/confirmationui_invocation_test.cpp
+++ b/keystore/tests/confirmationui_invocation_test.cpp
@@ -15,11 +15,10 @@
** limitations under the License.
*/
-#include <android/hardware/confirmationui/1.0/types.h>
-#include <android/security/BnConfirmationPromptCallback.h>
-#include <android/security/keystore/IKeystoreService.h>
-#include <binder/IPCThreadState.h>
-#include <binder/IServiceManager.h>
+#include <aidl/android/security/apc/BnConfirmationCallback.h>
+#include <aidl/android/security/apc/IProtectedConfirmation.h>
+#include <android/binder_manager.h>
+#include <android/binder_process.h>
#include <gtest/gtest.h>
@@ -28,65 +27,50 @@
#include <tuple>
#include <vector>
-using ConfirmationResponseCode = android::hardware::confirmationui::V1_0::ResponseCode;
-using android::IBinder;
-using android::IServiceManager;
-using android::sp;
-using android::String16;
-using android::security::keystore::IKeystoreService;
-
using namespace std::literals::chrono_literals;
+namespace apc = ::aidl::android::security::apc;
class ConfirmationListener
- : public android::security::BnConfirmationPromptCallback,
- public std::promise<std::tuple<ConfirmationResponseCode, std::vector<uint8_t>>> {
+ : public apc::BnConfirmationCallback,
+ public std::promise<std::tuple<apc::ResponseCode, std::optional<std::vector<uint8_t>>>> {
public:
ConfirmationListener() {}
- virtual ::android::binder::Status
- onConfirmationPromptCompleted(int32_t result,
- const ::std::vector<uint8_t>& dataThatWasConfirmed) override {
- this->set_value({static_cast<ConfirmationResponseCode>(result), dataThatWasConfirmed});
- return ::android::binder::Status::ok();
- }
+ virtual ::ndk::ScopedAStatus
+ onCompleted(::aidl::android::security::apc::ResponseCode result,
+ const std::optional<std::vector<uint8_t>>& dataConfirmed) override {
+ this->set_value({result, dataConfirmed});
+ return ::ndk::ScopedAStatus::ok();
+ };
};
TEST(ConfirmationInvocationTest, InvokeAndCancel) {
- android::ProcessState::self()->startThreadPool();
+ ABinderProcess_startThreadPool();
- sp<IServiceManager> sm = android::defaultServiceManager();
- sp<IBinder> binder = sm->getService(String16("android.security.keystore"));
- sp<IKeystoreService> service = android::interface_cast<IKeystoreService>(binder);
- ASSERT_TRUE(service);
+ ::ndk::SpAIBinder apcBinder(AServiceManager_getService("android.security.apc"));
+ auto apcService = apc::IProtectedConfirmation::fromBinder(apcBinder);
+ ASSERT_TRUE(apcService);
- String16 promptText16("Just a little test!");
- String16 locale16("en");
+ std::string promptText("Just a little test!");
+ std::string locale("en");
std::vector<uint8_t> extraData{0xaa, 0xff, 0x00, 0x55};
- sp<ConfirmationListener> listener = new ConfirmationListener();
+ auto listener = std::make_shared<ConfirmationListener>();
auto future = listener->get_future();
- int32_t aidl_return;
- android::binder::Status status = service->presentConfirmationPrompt(
- listener, promptText16, extraData, locale16, 0, &aidl_return);
- ASSERT_TRUE(status.isOk()) << "Presenting confirmation prompt failed with binder status '"
- << status.toString8().c_str() << "'.\n";
- ConfirmationResponseCode responseCode = static_cast<ConfirmationResponseCode>(aidl_return);
- ASSERT_EQ(responseCode, ConfirmationResponseCode::OK)
- << "Presenting confirmation prompt failed with response code " << aidl_return << ".\n";
+ auto rc = apcService->presentPrompt(listener, promptText, extraData, locale, 0);
+
+ ASSERT_TRUE(rc.isOk());
auto fstatus = future.wait_for(2s);
EXPECT_EQ(fstatus, std::future_status::timeout);
- status = service->cancelConfirmationPrompt(listener, &aidl_return);
- ASSERT_TRUE(status.isOk());
-
- responseCode = static_cast<ConfirmationResponseCode>(aidl_return);
- ASSERT_EQ(responseCode, ConfirmationResponseCode::OK);
+ rc = apcService->cancelPrompt(listener);
+ ASSERT_TRUE(rc.isOk());
future.wait();
- auto [rc, dataThatWasConfirmed] = future.get();
+ auto [responseCode, dataThatWasConfirmed] = future.get();
- ASSERT_EQ(rc, ConfirmationResponseCode::Aborted);
+ ASSERT_EQ(responseCode, apc::ResponseCode::ABORTED);
}