Merge "SyntheticPasswordManager: rename derivePassword() to deriveSubkey()" am: a2f9e65a02 am: 0573cdeafc am: b089c8aaf3 am: 9e339979e1

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2132301

Change-Id: Ied41c5f4f0810ccc5b54c1343baa2f04235787bf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Eric Biggers
2022-06-27 20:07:14 +00:00
committed by Automerger Merge Worker

View File

@@ -192,7 +192,11 @@ public class SyntheticPasswordManager {
mVersion = version; mVersion = version;
} }
private byte[] derivePassword(byte[] personalization) { /**
* Derives a subkey from the synthetic password. For v3 and later synthetic passwords the
* subkeys are 256-bit; for v1 and v2 they are 512-bit.
*/
private byte[] deriveSubkey(byte[] personalization) {
if (mVersion == SYNTHETIC_PASSWORD_VERSION_V3) { if (mVersion == SYNTHETIC_PASSWORD_VERSION_V3) {
return (new SP800Derive(mSyntheticPassword)) return (new SP800Derive(mSyntheticPassword))
.withContext(personalization, PERSONALISATION_CONTEXT); .withContext(personalization, PERSONALISATION_CONTEXT);
@@ -203,28 +207,28 @@ public class SyntheticPasswordManager {
} }
public byte[] deriveKeyStorePassword() { public byte[] deriveKeyStorePassword() {
return bytesToHex(derivePassword(PERSONALIZATION_KEY_STORE_PASSWORD)); return bytesToHex(deriveSubkey(PERSONALIZATION_KEY_STORE_PASSWORD));
} }
public byte[] deriveGkPassword() { public byte[] deriveGkPassword() {
return derivePassword(PERSONALIZATION_SP_GK_AUTH); return deriveSubkey(PERSONALIZATION_SP_GK_AUTH);
} }
public byte[] deriveDiskEncryptionKey() { public byte[] deriveDiskEncryptionKey() {
return derivePassword(PERSONALIZATION_FBE_KEY); return deriveSubkey(PERSONALIZATION_FBE_KEY);
} }
public byte[] deriveVendorAuthSecret() { public byte[] deriveVendorAuthSecret() {
return derivePassword(PERSONALIZATION_AUTHSECRET_KEY); return deriveSubkey(PERSONALIZATION_AUTHSECRET_KEY);
} }
public byte[] derivePasswordHashFactor() { public byte[] derivePasswordHashFactor() {
return derivePassword(PERSONALIZATION_PASSWORD_HASH); return deriveSubkey(PERSONALIZATION_PASSWORD_HASH);
} }
/** Derives key used to encrypt password metrics */ /** Derives key used to encrypt password metrics */
public byte[] deriveMetricsKey() { public byte[] deriveMetricsKey() {
return derivePassword(PERSONALIZATION_PASSWORD_METRICS); return deriveSubkey(PERSONALIZATION_PASSWORD_METRICS);
} }
/** /**