Check secure secret id.
GitOrigin-RevId: a2870d7aa8e9920a131f672b04167010738a5a7e
This commit is contained in:
parent
353cfb3196
commit
465c450d3f
@ -209,8 +209,12 @@ void PasswordManager::do_get_full_state(string password, PasswordState state, Pr
|
||||
|
||||
auto r_secret = [&]() -> Result<secure_storage::Secret> {
|
||||
TRY_RESULT(encrypted_secret, secure_storage::EncryptedSecret::create(result->secure_secret_.as_slice()));
|
||||
return encrypted_secret.decrypt(PSLICE() << result->secure_salt_.as_slice() << password
|
||||
auto r_secret = encrypted_secret.decrypt(PSLICE() << result->secure_salt_.as_slice() << password
|
||||
<< result->secure_salt_.as_slice());
|
||||
if (r_secret.is_ok() && result->secure_secret_id_ != r_secret.ok().get_hash()) {
|
||||
return Status::Error("Secret hash mismatch");
|
||||
}
|
||||
return r_secret;
|
||||
}();
|
||||
|
||||
private_state.secret = std::move(r_secret);
|
||||
|
Reference in New Issue
Block a user