Skip to content

Commit 8e6c07b

Browse files
eranmesAndroid (Google) Code Review
authored andcommitted
Merge "Key installation/generation in unmanaged mode" into ub-testdpc-qt
2 parents d5d7e4f + 18ccfb8 commit 8e6c07b

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

app/src/main/java/com/afwsamples/testdpc/policy/PolicyManagementFragment.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,16 +1286,22 @@ private void setStatusBarDisabled(boolean disable) {
12861286
@TargetApi(28)
12871287
private boolean installKeyPair(final PrivateKey key, final Certificate cert, final String alias,
12881288
boolean isUserSelectable) {
1289-
if (BuildCompat.isAtLeastP()) {
1290-
return mDevicePolicyManager.installKeyPair(
1291-
mAdminComponentName, key, new Certificate[]{cert}, alias,
1292-
isUserSelectable ? DevicePolicyManager.INSTALLKEY_SET_USER_SELECTABLE : 0);
1293-
} else {
1294-
if (!isUserSelectable) {
1295-
throw new IllegalArgumentException(
1296-
"Cannot set key as non-user-selectable prior to P");
1289+
try {
1290+
if (BuildCompat.isAtLeastP()) {
1291+
1292+
return mDevicePolicyManager.installKeyPair(
1293+
mAdminComponentName, key, new Certificate[]{cert}, alias,
1294+
isUserSelectable ? DevicePolicyManager.INSTALLKEY_SET_USER_SELECTABLE : 0);
1295+
} else {
1296+
if (!isUserSelectable) {
1297+
throw new IllegalArgumentException(
1298+
"Cannot set key as non-user-selectable prior to P");
1299+
}
1300+
return mDevicePolicyManager.installKeyPair(mAdminComponentName, key, cert, alias);
12971301
}
1298-
return mDevicePolicyManager.installKeyPair(mAdminComponentName, key, cert, alias);
1302+
} catch (SecurityException e) {
1303+
Log.w(TAG, "Not allowed to install keys", e);
1304+
return false;
12991305
}
13001306
}
13011307

app/src/main/java/com/afwsamples/testdpc/policy/keymanagement/GenerateKeyAndCertificateTask.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ protected AttestedKeyPair doInBackground(Void... voids) {
127127
Log.e(TAG, "Failed to create certificate", e);
128128
} catch (StrongBoxUnavailableException e) {
129129
Log.e(TAG, "StrongBox unavailable", e);
130+
} catch (SecurityException e) {
131+
Log.e(TAG, "Not permitted to generate key", e);
130132
}
131133

132134
return null;
@@ -150,7 +152,7 @@ private void showToast(int msgId, String extra) {
150152
Toast.makeText(
151153
mActivity,
152154
mActivity.getResources().getString(msgId) + " " + extra,
153-
Toast.LENGTH_SHORT);
155+
Toast.LENGTH_SHORT).show();
154156
}
155157

156158
@TargetApi(28)

app/src/main/res/xml/device_policy_header.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,13 @@
225225
android:key="install_key_certificate"
226226
android:title="@string/install_key_certificate"
227227
testdpc:minSdkVersion="L"
228+
testdpc:admin="any"
228229
testdpc:delegation="delegation-cert-install" />
229230
<com.afwsamples.testdpc.common.preference.DpcPreference
230231
android:key="remove_key_certificate"
231232
android:title="@string/remove_key_certificate"
232233
testdpc:minSdkVersion="N"
233-
testdpc:delegation="delegation-cert-install" />
234+
testdpc:admin="any" />
234235
<com.afwsamples.testdpc.common.preference.DpcEditTextPreference
235236
android:key="override_key_selection"
236237
android:title="@string/key_override_alias"
@@ -239,7 +240,7 @@
239240
android:key="generate_key_and_certificate"
240241
android:title="@string/generate_key_and_certificate"
241242
testdpc:minSdkVersion="P"
242-
testdpc:delegation="delegation-cert-install" />
243+
testdpc:admin="any" />
243244
<com.afwsamples.testdpc.common.preference.DpcPreference
244245
android:key="test_key_usability"
245246
android:title="@string/test_key_usage"

0 commit comments

Comments
 (0)