From fde28690ff2b2d6866f5c8dc2bb8aa7baa6db595 Mon Sep 17 00:00:00 2001 From: Alex Johnston Date: Tue, 15 Oct 2019 10:18:03 +0100 Subject: [PATCH] Added functionality to select type of certificate to be installed from the Settings app This is part of the changes to improve the UX and language for installing certificates. Previously, the different types of certificate used the same installation flow. This CL introduces a new settings page, where the type of certificate to be installed can be selected. Bug: 139173976 Test: Atest com.android.settings.security manual testing from Settings by selecting the certificate type preference and ensuring the installation flow still worked as expected. Change-Id: I6e0606b00c5f684571ffbd903b9cf55c6911fd0f --- core/proto/android/app/settings_enums.proto | 5 +++++ keystore/java/android/security/Credentials.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/core/proto/android/app/settings_enums.proto b/core/proto/android/app/settings_enums.proto index 94be61f40eae7..ea0b3bfa3c200 100644 --- a/core/proto/android/app/settings_enums.proto +++ b/core/proto/android/app/settings_enums.proto @@ -2426,4 +2426,9 @@ enum PageId { // and under gesture navigation mode. DIALOG_TOGGLE_SCREEN_MAGNIFICATION_GESTURE_NAVIGATION = 1802; + // OPEN: Settings > Security & screen lock -> Encryption & credentials > Install a certificate + // CATEGORY: SETTINGS + // OS: R + INSTALL_CERTIFICATE_FROM_STORAGE = 1803; + } diff --git a/keystore/java/android/security/Credentials.java b/keystore/java/android/security/Credentials.java index 54995ac9d0509..f25910beb537e 100644 --- a/keystore/java/android/security/Credentials.java +++ b/keystore/java/android/security/Credentials.java @@ -71,6 +71,15 @@ public class Credentials { /** Key containing suffix of lockdown VPN profile. */ public static final String LOCKDOWN_VPN = "LOCKDOWN_VPN"; + /** Name of CA certificate usage. */ + public static final String CERTIFICATE_USAGE_CA = "ca"; + + /** Name of User certificate usage. */ + public static final String CERTIFICATE_USAGE_USER = "user"; + + /** Name of WIFI certificate usage. */ + public static final String CERTIFICATE_USAGE_WIFI = "wifi"; + /** Data type for public keys. */ public static final String EXTRA_PUBLIC_KEY = "KEY"; @@ -90,6 +99,11 @@ public class Credentials { */ public static final String EXTRA_INSTALL_AS_UID = "install_as_uid"; + /** + * Intent extra: type of the certificate to install + */ + public static final String EXTRA_CERTIFICATE_USAGE = "certificate_install_usage"; + /** * Intent extra: name for the user's key pair. */