From ebe5327a1549cd6b8505abc6a51304a9e30a2d3b Mon Sep 17 00:00:00 2001 From: Dmitry Dementyev Date: Tue, 5 Mar 2019 13:33:24 -0800 Subject: [PATCH] Add @NonNull annotation to RecoveryController Builders Bug: 126702367 Test: builder. Change-Id: Id7bf7799602fff6d5dd1f364fe26ef18db4f5686 --- api/system-current.txt | 14 ++++++------ .../recovery/KeyChainProtectionParams.java | 12 +++++----- .../keystore/recovery/KeyChainSnapshot.java | 22 ++++++++++--------- .../recovery/KeyDerivationParams.java | 2 +- .../keystore/recovery/RecoveryCertPath.java | 2 +- .../keystore/recovery/RecoveryController.java | 1 + .../keystore/recovery/RecoverySession.java | 2 +- .../recovery/WrappedApplicationKey.java | 10 ++++----- 8 files changed, 34 insertions(+), 31 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 7cd8c143dfd75..7c3b809711ead 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6224,10 +6224,10 @@ package android.security.keystore.recovery { public static class KeyChainProtectionParams.Builder { ctor public KeyChainProtectionParams.Builder(); method @NonNull public android.security.keystore.recovery.KeyChainProtectionParams build(); - method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setKeyDerivationParams(@NonNull android.security.keystore.recovery.KeyDerivationParams); - method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setLockScreenUiFormat(int); - method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setSecret(@NonNull byte[]); - method public android.security.keystore.recovery.KeyChainProtectionParams.Builder setUserSecretType(int); + method @NonNull public android.security.keystore.recovery.KeyChainProtectionParams.Builder setKeyDerivationParams(@NonNull android.security.keystore.recovery.KeyDerivationParams); + method @NonNull public android.security.keystore.recovery.KeyChainProtectionParams.Builder setLockScreenUiFormat(int); + method @NonNull public android.security.keystore.recovery.KeyChainProtectionParams.Builder setSecret(@NonNull byte[]); + method @NonNull public android.security.keystore.recovery.KeyChainProtectionParams.Builder setUserSecretType(int); } public final class KeyChainSnapshot implements android.os.Parcelable { @@ -6308,9 +6308,9 @@ package android.security.keystore.recovery { public static class WrappedApplicationKey.Builder { ctor public WrappedApplicationKey.Builder(); method @NonNull public android.security.keystore.recovery.WrappedApplicationKey build(); - method public android.security.keystore.recovery.WrappedApplicationKey.Builder setAlias(@NonNull String); - method public android.security.keystore.recovery.WrappedApplicationKey.Builder setEncryptedKeyMaterial(@NonNull byte[]); - method public android.security.keystore.recovery.WrappedApplicationKey.Builder setMetadata(@Nullable byte[]); + method @NonNull public android.security.keystore.recovery.WrappedApplicationKey.Builder setAlias(@NonNull String); + method @NonNull public android.security.keystore.recovery.WrappedApplicationKey.Builder setEncryptedKeyMaterial(@NonNull byte[]); + method @NonNull public android.security.keystore.recovery.WrappedApplicationKey.Builder setMetadata(@Nullable byte[]); } } diff --git a/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java b/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java index 8f6b6ec13c50c..8801217f9ebe0 100644 --- a/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java +++ b/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java @@ -165,7 +165,7 @@ public final class KeyChainProtectionParams implements Parcelable { * @param userSecretType The secret type * @return This builder. */ - public Builder setUserSecretType(@UserSecretType int userSecretType) { + public @NonNull Builder setUserSecretType(@UserSecretType int userSecretType) { mInstance.mUserSecretType = userSecretType; return this; } @@ -179,7 +179,7 @@ public final class KeyChainProtectionParams implements Parcelable { * @param lockScreenUiFormat The UI format * @return This builder. */ - public Builder setLockScreenUiFormat(@LockScreenUiFormat int lockScreenUiFormat) { + public @NonNull Builder setLockScreenUiFormat(@LockScreenUiFormat int lockScreenUiFormat) { mInstance.mLockScreenUiFormat = lockScreenUiFormat; return this; } @@ -190,7 +190,7 @@ public final class KeyChainProtectionParams implements Parcelable { * @param keyDerivationParams Key derivation parameters * @return This builder. */ - public Builder setKeyDerivationParams(@NonNull KeyDerivationParams + public @NonNull Builder setKeyDerivationParams(@NonNull KeyDerivationParams keyDerivationParams) { mInstance.mKeyDerivationParams = keyDerivationParams; return this; @@ -202,7 +202,7 @@ public final class KeyChainProtectionParams implements Parcelable { * @param secret The secret. * @return This builder. */ - public Builder setSecret(@NonNull byte[] secret) { + public @NonNull Builder setSecret(@NonNull byte[] secret) { mInstance.mSecret = secret; return this; } @@ -216,7 +216,7 @@ public final class KeyChainProtectionParams implements Parcelable { * @return new instance * @throws NullPointerException if some required fields were not set. */ - @NonNull public KeyChainProtectionParams build() { + public @NonNull KeyChainProtectionParams build() { if (mInstance.mUserSecretType == null) { mInstance.mUserSecretType = TYPE_LOCKSCREEN; } @@ -236,7 +236,7 @@ public final class KeyChainProtectionParams implements Parcelable { Arrays.fill(mSecret, (byte) 0); } - public static final @android.annotation.NonNull Parcelable.Creator CREATOR = + public static final @NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { public KeyChainProtectionParams createFromParcel(Parcel in) { return new KeyChainProtectionParams(in); diff --git a/core/java/android/security/keystore/recovery/KeyChainSnapshot.java b/core/java/android/security/keystore/recovery/KeyChainSnapshot.java index 18517aaf84bf0..2f584717ec6fd 100644 --- a/core/java/android/security/keystore/recovery/KeyChainSnapshot.java +++ b/core/java/android/security/keystore/recovery/KeyChainSnapshot.java @@ -147,7 +147,7 @@ public final class KeyChainSnapshot implements Parcelable { return mEncryptedRecoveryKeyBlob; } - public static final @android.annotation.NonNull Creator CREATOR = + public static final @NonNull Creator CREATOR = new Creator() { public KeyChainSnapshot createFromParcel(Parcel in) { return new KeyChainSnapshot(in); @@ -171,7 +171,7 @@ public final class KeyChainSnapshot implements Parcelable { * @param snapshotVersion The snapshot version * @return This builder. */ - public Builder setSnapshotVersion(int snapshotVersion) { + public @NonNull Builder setSnapshotVersion(int snapshotVersion) { mInstance.mSnapshotVersion = snapshotVersion; return this; } @@ -182,7 +182,7 @@ public final class KeyChainSnapshot implements Parcelable { * @param maxAttempts The maximum number of guesses. * @return This builder. */ - public Builder setMaxAttempts(int maxAttempts) { + public @NonNull Builder setMaxAttempts(int maxAttempts) { mInstance.mMaxAttempts = maxAttempts; return this; } @@ -193,7 +193,7 @@ public final class KeyChainSnapshot implements Parcelable { * @param counterId The counter id. * @return This builder. */ - public Builder setCounterId(long counterId) { + public @NonNull Builder setCounterId(long counterId) { mInstance.mCounterId = counterId; return this; } @@ -204,7 +204,7 @@ public final class KeyChainSnapshot implements Parcelable { * @param serverParams The server parameters * @return This builder. */ - public Builder setServerParams(byte[] serverParams) { + public @NonNull Builder setServerParams(byte[] serverParams) { mInstance.mServerParams = serverParams; return this; } @@ -218,7 +218,7 @@ public final class KeyChainSnapshot implements Parcelable { * @throws CertificateException if the given certificate path cannot be encoded properly * @return This builder. */ - public Builder setTrustedHardwareCertPath(@NonNull CertPath certPath) + public @NonNull Builder setTrustedHardwareCertPath(@NonNull CertPath certPath) throws CertificateException { mInstance.mCertPath = RecoveryCertPath.createRecoveryCertPath(certPath); return this; @@ -230,7 +230,7 @@ public final class KeyChainSnapshot implements Parcelable { * @param keyChainProtectionParams The UI and key derivation parameters * @return This builder. */ - public Builder setKeyChainProtectionParams( + public @NonNull Builder setKeyChainProtectionParams( @NonNull List keyChainProtectionParams) { mInstance.mKeyChainProtectionParams = keyChainProtectionParams; return this; @@ -242,7 +242,8 @@ public final class KeyChainSnapshot implements Parcelable { * @param entryRecoveryData List of application keys * @return This builder. */ - public Builder setWrappedApplicationKeys(List entryRecoveryData) { + public @NonNull Builder setWrappedApplicationKeys( + @NonNull List entryRecoveryData) { mInstance.mEntryRecoveryData = entryRecoveryData; return this; } @@ -253,7 +254,8 @@ public final class KeyChainSnapshot implements Parcelable { * @param encryptedRecoveryKeyBlob The recovery key blob. * @return This builder. */ - public Builder setEncryptedRecoveryKeyBlob(@NonNull byte[] encryptedRecoveryKeyBlob) { + public @NonNull Builder setEncryptedRecoveryKeyBlob( + @NonNull byte[] encryptedRecoveryKeyBlob) { mInstance.mEncryptedRecoveryKeyBlob = encryptedRecoveryKeyBlob; return this; } @@ -265,7 +267,7 @@ public final class KeyChainSnapshot implements Parcelable { * @return new instance * @throws NullPointerException if some of the required fields were not set. */ - @NonNull public KeyChainSnapshot build() { + public @NonNull KeyChainSnapshot build() { Preconditions.checkCollectionElementsNotNull(mInstance.mKeyChainProtectionParams, "keyChainProtectionParams"); Preconditions.checkCollectionElementsNotNull(mInstance.mEntryRecoveryData, diff --git a/core/java/android/security/keystore/recovery/KeyDerivationParams.java b/core/java/android/security/keystore/recovery/KeyDerivationParams.java index 6d1533ecb6f4f..d036d144aaa1c 100644 --- a/core/java/android/security/keystore/recovery/KeyDerivationParams.java +++ b/core/java/android/security/keystore/recovery/KeyDerivationParams.java @@ -140,7 +140,7 @@ public final class KeyDerivationParams implements Parcelable { return mMemoryDifficulty; } - public static final @android.annotation.NonNull Parcelable.Creator CREATOR = + public static final @NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { public KeyDerivationParams createFromParcel(Parcel in) { return new KeyDerivationParams(in); diff --git a/core/java/android/security/keystore/recovery/RecoveryCertPath.java b/core/java/android/security/keystore/recovery/RecoveryCertPath.java index 04e965f062de3..51bd2ae0d0668 100644 --- a/core/java/android/security/keystore/recovery/RecoveryCertPath.java +++ b/core/java/android/security/keystore/recovery/RecoveryCertPath.java @@ -74,7 +74,7 @@ public final class RecoveryCertPath implements Parcelable { mEncodedCertPath = in.createByteArray(); } - public static final @android.annotation.NonNull Parcelable.Creator CREATOR = + public static final @NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { public RecoveryCertPath createFromParcel(Parcel in) { return new RecoveryCertPath(in); diff --git a/core/java/android/security/keystore/recovery/RecoveryController.java b/core/java/android/security/keystore/recovery/RecoveryController.java index a88aa8cb44015..cc3e57859b648 100644 --- a/core/java/android/security/keystore/recovery/RecoveryController.java +++ b/core/java/android/security/keystore/recovery/RecoveryController.java @@ -283,6 +283,7 @@ public class RecoveryController { */ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE) @NonNull public static RecoveryController getInstance(@NonNull Context context) { + // lockSettings may be null. ILockSettings lockSettings = ILockSettings.Stub.asInterface(ServiceManager.getService("lock_settings")); return new RecoveryController(lockSettings, KeyStore.getInstance()); diff --git a/core/java/android/security/keystore/recovery/RecoverySession.java b/core/java/android/security/keystore/recovery/RecoverySession.java index 2b2438ad2e112..3e595e0ce8591 100644 --- a/core/java/android/security/keystore/recovery/RecoverySession.java +++ b/core/java/android/security/keystore/recovery/RecoverySession.java @@ -193,7 +193,7 @@ public class RecoverySession implements AutoCloseable { * * @hide */ - String getSessionId() { + @NonNull String getSessionId() { return mSessionId; } diff --git a/core/java/android/security/keystore/recovery/WrappedApplicationKey.java b/core/java/android/security/keystore/recovery/WrappedApplicationKey.java index c6e62726ae604..665c937591a38 100644 --- a/core/java/android/security/keystore/recovery/WrappedApplicationKey.java +++ b/core/java/android/security/keystore/recovery/WrappedApplicationKey.java @@ -72,7 +72,7 @@ public final class WrappedApplicationKey implements Parcelable { * @param alias The alias. * @return This builder. */ - public Builder setAlias(@NonNull String alias) { + public @NonNull Builder setAlias(@NonNull String alias) { mInstance.mAlias = alias; return this; } @@ -83,7 +83,7 @@ public final class WrappedApplicationKey implements Parcelable { * @param encryptedKeyMaterial The key material * @return This builder */ - public Builder setEncryptedKeyMaterial(@NonNull byte[] encryptedKeyMaterial) { + public @NonNull Builder setEncryptedKeyMaterial(@NonNull byte[] encryptedKeyMaterial) { mInstance.mEncryptedKeyMaterial = encryptedKeyMaterial; return this; } @@ -94,7 +94,7 @@ public final class WrappedApplicationKey implements Parcelable { * @param metadata The metadata * @return This builder */ - public Builder setMetadata(@Nullable byte[] metadata) { + public @NonNull Builder setMetadata(@Nullable byte[] metadata) { mInstance.mMetadata = metadata; return this; } @@ -105,7 +105,7 @@ public final class WrappedApplicationKey implements Parcelable { * @return new instance * @throws NullPointerException if some required fields were not set. */ - @NonNull public WrappedApplicationKey build() { + public @NonNull WrappedApplicationKey build() { Preconditions.checkNotNull(mInstance.mAlias); Preconditions.checkNotNull(mInstance.mEncryptedKeyMaterial); return mInstance; @@ -143,7 +143,7 @@ public final class WrappedApplicationKey implements Parcelable { return mMetadata; } - public static final @android.annotation.NonNull Parcelable.Creator CREATOR = + public static final @NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { public WrappedApplicationKey createFromParcel(Parcel in) { return new WrappedApplicationKey(in);