vold: Generate storage key without rollback resistance
Generate a storage key without rollback_resistance when device doesnt support the corresponding tag. Bug: 168527558 Change-Id: Iaf27c64dba627a31c9cbd9178458bf6785d00251
This commit is contained in:
parent
8671044a64
commit
75736a8811
1 changed files with 5 additions and 2 deletions
|
@ -141,9 +141,12 @@ bool generateWrappedStorageKey(KeyBuffer* key) {
|
||||||
if (!keymaster) return false;
|
if (!keymaster) return false;
|
||||||
std::string key_temp;
|
std::string key_temp;
|
||||||
auto paramBuilder = km::AuthorizationSetBuilder().AesEncryptionKey(AES_KEY_BYTES * 8);
|
auto paramBuilder = km::AuthorizationSetBuilder().AesEncryptionKey(AES_KEY_BYTES * 8);
|
||||||
paramBuilder.Authorization(km::TAG_ROLLBACK_RESISTANCE);
|
|
||||||
paramBuilder.Authorization(km::TAG_STORAGE_KEY);
|
paramBuilder.Authorization(km::TAG_STORAGE_KEY);
|
||||||
if (!keymaster.generateKey(paramBuilder, &key_temp)) return false;
|
auto paramsWithRollback = paramBuilder;
|
||||||
|
paramsWithRollback.Authorization(km::TAG_ROLLBACK_RESISTANCE);
|
||||||
|
if (!keymaster.generateKey(paramsWithRollback, &key_temp)) {
|
||||||
|
if (!keymaster.generateKey(paramBuilder, &key_temp)) return false;
|
||||||
|
}
|
||||||
*key = KeyBuffer(key_temp.size());
|
*key = KeyBuffer(key_temp.size());
|
||||||
memcpy(reinterpret_cast<void*>(key->data()), key_temp.c_str(), key->size());
|
memcpy(reinterpret_cast<void*>(key->data()), key_temp.c_str(), key->size());
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue