diff options
author | Arne Schwabe <arne@rfc2549.org> | 2012-07-02 17:29:08 +0200 |
---|---|---|
committer | Arne Schwabe <arne@rfc2549.org> | 2012-07-02 17:29:08 +0200 |
commit | b42eacfa8da0a642d629714f188cc0fc4c7e601a (patch) | |
tree | c57cb03a635528e00ae29a304c28266a4855bd3a /src/de/blinkt/openvpn | |
parent | ace5e90b3dbc33f0fc34ac2f3dc40d3c990a6a11 (diff) | |
parent | d9608521bf431a648999d06581404fef4ff57ce0 (diff) |
Merge
Diffstat (limited to 'src/de/blinkt/openvpn')
-rw-r--r-- | src/de/blinkt/openvpn/OpenVpnManagementThread.java | 8 | ||||
-rw-r--r-- | src/de/blinkt/openvpn/VpnProfile.java | 9 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/de/blinkt/openvpn/OpenVpnManagementThread.java b/src/de/blinkt/openvpn/OpenVpnManagementThread.java index e1b37342..69129eb1 100644 --- a/src/de/blinkt/openvpn/OpenVpnManagementThread.java +++ b/src/de/blinkt/openvpn/OpenVpnManagementThread.java @@ -403,9 +403,12 @@ public class OpenVpnManagementThread implements Runnable { private void processSignCommand(String b64data) {
PrivateKey privkey = mProfile.getKeystoreKey();
Exception err =null;
+
try{
byte[] data = Base64.decode(b64data, Base64.DEFAULT);
- Cipher rsasinger = javax.crypto.Cipher.getInstance("RSA/ECB/PKCS1PADDING");
+
+ Cipher rsasinger = Cipher.getInstance("RSA/ECB/PKCS1PADDING");
+
rsasinger.init(Cipher.ENCRYPT_MODE, privkey);
byte[] signed_bytes = rsasinger.doFinal(data);
@@ -425,8 +428,9 @@ public class OpenVpnManagementThread implements Runnable { err =e;
}
if(err !=null) {
- OpenVPN.logError(R.string.error_rsa_sign,err.getLocalizedMessage());
+ OpenVPN.logError(R.string.error_rsa_sign,err.getClass().toString(),err.getLocalizedMessage());
}
+
}
}
diff --git a/src/de/blinkt/openvpn/VpnProfile.java b/src/de/blinkt/openvpn/VpnProfile.java index 8b758b3b..54eaae88 100644 --- a/src/de/blinkt/openvpn/VpnProfile.java +++ b/src/de/blinkt/openvpn/VpnProfile.java @@ -24,6 +24,7 @@ import org.spongycastle.util.io.pem.PemWriter; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; +import android.os.Build; import android.security.KeyChain; import android.security.KeyChainException; @@ -551,8 +552,12 @@ public class VpnProfile implements Serializable{ //! Return an error if somethign is wrong int checkProfile() { - if((mAuthenticationType==TYPE_KEYSTORE || mAuthenticationType==TYPE_USERPASS_KEYSTORE) && mAlias==null) - return R.string.no_keystore_cert_selected; + if(mAuthenticationType==TYPE_KEYSTORE || mAuthenticationType==TYPE_USERPASS_KEYSTORE) { + if(mAlias==null) + return R.string.no_keystore_cert_selected; + if(Build.VERSION.SDK_INT == 16) + return R.string.keychain_jellybeans; + } if(!mUsePull) { if(mIPv4Address == null || cidrToIPAndNetmask(mIPv4Address) == null) |