5177ed2e50
Replace the current `string secret` argument to the lock/unlock of CE storage with a `byte[]`. This is part of an effort to remove instances of the LSKF and LSKF-derived secrets that are available in a RAMdump -- since the strings are passed from Java, they cannot be cleared, but `byte[]` can be. This CL is the described argument change, and the propagation of this change to the various functions that are called by the vold binder functions. Bug: 320392352 Test: Manual upgrade test: 1. Flash the device with a build not including these changes 2. Rebuild with these changes 3. Flash the device (but do not wipe) with the build including these changes 4. See if the device boots and works normally -- if the CE storage cannot be unlocked it will not start up and be usable when the user logs in. Change-Id: Icd4c925f2fd79e7533fdf9027e16f6736dbe1ab3
38 lines
1.4 KiB
C++
38 lines
1.4 KiB
C++
/*
|
|
* Copyright (C) 2015 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <cutils/multiuser.h>
|
|
|
|
bool fscrypt_initialize_systemwide_keys();
|
|
|
|
bool fscrypt_init_user0();
|
|
extern bool fscrypt_init_user0_done;
|
|
bool fscrypt_create_user_keys(userid_t user_id, bool ephemeral);
|
|
bool fscrypt_destroy_user_keys(userid_t user_id);
|
|
bool fscrypt_set_ce_key_protection(userid_t user_id, const std::vector<uint8_t>& secret);
|
|
void fscrypt_deferred_fixate_ce_keys();
|
|
|
|
std::vector<int> fscrypt_get_unlocked_users();
|
|
bool fscrypt_unlock_ce_storage(userid_t user_id, const std::vector<uint8_t>& secret);
|
|
bool fscrypt_lock_ce_storage(userid_t user_id);
|
|
|
|
bool fscrypt_prepare_user_storage(const std::string& volume_uuid, userid_t user_id, int flags);
|
|
bool fscrypt_destroy_user_storage(const std::string& volume_uuid, userid_t user_id, int flags);
|
|
|
|
bool fscrypt_destroy_volume_keys(const std::string& volume_uuid);
|