crypto: fde: decrypt master key first

* Some devices like lavender, etc. getting failed to decrypt

Change-Id: I63ca05c4f87cdd17d48d4541a5a8121c736beb02
Signed-off-by: Mohd Faraz <androiabledroid@gmail.com>
This commit is contained in:
Mohd Faraz
2020-02-15 22:06:14 +05:30
committed by bigbiff
parent 8a411c8d25
commit 191a6948d9
+9 -2
View File
@@ -1332,6 +1332,13 @@ static int test_mount_hw_encrypted_fs(struct crypt_mnt_ftr* crypt_ftr,
int key_index = 0;
if(is_hw_disk_encryption((char*)crypt_ftr->crypto_type_name)) {
if (crypt_ftr->flags & CRYPT_FORCE_COMPLETE) {
if (decrypt_master_key(passwd, decrypted_master_key, crypt_ftr, 0, 0)) {
printf("Failed to decrypt master key\n");
rc = -1;
goto errout;
}
}
key_index = verify_and_update_hw_fde_passwd(passwd, crypt_ftr);
if (key_index < 0) {
rc = -1;
@@ -1396,7 +1403,7 @@ static int test_mount_encrypted_fs(struct crypt_mnt_ftr* crypt_ftr,
//char real_blkdev[MAXPATHLEN];
char tmp_mount_point[64];
unsigned int orig_failed_decrypt_count;
int rc;
int rc = 0;
int use_keymaster = 0;
unsigned char* intermediate_key = 0;
size_t intermediate_key_size = 0;
@@ -1551,7 +1558,7 @@ int check_unmounted_and_get_ftr(struct crypt_mnt_ftr* crypt_ftr)
int cryptfs_check_passwd_hw(const char* passwd)
{
struct crypt_mnt_ftr crypt_ftr;
int rc;
int rc = 0;
unsigned char master_key[KEY_LEN_BYTES];
/* get key */
if (get_crypt_ftr_and_key(&crypt_ftr)) {