diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index 57f43f4..ab1c84b 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -318,7 +318,7 @@
     private void loadCertificates(Spinner spinner, String prefix, int firstId, String selected) {
         Context context = getContext();
         String first = (firstId == 0) ? "" : context.getString(firstId);
-        String[] certificates = mKeyStore.saw(prefix);
+        String[] certificates = mKeyStore.list(prefix);
 
         if (certificates == null || certificates.length == 0) {
             certificates = new String[] {first};
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index ba26e4a..6ed00f7 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -395,7 +395,7 @@
         }
 
         // We are the only user of profiles in KeyStore so no locks are needed.
-        for (String key : keyStore.saw(Credentials.VPN)) {
+        for (String key : keyStore.list(Credentials.VPN)) {
             final VpnProfile profile = VpnProfile.decode(key, keyStore.get(Credentials.VPN + key));
             if (profile != null && !ArrayUtils.contains(excludeTypes, profile.type)) {
                 result.add(profile);
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index d183546..1671c02 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -908,7 +908,7 @@
     private void loadCertificates(Spinner spinner, String prefix) {
         final Context context = mConfigUi.getContext();
 
-        String[] certs = KeyStore.getInstance().saw(prefix, android.os.Process.WIFI_UID);
+        String[] certs = KeyStore.getInstance().list(prefix, android.os.Process.WIFI_UID);
         if (certs == null || certs.length == 0) {
             certs = new String[] {unspecifiedCert};
         } else {
