From: Robert Berry Date: Mon, 26 Feb 2018 16:31:01 +0000 (+0000) Subject: Mark all old RecoveryController APIs as deprecated X-Git-Tag: android-x86-9.0-r1~194^2~51^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8cb582d8bc72a57bee64770c439a7b2e4f77adbe;p=android-x86%2Fframeworks-base.git Mark all old RecoveryController APIs as deprecated Test: none, no functionality changed Change-Id: I0ff1d169b1597bf6e4447f52b0685874e7ec3745 --- diff --git a/core/java/android/security/keystore/BadCertificateFormatException.java b/core/java/android/security/keystore/BadCertificateFormatException.java index ddc7bd2366ac..c51b7737e823 100644 --- a/core/java/android/security/keystore/BadCertificateFormatException.java +++ b/core/java/android/security/keystore/BadCertificateFormatException.java @@ -17,8 +17,7 @@ package android.security.keystore; /** - * Error thrown when the recovery agent supplies an invalid X509 certificate. - * + * @deprecated Use {@link android.security.keystore.recovery.BadCertificateFormatException}. * @hide */ public class BadCertificateFormatException extends RecoveryControllerException { diff --git a/core/java/android/security/keystore/DecryptionFailedException.java b/core/java/android/security/keystore/DecryptionFailedException.java index 945fcf6f88f2..c0b52f714d0b 100644 --- a/core/java/android/security/keystore/DecryptionFailedException.java +++ b/core/java/android/security/keystore/DecryptionFailedException.java @@ -17,9 +17,7 @@ package android.security.keystore; /** - * Error thrown when decryption failed, due to an agent error. i.e., using the incorrect key, - * trying to decrypt garbage data, trying to decrypt data that has somehow been corrupted, etc. - * + * @deprecated Use {@link android.security.keystore.recovery.DecryptionFailedException}. * @hide */ public class DecryptionFailedException extends RecoveryControllerException { diff --git a/core/java/android/security/keystore/InternalRecoveryServiceException.java b/core/java/android/security/keystore/InternalRecoveryServiceException.java index 85829bed9191..40076f732b98 100644 --- a/core/java/android/security/keystore/InternalRecoveryServiceException.java +++ b/core/java/android/security/keystore/InternalRecoveryServiceException.java @@ -17,11 +17,7 @@ package android.security.keystore; /** - * An error thrown when something went wrong internally in the recovery service. - * - *

This is an unexpected error, and indicates a problem with the service itself, rather than the - * caller having performed some kind of illegal action. - * + * @deprecated Use {@link android.security.keystore.recovery.InternalRecoveryServiceException}. * @hide */ public class InternalRecoveryServiceException extends RecoveryControllerException { diff --git a/core/java/android/security/keystore/KeyDerivationParams.java b/core/java/android/security/keystore/KeyDerivationParams.java index b19cee2d31a4..e475dc36e1c3 100644 --- a/core/java/android/security/keystore/KeyDerivationParams.java +++ b/core/java/android/security/keystore/KeyDerivationParams.java @@ -27,9 +27,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** - * Collection of parameters which define a key derivation function. - * Currently only supports salted SHA-256 - * + * @deprecated Use {@link android.security.keystore.recovery.KeyDerivationParams}. * @hide */ public final class KeyDerivationParams implements Parcelable { diff --git a/core/java/android/security/keystore/KeychainProtectionParams.java b/core/java/android/security/keystore/KeychainProtectionParams.java index a940fdc778a9..19a087d5d1d4 100644 --- a/core/java/android/security/keystore/KeychainProtectionParams.java +++ b/core/java/android/security/keystore/KeychainProtectionParams.java @@ -28,23 +28,7 @@ import java.lang.annotation.RetentionPolicy; import java.util.Arrays; /** - * A {@link KeychainSnapshot} is protected with a key derived from the user's lock screen. This - * class wraps all the data necessary to derive the same key on a recovering device: - * - *

- * - *

As such, this data is sent along with the {@link KeychainSnapshot} when syncing the current - * version of the keychain. - * - *

For now, the recoverable keychain only supports a single layer of protection, which is the - * user's lock screen. In the future, the keychain will support multiple layers of protection - * (e.g. an additional keychain password, along with the lock screen). - * + * @deprecated Use {@link android.security.keystore.recovery.KeyChainProtectionParams}. * @hide */ public final class KeychainProtectionParams implements Parcelable { diff --git a/core/java/android/security/keystore/KeychainSnapshot.java b/core/java/android/security/keystore/KeychainSnapshot.java index 23aec25eb128..cf18fd1c6a0b 100644 --- a/core/java/android/security/keystore/KeychainSnapshot.java +++ b/core/java/android/security/keystore/KeychainSnapshot.java @@ -25,21 +25,7 @@ import com.android.internal.util.Preconditions; import java.util.List; /** - * A snapshot of a version of the keystore. Two events can trigger the generation of a new snapshot: - * - *

- * - *

The snapshot data is also encrypted with the remote trusted hardware's public key, so even - * the recovery agent itself should not be able to decipher the data. The recovery agent sends an - * instance of this to the remote trusted hardware whenever a new snapshot is generated. During a - * recovery flow, the recovery agent retrieves a snapshot from the remote trusted hardware. It then - * sends it to the framework, where it is decrypted using the user's lock screen from their previous - * device. - * + * @deprecated Use {@link android.security.keystore.recovery.KeyChainSnapshot}. * @hide */ public final class KeychainSnapshot implements Parcelable { diff --git a/core/java/android/security/keystore/LockScreenRequiredException.java b/core/java/android/security/keystore/LockScreenRequiredException.java index b07fb9cdd002..097028457c9e 100644 --- a/core/java/android/security/keystore/LockScreenRequiredException.java +++ b/core/java/android/security/keystore/LockScreenRequiredException.java @@ -17,10 +17,7 @@ package android.security.keystore; /** - * Error thrown when trying to generate keys for a profile that has no lock screen set. - * - *

A lock screen must be set, as the lock screen is used to encrypt the snapshot. - * + * @deprecated Use {@link android.security.keystore.recovery.LockScreenRequiredException}. * @hide */ public class LockScreenRequiredException extends RecoveryControllerException { diff --git a/core/java/android/security/keystore/RecoveryClaim.java b/core/java/android/security/keystore/RecoveryClaim.java index 6f566af1dc7d..12be607a23d4 100644 --- a/core/java/android/security/keystore/RecoveryClaim.java +++ b/core/java/android/security/keystore/RecoveryClaim.java @@ -17,8 +17,7 @@ package android.security.keystore; /** - * An attempt to recover a keychain protected by remote secure hardware. - * + * @deprecated Use {@link android.security.keystore.recovery.RecoverySession}. * @hide */ public class RecoveryClaim { diff --git a/core/java/android/security/keystore/RecoveryController.java b/core/java/android/security/keystore/RecoveryController.java index 4a0de5f2c7f0..145261e3b71d 100644 --- a/core/java/android/security/keystore/RecoveryController.java +++ b/core/java/android/security/keystore/RecoveryController.java @@ -31,22 +31,6 @@ import java.util.List; import java.util.Map; /** - * An assistant for generating {@link javax.crypto.SecretKey} instances that can be recovered by - * other Android devices belonging to the user. The exported keychain is protected by the user's - * lock screen. - * - *

The RecoveryController must be paired with a recovery agent. The recovery agent is responsible - * for transporting the keychain to remote trusted hardware. This hardware must prevent brute force - * attempts against the user's lock screen by limiting the number of allowed guesses (to, e.g., 10). - * After that number of incorrect guesses, the trusted hardware no longer allows access to the - * key chain. - * - *

For now only the recovery agent itself is able to create keys, so it is expected that the - * recovery agent is itself the system app. - * - *

A recovery agent requires the privileged permission - * {@code android.Manifest.permission#RECOVER_KEYSTORE}. - * * @deprecated Use {@link android.security.keystore.recovery.RecoveryController}. * @hide */ diff --git a/core/java/android/security/keystore/RecoveryControllerException.java b/core/java/android/security/keystore/RecoveryControllerException.java index 5b806b75ebab..f990c236c9d3 100644 --- a/core/java/android/security/keystore/RecoveryControllerException.java +++ b/core/java/android/security/keystore/RecoveryControllerException.java @@ -19,8 +19,7 @@ package android.security.keystore; import java.security.GeneralSecurityException; /** - * Base exception for errors thrown by {@link RecoveryController}. - * + * @deprecated Use {@link android.security.keystore.recovery.RecoveryController}. * @hide */ public abstract class RecoveryControllerException extends GeneralSecurityException { diff --git a/core/java/android/security/keystore/RecoverySession.java b/core/java/android/security/keystore/RecoverySession.java index ae8d91af3230..8a3e06b7deb1 100644 --- a/core/java/android/security/keystore/RecoverySession.java +++ b/core/java/android/security/keystore/RecoverySession.java @@ -19,9 +19,7 @@ package android.security.keystore; import java.security.SecureRandom; /** - * Session to recover a {@link KeychainSnapshot} from the remote trusted hardware, initiated by a - * recovery agent. - * + * @deprecated Use {@link android.security.keystore.recovery.RecoverySession}. * @hide */ public class RecoverySession implements AutoCloseable { diff --git a/core/java/android/security/keystore/SessionExpiredException.java b/core/java/android/security/keystore/SessionExpiredException.java index f13e20602625..7c8d5e4f52f9 100644 --- a/core/java/android/security/keystore/SessionExpiredException.java +++ b/core/java/android/security/keystore/SessionExpiredException.java @@ -17,8 +17,7 @@ package android.security.keystore; /** - * Error thrown when attempting to use a {@link RecoverySession} that has since expired. - * + * @deprecated Use {@link android.security.keystore.recovery.SessionExpiredException}. * @hide */ public class SessionExpiredException extends RecoveryControllerException { diff --git a/core/java/android/security/keystore/WrappedApplicationKey.java b/core/java/android/security/keystore/WrappedApplicationKey.java index 522bb9557b8d..2ce8c7d395d5 100644 --- a/core/java/android/security/keystore/WrappedApplicationKey.java +++ b/core/java/android/security/keystore/WrappedApplicationKey.java @@ -23,16 +23,7 @@ import android.os.Parcelable; import com.android.internal.util.Preconditions; /** - * Helper class with data necessary recover a single application key, given a recovery key. - * - *

- * - * Note that Application info is not included. Recovery Agent can only make its own keys - * recoverable. - * + * @deprecated Use {@link android.security.keystore.recovery.WrappedApplicationKey}. * @hide */ public final class WrappedApplicationKey implements Parcelable {