summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2013-06-07 00:15:00 +0200
committerArne Schwabe <arne@rfc2549.org>2013-06-07 00:15:00 +0200
commitd596b51b383321531654726a5124a88cdcd9cd79 (patch)
tree78f79ac47fd113bc455c0b63b09111425b1cff4a
parent4ea518c9572a7c92362086332fe987ae31e6536e (diff)
Also use friendly names when printing keystore certificate
--HG-- extra : rebase_source : 4168ea0e489768c5fa2f5b54619d96e880e380c6
-rw-r--r--src/de/blinkt/openvpn/VpnProfile.java2
-rw-r--r--src/de/blinkt/openvpn/core/X509Utils.java38
2 files changed, 23 insertions, 17 deletions
diff --git a/src/de/blinkt/openvpn/VpnProfile.java b/src/de/blinkt/openvpn/VpnProfile.java
index 8b905a84..4c83bf81 100644
--- a/src/de/blinkt/openvpn/VpnProfile.java
+++ b/src/de/blinkt/openvpn/VpnProfile.java
@@ -574,7 +574,7 @@ public class VpnProfile implements Serializable{
OpenVPN.logMessage(0, "", context.getString(R.string.keychain_nocacert));
for(X509Certificate cert:cachain) {
- OpenVPN.logInfo(R.string.cert_from_keystore,cert.getSubjectDN());
+ OpenVPN.logInfo(R.string.cert_from_keystore,X509Utils.getCertificateFriendlyName(cert));
}
diff --git a/src/de/blinkt/openvpn/core/X509Utils.java b/src/de/blinkt/openvpn/core/X509Utils.java
index 0969069f..d07fcaee 100644
--- a/src/de/blinkt/openvpn/core/X509Utils.java
+++ b/src/de/blinkt/openvpn/core/X509Utils.java
@@ -48,22 +48,8 @@ public class X509Utils {
if(!TextUtils.isEmpty(filename)) {
try {
X509Certificate cert = (X509Certificate) getCertificateFromFile(filename);
-
- X500Principal principal = (X500Principal) cert.getSubjectDN();
-
- String friendlyname = principal.getName();
- System.out.println(friendlyname);
- // Really evil hack to decode email address
-
- String[] parts = friendlyname.split(",");
- for (int i=0;i<parts.length;i++){
- String part = parts[i];
- if (part.startsWith("1.2.840.113549.1.9.1=#16")) {
- parts[i] = "email=" + ia5decode(part.replace("1.2.840.113549.1.9.1=#16", ""));
- }
- }
- friendlyname = TextUtils.join(",",parts);
- return friendlyname;
+
+ return getCertificateFriendlyName(cert);
} catch (Exception e) {
OpenVPN.logError("Could not read certificate" + e.getLocalizedMessage());
@@ -72,6 +58,26 @@ public class X509Utils {
return "Could not read/parse certificate";
}
+ public static String getCertificateFriendlyName(X509Certificate cert) {
+ X500Principal principal = (X500Principal) cert.getSubjectDN();
+
+ String friendlyName = principal.getName();
+ System.out.println(friendlyName);
+
+ // Really evil hack to decode email address
+ // See: http://code.google.com/p/android/issues/detail?id=21531
+
+ String[] parts = friendlyName.split(",");
+ for (int i=0;i<parts.length;i++){
+ String part = parts[i];
+ if (part.startsWith("1.2.840.113549.1.9.1=#16")) {
+ parts[i] = "email=" + ia5decode(part.replace("1.2.840.113549.1.9.1=#16", ""));
+ }
+ }
+ friendlyName = TextUtils.join(",", parts);
+ return friendlyName;
+ }
+
public static boolean isPrintableChar(char c) {
Character.UnicodeBlock block = Character.UnicodeBlock.of( c );
return (!Character.isISOControl(c)) &&