Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6cc8d07a authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "remote_prov_utils: Add instance name in the JSON output" am: 3192a09b am: a91e17ed

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2017795

Change-Id: I36bf9336a784f099d12cdb2e4833ea76f10e520b
parents d6ef5852 a91e17ed
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -124,17 +124,19 @@ struct JsonOutput {
};

/**
 * Take a given certificate request and output a JSON blob containing both the
 * build fingerprint and certificate request. This data may be serialized, then
 * later uploaded to the remote provisioning service. The input csr is not
 * validated, only encoded.
 * Take a given instance name and certificate request, then output a JSON blob
 * containing the name, build fingerprint and certificate request. This data may
 * be serialized, then later uploaded to the remote provisioning service. The
 * input csr is not validated, only encoded.
 *
 * Output format:
 *   {
 *     "build_fingerprint": <string>
 *     "csr": <base64 CBOR CSR>
 *     "name": <string>
 *   }
 */
JsonOutput jsonEncodeCsrWithBuild(const cppbor::Array& csr);
JsonOutput jsonEncodeCsrWithBuild(const std::string instance_name,
                                  const cppbor::Array& csr);

}  // namespace aidl::android::hardware::security::keymint::remote_prov
+2 −1
Original line number Diff line number Diff line
@@ -408,7 +408,7 @@ ErrMsgOr<std::vector<BccEntryData>> validateBcc(const cppbor::Array* bcc) {
    return result;
}

JsonOutput jsonEncodeCsrWithBuild(const cppbor::Array& csr) {
JsonOutput jsonEncodeCsrWithBuild(const std::string instance_name, const cppbor::Array& csr) {
    const std::string kFingerprintProp = "ro.build.fingerprint";

    if (!::android::base::WaitForPropertyCreation(kFingerprintProp)) {
@@ -432,6 +432,7 @@ JsonOutput jsonEncodeCsrWithBuild(const cppbor::Array& csr) {
    }

    Json::Value json(Json::objectValue);
    json["name"] = instance_name;
    json["build_fingerprint"] = ::android::base::GetProperty(kFingerprintProp, /*default=*/"");
    json["csr"] = base64.data();  // Boring writes a NUL-terminated c-string

+2 −2
Original line number Diff line number Diff line
@@ -185,13 +185,13 @@ TEST(RemoteProvUtilsTest, JsonEncodeCsr) {
    cppbor::Array array;
    array.add(1);

    auto [json, error] = jsonEncodeCsrWithBuild(array);
    auto [json, error] = jsonEncodeCsrWithBuild(std::string("test"), array);

    ASSERT_TRUE(error.empty()) << error;

    std::string expected = R"({"build_fingerprint":")" +
                           ::android::base::GetProperty("ro.build.fingerprint", /*default=*/"") +
                           R"(","csr":"gQE="})";
                           R"(","csr":"gQE=","name":"test"})";

    ASSERT_EQ(json, expected);
}