diff --git a/keymaster/4.0/support/Keymaster3.cpp b/keymaster/4.0/support/Keymaster3.cpp index b2cdbd9263..84b3ee1f60 100644 --- a/keymaster/4.0/support/Keymaster3.cpp +++ b/keymaster/4.0/support/Keymaster3.cpp @@ -61,9 +61,12 @@ KeyParameter convert(const V3_0::KeyParameter& param) { } hidl_vec convert(const hidl_vec& params) { - hidl_vec converted(params.size()); - for (size_t i = 0; i < params.size(); ++i) { - converted[i] = convert(params[i]); + std::vector converted; + converted.reserve(params.size()); + for (const auto& param : params) { + // Qualcomm's Keymaster3 implementation behaves oddly if Tag::USER_ID is provided. Filter it + // out. Revert this change when b/73286437 is fixed. + if (param.tag != Tag::USER_ID) converted.push_back(convert(param)); } return converted; }