Loading services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java +11 −7 Original line number Diff line number Diff line Loading @@ -186,7 +186,11 @@ public class SyntheticPasswordManager { 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) { return (new SP800Derive(mSyntheticPassword)) .withContext(personalization, PERSONALISATION_CONTEXT); Loading @@ -197,28 +201,28 @@ public class SyntheticPasswordManager { } public byte[] deriveKeyStorePassword() { return bytesToHex(derivePassword(PERSONALIZATION_KEY_STORE_PASSWORD)); return bytesToHex(deriveSubkey(PERSONALIZATION_KEY_STORE_PASSWORD)); } public byte[] deriveGkPassword() { return derivePassword(PERSONALIZATION_SP_GK_AUTH); return deriveSubkey(PERSONALIZATION_SP_GK_AUTH); } public byte[] deriveDiskEncryptionKey() { return derivePassword(PERSONALIZATION_FBE_KEY); return deriveSubkey(PERSONALIZATION_FBE_KEY); } public byte[] deriveVendorAuthSecret() { return derivePassword(PERSONALIZATION_AUTHSECRET_KEY); return deriveSubkey(PERSONALIZATION_AUTHSECRET_KEY); } public byte[] derivePasswordHashFactor() { return derivePassword(PERSONALIZATION_PASSWORD_HASH); return deriveSubkey(PERSONALIZATION_PASSWORD_HASH); } /** Derives key used to encrypt password metrics */ public byte[] deriveMetricsKey() { return derivePassword(PERSONALIZATION_PASSWORD_METRICS); return deriveSubkey(PERSONALIZATION_PASSWORD_METRICS); } /** Loading Loading
services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java +11 −7 Original line number Diff line number Diff line Loading @@ -186,7 +186,11 @@ public class SyntheticPasswordManager { 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) { return (new SP800Derive(mSyntheticPassword)) .withContext(personalization, PERSONALISATION_CONTEXT); Loading @@ -197,28 +201,28 @@ public class SyntheticPasswordManager { } public byte[] deriveKeyStorePassword() { return bytesToHex(derivePassword(PERSONALIZATION_KEY_STORE_PASSWORD)); return bytesToHex(deriveSubkey(PERSONALIZATION_KEY_STORE_PASSWORD)); } public byte[] deriveGkPassword() { return derivePassword(PERSONALIZATION_SP_GK_AUTH); return deriveSubkey(PERSONALIZATION_SP_GK_AUTH); } public byte[] deriveDiskEncryptionKey() { return derivePassword(PERSONALIZATION_FBE_KEY); return deriveSubkey(PERSONALIZATION_FBE_KEY); } public byte[] deriveVendorAuthSecret() { return derivePassword(PERSONALIZATION_AUTHSECRET_KEY); return deriveSubkey(PERSONALIZATION_AUTHSECRET_KEY); } public byte[] derivePasswordHashFactor() { return derivePassword(PERSONALIZATION_PASSWORD_HASH); return deriveSubkey(PERSONALIZATION_PASSWORD_HASH); } /** Derives key used to encrypt password metrics */ public byte[] deriveMetricsKey() { return derivePassword(PERSONALIZATION_PASSWORD_METRICS); return deriveSubkey(PERSONALIZATION_PASSWORD_METRICS); } /** Loading