diff --git a/security/keymint/support/Android.bp b/security/keymint/support/Android.bp index efd6fc7800..8d7731cd55 100644 --- a/security/keymint/support/Android.bp +++ b/security/keymint/support/Android.bp @@ -84,6 +84,7 @@ cc_test { "android.hardware.security.rkp-V3-ndk", "libgmock", "libgtest_main", + "libkeymint_remote_prov_support", ], defaults: [ "keymint_use_latest_hal_aidl_ndk_shared", @@ -95,6 +96,5 @@ cc_test { "libcrypto", "libjsoncpp", "libkeymaster_portable", - "libkeymint_remote_prov_support", ], } diff --git a/security/keymint/support/remote_prov_utils.cpp b/security/keymint/support/remote_prov_utils.cpp index 7e164fd51a..ea0fbd8e91 100644 --- a/security/keymint/support/remote_prov_utils.cpp +++ b/security/keymint/support/remote_prov_utils.cpp @@ -417,6 +417,7 @@ ErrMsgOr> validateBcc(const cppbor::Array* bcc) { JsonOutput jsonEncodeCsrWithBuild(const std::string instance_name, const cppbor::Array& csr) { const std::string kFingerprintProp = "ro.build.fingerprint"; + const std::string kSerialNoProp = "ro.serialno"; if (!::android::base::WaitForPropertyCreation(kFingerprintProp)) { return JsonOutput::Error("Unable to read build fingerprint"); @@ -441,6 +442,7 @@ JsonOutput jsonEncodeCsrWithBuild(const std::string instance_name, const cppbor: Json::Value json(Json::objectValue); json["name"] = instance_name; json["build_fingerprint"] = ::android::base::GetProperty(kFingerprintProp, /*default=*/""); + json["serialno"] = ::android::base::GetProperty(kSerialNoProp, /*default=*/""); json["csr"] = base64.data(); // Boring writes a NUL-terminated c-string Json::StreamWriterBuilder factory; diff --git a/security/keymint/support/remote_prov_utils_test.cpp b/security/keymint/support/remote_prov_utils_test.cpp index 0250cd6c7d..eaaba455cc 100644 --- a/security/keymint/support/remote_prov_utils_test.cpp +++ b/security/keymint/support/remote_prov_utils_test.cpp @@ -191,7 +191,8 @@ TEST(RemoteProvUtilsTest, JsonEncodeCsr) { std::string expected = R"({"build_fingerprint":")" + ::android::base::GetProperty("ro.build.fingerprint", /*default=*/"") + - R"(","csr":"gQE=","name":"test"})"; + R"(","csr":"gQE=","name":"test","serialno":")" + + ::android::base::GetProperty("ro.serialno", /*default=*/"") + R"("})"; ASSERT_EQ(json, expected); }