goto out;
}
+ if (!keymaster0_dev || !keymaster0_dev->common.module) {
+ rc = -1;
+ goto out;
+ }
+
// TODO(swillden): Check to see if there's any reason to require v0.3. I think v0.1 and v0.2
// should work.
if (keymaster0_dev->common.module->module_api_version
return -1;
}
- if (persist_data == NULL) {
- pdata = malloc(crypt_ftr.persist_data_size);
- if (pdata == NULL) {
- SLOGE("Cannot allocate memory for persistent data");
- goto err;
- }
+ pdata = malloc(crypt_ftr.persist_data_size);
+ if (pdata == NULL) {
+ SLOGE("Cannot allocate memory for persistent data");
+ goto err;
}
for (i = 0; i < 2; i++) {
rc = decrypt_master_key(password, master_key, ftr, &intermediate_key,
&intermediate_key_size);
+ if (rc) {
+ SLOGE("Can't calculate intermediate key");
+ return rc;
+ }
+
int N = 1 << ftr->N_factor;
int r = 1 << ftr->r_factor;
int p = 1 << ftr->p_factor;
free(intermediate_key);
if (rc) {
- SLOGE("Can't calculate intermediate key");
+ SLOGE("Can't scrypt intermediate key");
return rc;
}