summaryrefslogtreecommitdiff
path: root/wrappers/java-android/lib
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-09-20 15:07:40 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-09-20 15:07:40 +0200
commit2a619ceba75a4c16b25de12d59a87eac795a4468 (patch)
tree1d63a35217011fa761b703633b3f91fd839ec71e /wrappers/java-android/lib
parent7e309b67de74fe5bd5a1c70c1880c2a381c4f78b (diff)
Remove: unused wrappers
Diffstat (limited to 'wrappers/java-android/lib')
-rw-r--r--wrappers/java-android/lib/.gitignore2
-rw-r--r--wrappers/java-android/lib/CMakeLists.txt36
-rw-r--r--wrappers/java-android/lib/build.gradle107
-rw-r--r--wrappers/java-android/lib/consumer-rules.pro0
-rw-r--r--wrappers/java-android/lib/proguard-rules.pro21
-rw-r--r--wrappers/java-android/lib/src/main/AndroidManifest.xml4
-rw-r--r--wrappers/java-android/lib/src/main/java/org/eduvpn/common/Discovery.java80
-rw-r--r--wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureException.java8
-rw-r--r--wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureUnknownKeyException.java8
-rw-r--r--wrappers/java-android/lib/src/main/java/org/eduvpn/common/SignatureTooOldException.java8
-rw-r--r--wrappers/java-android/lib/src/main/java/org/eduvpn/common/UnknownVerifyException.java9
-rw-r--r--wrappers/java-android/lib/src/main/java/org/eduvpn/common/VerifyException.java8
-rw-r--r--wrappers/java-android/lib/src/test/java/org/eduvpn/common/VerifyTests.java77
13 files changed, 0 insertions, 368 deletions
diff --git a/wrappers/java-android/lib/.gitignore b/wrappers/java-android/lib/.gitignore
deleted file mode 100644
index 1ac6136..0000000
--- a/wrappers/java-android/lib/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/build
-/src/test/resources/*
diff --git a/wrappers/java-android/lib/CMakeLists.txt b/wrappers/java-android/lib/CMakeLists.txt
deleted file mode 100644
index 8e8ff87..0000000
--- a/wrappers/java-android/lib/CMakeLists.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-cmake_minimum_required(VERSION 3.18.1)
-project(eduvpn_common)
-
-# Android -> Go architecture map
-set(arch_map_x86 386)
-set(arch_map_x86_64 amd64)
-set(arch_map_arm arm)
-set(arch_map_arm64 arm64)
-
-set(GOARCH ${arch_map_${ANDROID_ARCH_NAME}})
-
-find_program(MAKE_EXECUTABLE
- NAMES gmake mingw32-make make
- NAMES_PER_DIR
- DOC "GNU Make"
- REQUIRED
-)
-
-# Inspired by https://github.com/WireGuard/wireguard-android/blob/1.0.20211029/tunnel/tools/CMakeLists.txt
-
-# --target has to be specified to compiler & linker as e.g. ANDROID_C_COMPILER may just be 'clang' without prefixes
-# CGO_CPPFLAGS are concatenated to CGO_CFLAGS and CGO_CXXFLAGS
-add_custom_target(shared-lib
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../exports"
- COMMENT "Building shared library for ${ANDROID_LLVM_TRIPLE}"
- VERBATIM
- COMMAND ${MAKE_EXECUTABLE}
- GOOS=android GOARCH=${GOARCH}
- CC=${ANDROID_C_COMPILER} CXX=${ANDROID_CXX_COMPILER}
- CGO_CPPFLAGS=--target=${ANDROID_LLVM_TRIPLE} CGO_CFLAGS=${CMAKE_C_FLAGS} CGO_CXXFLAGS=${CMAKE_CXX_FLAGS}
- CGO_LDFLAGS=${CMAKE_SHARED_LINKER_FLAGS}\ --target=${ANDROID_LLVM_TRIPLE}
- COPY_LIB_TO=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-)
-
-# Note about COPY_LIB_TO: this is an easy cross-platform alternative to calling `cp`
-# file(COPY ...) does not work since it runs at the configure stage...
diff --git a/wrappers/java-android/lib/build.gradle b/wrappers/java-android/lib/build.gradle
deleted file mode 100644
index 04cb00e..0000000
--- a/wrappers/java-android/lib/build.gradle
+++ /dev/null
@@ -1,107 +0,0 @@
-import com.android.build.api.dsl.ManagedVirtualDevice
-
-plugins {
- id 'com.android.library' // Build AAR
-}
-
-android {
- compileSdk 31
-
- defaultConfig {
- minSdk 21
- targetSdk 31
- versionCode 1
- versionName '1.0'
-
- testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
-
- consumerProguardFiles 'consumer-rules.pro'
-
- externalNativeBuild {
- cmake {
- // Specify which target we want to build
- targets 'shared-lib'
- }
- }
- }
-
- buildTypes {
- release {
- minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
-
- // Support Java 8+
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- externalNativeBuild {
- cmake {
- version '3.18.1' // See cmake_minimum_required in CMakeLists.txt
- path 'CMakeLists.txt'
- }
- }
-
- sourceSets {
- androidTest {
- // Use same sources & resources for Android instrumented tests as unit tests
- java.srcDirs = sourceSets.test.java.srcDirs
- resources.srcDirs = sourceSets.test.resources.srcDirs
- }
- }
-
- task copyTestData(type: Copy, description: 'Copy test_data to test resources') {
- from('../../../src/test_data') {
- exclude '**/*.py', '**/*.sh'
- }
- into sourceSets.test.resources.srcDirs[0].toPath().resolve('org/eduvpn/common')
- }
-
- // Copy test_data to Java resources before these are processed
- // (.named does not find all tasks. Task names were obtained with com.dorongold.task-tree plugin)
- tasks.matching { t ->
- t.name in [
- 'processDebugUnitTestJavaRes', 'processReleaseUnitTestJavaRes',
- 'processDebugAndroidTestJavaRes', 'processReleaseAndroidTestJavaRes']
- }.all {
- dependsOn copyTestData
- }
-
- // Do not cache unit test results as the shared library may have changed
- tasks.matching { t -> t.name in ['testDebugUnitTest', 'testReleaseUnitTest'] }.all {
- outputs.upToDateWhen { false }
- }
-
- testOptions {
- // Display full exceptions and passed tests for unit tests
- unitTests.all {
- testLogging {
- events 'passed', 'skipped', 'failed'
- exceptionFormat 'full'
- }
- }
-
- devices {
- pixel2(ManagedVirtualDevice) {
- device = 'Pixel 2'
- apiLevel = 30
- systemImageSource = 'aosp'
- abi = 'x86_64'
- }
- }
- }
-}
-
-dependencies {
- implementation 'net.java.dev.jna:jna:5.10.0@aar'
-
- testImplementation 'commons-io:commons-io:2.11.0'
- testImplementation 'net.java.dev.jna:jna:5.10.0' // Include jnidispatch library in unit tests
- testImplementation 'junit:junit:4.+'
-
- androidTestImplementation 'commons-io:commons-io:2.11.0'
- androidTestImplementation 'androidx.test:runner:1.4.0'
-}
diff --git a/wrappers/java-android/lib/consumer-rules.pro b/wrappers/java-android/lib/consumer-rules.pro
deleted file mode 100644
index e69de29..0000000
--- a/wrappers/java-android/lib/consumer-rules.pro
+++ /dev/null
diff --git a/wrappers/java-android/lib/proguard-rules.pro b/wrappers/java-android/lib/proguard-rules.pro
deleted file mode 100644
index f1b4245..0000000
--- a/wrappers/java-android/lib/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/wrappers/java-android/lib/src/main/AndroidManifest.xml b/wrappers/java-android/lib/src/main/AndroidManifest.xml
deleted file mode 100644
index 5a49838..0000000
--- a/wrappers/java-android/lib/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest package="org.eduvpn.common">
-
-</manifest>
diff --git a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/Discovery.java b/wrappers/java-android/lib/src/main/java/org/eduvpn/common/Discovery.java
deleted file mode 100644
index dfeef71..0000000
--- a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/Discovery.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.eduvpn.common;
-
-import com.sun.jna.*;
-
-import java.nio.charset.StandardCharsets;
-
-public final class Discovery {
- private static final String LIB_NAME = "eduvpn_common";
- private static final NativeApi discovery = Native.load(LIB_NAME, NativeApi.class);
-
- /**
- * Verifies the signature on the JSON server_list.json/organization_list.json file.
- * If the function returns, the signature is valid for the given file type.
- *
- * @param signature .minisig signature file contents.
- * @param signedJson Signed .json file contents.
- * @param expectedFileName The file type to be verified, one of {@code "server_list.json"} or {@code "organization_list.json"}.
- * @param minSignTime Minimum time for signature (UNIX timestamp, seconds). Should be set to at least the time of the previous signature.
- * @throws IllegalArgumentException If {@code expectedFileName} is not one of the allowed values or one of the parameters is empty.
- * @throws VerifyException If signature verification fails.
- */
- public static void verify(byte[] signature, byte[] signedJson, String expectedFileName, long minSignTime) throws VerifyException {
- byte err = discovery.Verify(NativeApi.GoSlice.fromArray(signature), NativeApi.GoSlice.fromArray(signedJson),
- NativeApi.GoSlice.fromString(expectedFileName), minSignTime);
-
- switch (err) {
- case 0:
- return;
- case 1:
- throw new IllegalArgumentException("unknown expected file name");
- case 2:
- throw new InvalidSignatureException();
- case 3:
- throw new InvalidSignatureUnknownKeyException();
- case 4:
- throw new SignatureTooOldException();
- default:
- throw new UnknownVerifyException(err);
- }
- }
-
- /** Use for testing only, see Go documentation. */
- /*package-private*/
- static void insecureTestingSetExtraKey(String keyString) {
- discovery.InsecureTestingSetExtraKey(NativeApi.GoSlice.fromArray(keyString.getBytes(StandardCharsets.UTF_8)));
- }
-
- private interface NativeApi extends Library {
- // C-compatible structure
- @Structure.FieldOrder({"data", "len", "cap"})
- class GoSlice extends Structure implements Structure.ByValue {
- public Pointer data;
- public long len, cap;
-
- public GoSlice(Pointer data, long len, long cap) {
- this.data = data;
- this.len = len;
- this.cap = cap;
- }
-
- public static GoSlice fromArray(byte[] bytes) {
- Memory memory = new Memory(bytes.length);
- memory.write(0, bytes, 0, bytes.length);
- return new GoSlice(memory, bytes.length, bytes.length);
- }
-
- /** From string as UTF-8. */
- public static GoSlice fromString(String str) {
- return fromArray(str.getBytes(StandardCharsets.UTF_8));
- }
- }
-
- byte Verify(GoSlice signatureFileContent, GoSlice signedJson, GoSlice expectedFileName, long minSignTime);
-
- void InsecureTestingSetExtraKey(GoSlice keyString);
- }
-
- private Discovery() {
- }
-}
diff --git a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureException.java b/wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureException.java
deleted file mode 100644
index b739dd7..0000000
--- a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureException.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.eduvpn.common;
-
-/** Signature is invalid (for the expected file type). */
-public final class InvalidSignatureException extends VerifyException {
- public InvalidSignatureException() {
- super("invalid signature");
- }
-}
diff --git a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureUnknownKeyException.java b/wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureUnknownKeyException.java
deleted file mode 100644
index 6d651e5..0000000
--- a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/InvalidSignatureUnknownKeyException.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.eduvpn.common;
-
-/** Signature was created with an unknown key and has not been verified. */
-public final class InvalidSignatureUnknownKeyException extends VerifyException {
- public InvalidSignatureUnknownKeyException() {
- super("invalid signature (unknown key)");
- }
-}
diff --git a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/SignatureTooOldException.java b/wrappers/java-android/lib/src/main/java/org/eduvpn/common/SignatureTooOldException.java
deleted file mode 100644
index c89136f..0000000
--- a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/SignatureTooOldException.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.eduvpn.common;
-
-/** Signature timestamp smaller than specified minimum signing time (rollback). */
-public final class SignatureTooOldException extends VerifyException {
- public SignatureTooOldException() {
- super("replay of previous signature (rollback)");
- }
-}
diff --git a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/UnknownVerifyException.java b/wrappers/java-android/lib/src/main/java/org/eduvpn/common/UnknownVerifyException.java
deleted file mode 100644
index 80b74ea..0000000
--- a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/UnknownVerifyException.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.eduvpn.common;
-
-/** Other unknown error. */
-public final class UnknownVerifyException extends VerifyException {
- public UnknownVerifyException(byte code) {
- super(String.format("unknown verify error (%d)", code));
- assert code != 0;
- }
-}
diff --git a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/VerifyException.java b/wrappers/java-android/lib/src/main/java/org/eduvpn/common/VerifyException.java
deleted file mode 100644
index 686ea41..0000000
--- a/wrappers/java-android/lib/src/main/java/org/eduvpn/common/VerifyException.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.eduvpn.common;
-
-/** Verification failed, do not trust the file. */
-public abstract class VerifyException extends Exception {
- protected VerifyException(String message) {
- super(message);
- }
-}
diff --git a/wrappers/java-android/lib/src/test/java/org/eduvpn/common/VerifyTests.java b/wrappers/java-android/lib/src/test/java/org/eduvpn/common/VerifyTests.java
deleted file mode 100644
index 92a4648..0000000
--- a/wrappers/java-android/lib/src/test/java/org/eduvpn/common/VerifyTests.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eduvpn.common;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-public class VerifyTests {
- private static byte[] readAll(String resource) throws IOException {
- try (InputStream stream = VerifyTests.class.getResourceAsStream(resource)) {
- return IOUtils.toByteArray(stream);
- }
- }
-
- @SuppressWarnings("OptionalGetWithoutIsPresent")
- @BeforeClass
- public static void oneTimeSetup() throws IOException {
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(
- VerifyTests.class.getResourceAsStream("public.key")))) {
- Discovery.insecureTestingSetExtraKey(reader.lines().reduce((a, b) -> b).get());
- }
- }
-
- @Test
- public void testValid() throws IOException, VerifyException {
- Discovery.verify(
- readAll("server_list.json.minisig"),
- readAll("server_list.json"),
- "server_list.json",
- 10
- );
- }
-
- @Test(expected = InvalidSignatureException.class)
- public void testInvalidSignature() throws IOException, VerifyException {
- Discovery.verify(
- readAll("random.txt"),
- readAll("server_list.json"),
- "server_list.json",
- 0
- );
- }
-
- @Test(expected = InvalidSignatureUnknownKeyException.class)
- public void testWrongKey() throws IOException, VerifyException {
- Discovery.verify(
- readAll("server_list.json.wrong_key.minisig"),
- readAll("server_list.json"),
- "server_list.json",
- 0
- );
- }
-
- @Test(expected = SignatureTooOldException.class)
- public void testOldSignature() throws IOException, VerifyException {
- Discovery.verify(
- readAll("server_list.json.minisig"),
- readAll("server_list.json"),
- "server_list.json",
- 11
- );
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testUnknownExpectedFile() throws IOException, VerifyException {
- Discovery.verify(
- readAll("other_list.json.minisig"),
- readAll("other_list.json"),
- "other_list.json",
- 0
- );
- }
-}