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:
parent
098204e653
commit
6ba818e5c9
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
12
src/de/blinkt/openvpn/core/NativeUtils.java
Normal file
12
src/de/blinkt/openvpn/core/NativeUtils.java
Normal 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");
|
||||
}
|
||||
}
|
@ -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() {
|
||||
|
Loading…
Reference in New Issue
Block a user