0
0
mirror of https://github.com/schwabe/ics-openvpn.git synced 2024-09-20 12:02:28 +02:00

Move native functions into own class.

This way the Gui will not always load the native libraries when showing profiles and allows some GUI modifications without compiling ndk code
This commit is contained in:
Arne Schwabe 2013-03-18 17:20:30 +01:00
parent 098204e653
commit 6ba818e5c9
5 changed files with 17 additions and 15 deletions

View File

@ -17,7 +17,7 @@
extern "C" {
jbyteArray Java_de_blinkt_openvpn_VpnProfile_rsasign(JNIEnv* env, jclass, jbyteArray from, jint pkeyRef);
jbyteArray Java_de_blinkt_openvpn_core_NativeUtils_rsasign(JNIEnv* env, jclass, jbyteArray from, jint pkeyRef);
}
int jniThrowException(JNIEnv* env, const char* className, const char* msg) {

View File

@ -16,7 +16,7 @@ void android_openvpn_log(int level,const char* prefix,const char* prefix_sep,con
__android_log_print(ANDROID_LOG_DEBUG,"openvpn","%s%s%s",prefix,prefix_sep,m1);
}
void Java_de_blinkt_openvpn_core_OpenVpnManagementThread_jniclose(JNIEnv *env,jclass jo, jint fd) {
void Java_de_blinkt_openvpn_core_NativeUtils_jniclose(JNIEnv *env,jclass jo, jint fd) {
int ret = close(fd);
}

View File

@ -42,6 +42,7 @@ import android.security.KeyChain;
import android.security.KeyChainException;
import android.util.Base64;
import de.blinkt.openvpn.R;
import de.blinkt.openvpn.core.NativeUtils;
import de.blinkt.openvpn.core.OpenVPN;
import de.blinkt.openvpn.core.OpenVpnService;
@ -140,12 +141,6 @@ public class VpnProfile implements Serializable{
public static final String MINIVPN = "miniopenvpn";
static private native byte[] rsasign(byte[] input,int pkey) throws InvalidKeyException;
static {
System.loadLibrary("opvpnutil");
}
public void clearDefaults() {
mServerName="unkown";
mUsePull=false;
@ -868,7 +863,7 @@ public class VpnProfile implements Serializable{
int pkey = (Integer) getPkeyContext.invoke(opensslkey);
getPkeyContext.setAccessible(false);
byte[] signed_bytes = rsasign(data, pkey);
byte[] signed_bytes = NativeUtils.rsasign(data, pkey);
return Base64.encodeToString(signed_bytes, Base64.NO_WRAP);
} catch (NoSuchMethodException e) {

View File

@ -0,0 +1,12 @@
package de.blinkt.openvpn.core;
import java.security.InvalidKeyException;
public class NativeUtils {
public static native byte[] rsasign(byte[] input,int pkey) throws InvalidKeyException;
static native void jniclose(int fdint);
static {
System.loadLibrary("opvpnutil");
}
}

View File

@ -35,8 +35,6 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNMangement {
private static Vector<OpenVpnManagementThread> active=new Vector<OpenVpnManagementThread>();
static private native void jniclose(int fdint);
public OpenVpnManagementThread(VpnProfile profile, LocalServerSocket mgmtsocket, OpenVpnService openVpnService) {
mProfile = profile;
mServerSocket = mgmtsocket;
@ -128,7 +126,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNMangement {
//ParcelFileDescriptor pfd = ParcelFileDescriptor.fromFd(fdint);
//pfd.close();
jniclose(fdint);
NativeUtils.jniclose(fdint);
return;
} catch (NoSuchMethodException e) {
exp =e;
@ -426,9 +424,6 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNMangement {
private void proccessPWFailed(String needed, String args) {
OpenVPN.updateStateString("AUTH_FAILED", needed + args,R.string.state_auth_failed,ConnectionStatus.LEVEL_AUTH_FAILED);
}
private void logStatusMessage(String command) {
OpenVPN.logMessage(0,"MGMT:", command);
}
private static boolean stopOpenVPN() {