aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2020-07-29 03:39:12 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-07-29 03:39:12 +0000
commitc5f0d59a3d37818992a6a53d9383925b5ce1a816 (patch)
tree5cb709a63204c5924529a8f00af0d74d5ecf8dff
parent1d20368acabe397134124ce4eeede9f736f95f67 (diff)
parent6facb40a23be06104991c949797596c72680d3a3 (diff)
downloadsupport-sparse-6719730-L62000000753047059.tar.gz
-rw-r--r--buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt2
-rw-r--r--security/crypto/api/1.0.0-rc03.txt49
-rw-r--r--security/crypto/api/public_plus_experimental_1.0.0-rc03.txt49
-rw-r--r--security/crypto/api/res-1.0.0-rc03.txt0
-rw-r--r--security/crypto/api/restricted_1.0.0-rc03.txt49
-rw-r--r--security/crypto/build.gradle2
-rw-r--r--security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java11
-rw-r--r--security/crypto/src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java1
8 files changed, 161 insertions, 2 deletions
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
index b72b280dfdb..dfca2fd2703 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
@@ -89,7 +89,7 @@ object LibraryVersions {
val REMOTECALLBACK = Version("1.0.0-alpha02")
val ROOM = Version("2.3.0-alpha01")
val SAVEDSTATE = Version("1.1.0-alpha01")
- val SECURITY = Version("1.0.0-rc02")
+ val SECURITY = Version("1.0.0-rc03")
val SECURITY_BIOMETRIC = Version("1.0.0-alpha01")
val SECURITY_IDENTITY_CREDENTIAL = Version("1.0.0-alpha01")
val SERIALIZATION = Version("1.0.0-alpha01")
diff --git a/security/crypto/api/1.0.0-rc03.txt b/security/crypto/api/1.0.0-rc03.txt
new file mode 100644
index 00000000000..3fb36a894d1
--- /dev/null
+++ b/security/crypto/api/1.0.0-rc03.txt
@@ -0,0 +1,49 @@
+// Signature format: 3.0
+package androidx.security.crypto {
+
+ public final class EncryptedFile {
+ method public java.io.FileInputStream openFileInput() throws java.security.GeneralSecurityException, java.io.IOException;
+ method public java.io.FileOutputStream openFileOutput() throws java.security.GeneralSecurityException, java.io.IOException;
+ }
+
+ public static final class EncryptedFile.Builder {
+ ctor public EncryptedFile.Builder(java.io.File, android.content.Context, String, androidx.security.crypto.EncryptedFile.FileEncryptionScheme);
+ method public androidx.security.crypto.EncryptedFile build() throws java.security.GeneralSecurityException, java.io.IOException;
+ method public androidx.security.crypto.EncryptedFile.Builder setKeysetAlias(String);
+ method public androidx.security.crypto.EncryptedFile.Builder setKeysetPrefName(String);
+ }
+
+ public enum EncryptedFile.FileEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedFile.FileEncryptionScheme AES256_GCM_HKDF_4KB;
+ }
+
+ public final class EncryptedSharedPreferences implements android.content.SharedPreferences {
+ method public boolean contains(String?);
+ method public static android.content.SharedPreferences create(String, String, android.content.Context, androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme, androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme) throws java.security.GeneralSecurityException, java.io.IOException;
+ method public android.content.SharedPreferences.Editor edit();
+ method public java.util.Map<java.lang.String!,?> getAll();
+ method public boolean getBoolean(String?, boolean);
+ method public float getFloat(String?, float);
+ method public int getInt(String?, int);
+ method public long getLong(String?, long);
+ method public String? getString(String?, String?);
+ method public java.util.Set<java.lang.String!>? getStringSet(String?, java.util.Set<java.lang.String!>?);
+ method public void registerOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+ method public void unregisterOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+ }
+
+ public enum EncryptedSharedPreferences.PrefKeyEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme AES256_SIV;
+ }
+
+ public enum EncryptedSharedPreferences.PrefValueEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme AES256_GCM;
+ }
+
+ public final class MasterKeys {
+ method public static String getOrCreate(android.security.keystore.KeyGenParameterSpec) throws java.security.GeneralSecurityException, java.io.IOException;
+ field public static final android.security.keystore.KeyGenParameterSpec AES256_GCM_SPEC;
+ }
+
+}
+
diff --git a/security/crypto/api/public_plus_experimental_1.0.0-rc03.txt b/security/crypto/api/public_plus_experimental_1.0.0-rc03.txt
new file mode 100644
index 00000000000..3fb36a894d1
--- /dev/null
+++ b/security/crypto/api/public_plus_experimental_1.0.0-rc03.txt
@@ -0,0 +1,49 @@
+// Signature format: 3.0
+package androidx.security.crypto {
+
+ public final class EncryptedFile {
+ method public java.io.FileInputStream openFileInput() throws java.security.GeneralSecurityException, java.io.IOException;
+ method public java.io.FileOutputStream openFileOutput() throws java.security.GeneralSecurityException, java.io.IOException;
+ }
+
+ public static final class EncryptedFile.Builder {
+ ctor public EncryptedFile.Builder(java.io.File, android.content.Context, String, androidx.security.crypto.EncryptedFile.FileEncryptionScheme);
+ method public androidx.security.crypto.EncryptedFile build() throws java.security.GeneralSecurityException, java.io.IOException;
+ method public androidx.security.crypto.EncryptedFile.Builder setKeysetAlias(String);
+ method public androidx.security.crypto.EncryptedFile.Builder setKeysetPrefName(String);
+ }
+
+ public enum EncryptedFile.FileEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedFile.FileEncryptionScheme AES256_GCM_HKDF_4KB;
+ }
+
+ public final class EncryptedSharedPreferences implements android.content.SharedPreferences {
+ method public boolean contains(String?);
+ method public static android.content.SharedPreferences create(String, String, android.content.Context, androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme, androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme) throws java.security.GeneralSecurityException, java.io.IOException;
+ method public android.content.SharedPreferences.Editor edit();
+ method public java.util.Map<java.lang.String!,?> getAll();
+ method public boolean getBoolean(String?, boolean);
+ method public float getFloat(String?, float);
+ method public int getInt(String?, int);
+ method public long getLong(String?, long);
+ method public String? getString(String?, String?);
+ method public java.util.Set<java.lang.String!>? getStringSet(String?, java.util.Set<java.lang.String!>?);
+ method public void registerOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+ method public void unregisterOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+ }
+
+ public enum EncryptedSharedPreferences.PrefKeyEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme AES256_SIV;
+ }
+
+ public enum EncryptedSharedPreferences.PrefValueEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme AES256_GCM;
+ }
+
+ public final class MasterKeys {
+ method public static String getOrCreate(android.security.keystore.KeyGenParameterSpec) throws java.security.GeneralSecurityException, java.io.IOException;
+ field public static final android.security.keystore.KeyGenParameterSpec AES256_GCM_SPEC;
+ }
+
+}
+
diff --git a/security/crypto/api/res-1.0.0-rc03.txt b/security/crypto/api/res-1.0.0-rc03.txt
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/security/crypto/api/res-1.0.0-rc03.txt
diff --git a/security/crypto/api/restricted_1.0.0-rc03.txt b/security/crypto/api/restricted_1.0.0-rc03.txt
new file mode 100644
index 00000000000..3fb36a894d1
--- /dev/null
+++ b/security/crypto/api/restricted_1.0.0-rc03.txt
@@ -0,0 +1,49 @@
+// Signature format: 3.0
+package androidx.security.crypto {
+
+ public final class EncryptedFile {
+ method public java.io.FileInputStream openFileInput() throws java.security.GeneralSecurityException, java.io.IOException;
+ method public java.io.FileOutputStream openFileOutput() throws java.security.GeneralSecurityException, java.io.IOException;
+ }
+
+ public static final class EncryptedFile.Builder {
+ ctor public EncryptedFile.Builder(java.io.File, android.content.Context, String, androidx.security.crypto.EncryptedFile.FileEncryptionScheme);
+ method public androidx.security.crypto.EncryptedFile build() throws java.security.GeneralSecurityException, java.io.IOException;
+ method public androidx.security.crypto.EncryptedFile.Builder setKeysetAlias(String);
+ method public androidx.security.crypto.EncryptedFile.Builder setKeysetPrefName(String);
+ }
+
+ public enum EncryptedFile.FileEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedFile.FileEncryptionScheme AES256_GCM_HKDF_4KB;
+ }
+
+ public final class EncryptedSharedPreferences implements android.content.SharedPreferences {
+ method public boolean contains(String?);
+ method public static android.content.SharedPreferences create(String, String, android.content.Context, androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme, androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme) throws java.security.GeneralSecurityException, java.io.IOException;
+ method public android.content.SharedPreferences.Editor edit();
+ method public java.util.Map<java.lang.String!,?> getAll();
+ method public boolean getBoolean(String?, boolean);
+ method public float getFloat(String?, float);
+ method public int getInt(String?, int);
+ method public long getLong(String?, long);
+ method public String? getString(String?, String?);
+ method public java.util.Set<java.lang.String!>? getStringSet(String?, java.util.Set<java.lang.String!>?);
+ method public void registerOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+ method public void unregisterOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener);
+ }
+
+ public enum EncryptedSharedPreferences.PrefKeyEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme AES256_SIV;
+ }
+
+ public enum EncryptedSharedPreferences.PrefValueEncryptionScheme {
+ enum_constant public static final androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme AES256_GCM;
+ }
+
+ public final class MasterKeys {
+ method public static String getOrCreate(android.security.keystore.KeyGenParameterSpec) throws java.security.GeneralSecurityException, java.io.IOException;
+ field public static final android.security.keystore.KeyGenParameterSpec AES256_GCM_SPEC;
+ }
+
+}
+
diff --git a/security/crypto/build.gradle b/security/crypto/build.gradle
index 2bd04a689a2..4403e5836a2 100644
--- a/security/crypto/build.gradle
+++ b/security/crypto/build.gradle
@@ -28,7 +28,7 @@ plugins {
dependencies {
api("androidx.annotation:annotation:1.1.0")
- implementation("com.google.crypto.tink:tink-android:1.4.0-rc2")
+ implementation("com.google.crypto.tink:tink-android:1.4.0")
androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
androidTestImplementation(ANDROIDX_TEST_CORE)
diff --git a/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java b/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java
index 5e9f0adf6c9..0807ca9fd7e 100644
--- a/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java
+++ b/security/crypto/src/androidTest/java/androidx/security/crypto/EncryptedSharedPreferencesTest.java
@@ -332,6 +332,17 @@ public class EncryptedSharedPreferencesTest {
Assert.assertEquals("Data should not exist", null,
sharedPreferences.getString(twiceKey, null));
+ editor.clear();
+ editor.commit();
+
+ // test clear after put with apply
+ editor.putString("New Data", "New");
+ editor.apply();
+ editor.clear();
+ editor.apply();
+
+ Assert.assertEquals("Get all size should be equal", 0,
+ sharedPreferences.getAll().size());
}
@Test
diff --git a/security/crypto/src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java b/security/crypto/src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java
index 5223548ad0f..b7dbdc9e517 100644
--- a/security/crypto/src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java
+++ b/security/crypto/src/main/java/androidx/security/crypto/EncryptedSharedPreferences.java
@@ -313,6 +313,7 @@ public final class EncryptedSharedPreferences implements SharedPreferences {
clearKeysIfNeeded();
mEditor.apply();
notifyListeners();
+ mKeysChanged.clear();
}
private void clearKeysIfNeeded() {