From c56ad652644fa666d1b42659e71a2b457c7f83ee Mon Sep 17 00:00:00 2001 From: Iordan Iordanov Date: Fri, 18 Mar 2022 00:15:28 -0400 Subject: [PATCH] Library upgrade for Android client Version 5.0.8 Build 115080 Changelog update --- CustomVnc-app/src/main/AndroidManifest.xml | 4 ++-- Opaque-app/src/main/AndroidManifest.xml | 4 ++-- aRDP-app/src/main/AndroidManifest.xml | 4 ++-- aSPICE-app/src/main/AndroidManifest.xml | 4 ++-- bVNC-app/src/main/AndroidManifest.xml | 4 ++-- bVNC/CHANGELOG-aRDP | 2 ++ bVNC/CHANGELOG-aSPICE | 2 ++ bVNC/CHANGELOG-bVNC | 2 ++ bVNC/build.gradle | 8 ++++---- build.gradle | 6 +++--- freeaRDP-app/src/main/AndroidManifest.xml | 4 ++-- freeaSPICE-app/src/main/AndroidManifest.xml | 4 ++-- freebVNC-app/src/main/AndroidManifest.xml | 4 ++-- gradle.properties | 5 +++-- pubkeyGenerator/build.gradle | 13 +++++-------- .../com/iiordanov/pubkeygenerator/PubkeyUtils.java | 9 ++++----- 16 files changed, 41 insertions(+), 38 deletions(-) diff --git a/CustomVnc-app/src/main/AndroidManifest.xml b/CustomVnc-app/src/main/AndroidManifest.xml index 38acc4e3f..dd55cb398 100644 --- a/CustomVnc-app/src/main/AndroidManifest.xml +++ b/CustomVnc-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.CUSTOM_VNC_APP_PACKAGE_NAME" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/Opaque-app/src/main/AndroidManifest.xml b/Opaque-app/src/main/AndroidManifest.xml index 2265bf6af..76f07b5d7 100644 --- a/Opaque-app/src/main/AndroidManifest.xml +++ b/Opaque-app/src/main/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/aRDP-app/src/main/AndroidManifest.xml b/aRDP-app/src/main/AndroidManifest.xml index 17a83166f..eb935807d 100644 --- a/aRDP-app/src/main/AndroidManifest.xml +++ b/aRDP-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.aRDP" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/aSPICE-app/src/main/AndroidManifest.xml b/aSPICE-app/src/main/AndroidManifest.xml index fc7b6c590..bf0e7c62f 100644 --- a/aSPICE-app/src/main/AndroidManifest.xml +++ b/aSPICE-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.aSPICE" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/bVNC-app/src/main/AndroidManifest.xml b/bVNC-app/src/main/AndroidManifest.xml index 412cf9be3..5a6247d13 100644 --- a/bVNC-app/src/main/AndroidManifest.xml +++ b/bVNC-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.bVNC" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/bVNC/CHANGELOG-aRDP b/bVNC/CHANGELOG-aRDP index 64c902938..bacdb5930 100644 --- a/bVNC/CHANGELOG-aRDP +++ b/bVNC/CHANGELOG-aRDP @@ -1,3 +1,5 @@ +v5.0.8 +- Security library upgrade v5.0.7 - Finer-grained permissions requests - Fix for layouts including QWERTZ, AZERTY diff --git a/bVNC/CHANGELOG-aSPICE b/bVNC/CHANGELOG-aSPICE index a58c8be65..e5f816cfa 100644 --- a/bVNC/CHANGELOG-aSPICE +++ b/bVNC/CHANGELOG-aSPICE @@ -1,3 +1,5 @@ +v5.0.8 +- Security library upgrade v5.0.7 - Finer-grained permissions requests - Fixes for hardware keyboards diff --git a/bVNC/CHANGELOG-bVNC b/bVNC/CHANGELOG-bVNC index cedcde6de..fd8f6c82a 100644 --- a/bVNC/CHANGELOG-bVNC +++ b/bVNC/CHANGELOG-bVNC @@ -1,3 +1,5 @@ +v5.0.8 +- Security library upgrade v5.0.7 - Finer-grained permissions requests - Fixes for hardware keyboards diff --git a/bVNC/build.gradle b/bVNC/build.gradle index 239224eaf..487f44d4e 100644 --- a/bVNC/build.gradle +++ b/bVNC/build.gradle @@ -38,12 +38,12 @@ dependencies { implementation project(':pubkeyGenerator') implementation project(':remoteClientLib:jni:libs:deps:FreeRDP:client:Android:Studio:freeRDPCore') implementation project(':remoteClientLib') - implementation group: 'androidx.appcompat', name: 'appcompat', version: '1.4.0' + implementation group: 'androidx.appcompat', name: 'appcompat', version: '1.4.1' implementation group: 'androidx.legacy', name: 'legacy-support-v4', version: '1.0.0' implementation group: 'androidx.vectordrawable', name: 'vectordrawable', version: '1.1.0' - implementation group: 'androidx.preference', name: 'preference', version: '1.1.1' - implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar' - implementation "androidx.sqlite:sqlite:2.2.0" + implementation group: 'androidx.preference', name: 'preference-ktx', version: '1.2.0' + implementation 'net.zetetic:android-database-sqlcipher:4.5.1@aar' + implementation "androidx.sqlite:sqlite-ktx:2.2.0" implementation files('libs/com.antlersoft.android.contentxml.jar') implementation files('libs/com.antlersoft.android.db.jar') implementation group: 'org.yaml', name: 'snakeyaml', version: '1.23' diff --git a/build.gradle b/build.gradle index ba95f792a..0ff10100f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.5.20' + ext.kotlin_version = '1.5.30' repositories { - jcenter() + mavenCentral() google() } dependencies { @@ -13,7 +13,7 @@ buildscript { allprojects { repositories { - jcenter() + mavenCentral() google() } } diff --git a/freeaRDP-app/src/main/AndroidManifest.xml b/freeaRDP-app/src/main/AndroidManifest.xml index 681710d2a..49ca890b5 100644 --- a/freeaRDP-app/src/main/AndroidManifest.xml +++ b/freeaRDP-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.freeaRDP" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/freeaSPICE-app/src/main/AndroidManifest.xml b/freeaSPICE-app/src/main/AndroidManifest.xml index ca4c0262b..8dbf50f9a 100644 --- a/freeaSPICE-app/src/main/AndroidManifest.xml +++ b/freeaSPICE-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.freeaSPICE" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/freebVNC-app/src/main/AndroidManifest.xml b/freebVNC-app/src/main/AndroidManifest.xml index 6158b2cb5..095efb645 100644 --- a/freebVNC-app/src/main/AndroidManifest.xml +++ b/freebVNC-app/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.iiordanov.freebVNC" android:installLocation="auto" - android:versionCode="115072" - android:versionName="v5.0.7"> + android:versionCode="115080" + android:versionName="v5.0.8"> diff --git a/gradle.properties b/gradle.properties index 52f486dea..c225827f7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,5 +3,6 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=512m -XX:-HeapDumpOnOutOfMemoryError - SDK_VERSION=21 CUSTOM_VNC_APP_NAME=Custom VNC Viewer CUSTOM_VNC_APP_ICON=icon -android.useAndroidX = true -android.enableJetifier = true +android.useAndroidX=true +android.enableJetifier=true +android.jetifier.blacklist=bcprov diff --git a/pubkeyGenerator/build.gradle b/pubkeyGenerator/build.gradle index 862725b82..f7ad3cfac 100644 --- a/pubkeyGenerator/build.gradle +++ b/pubkeyGenerator/build.gradle @@ -33,14 +33,11 @@ buildscript { apply plugin: "com.google.osdetector" dependencies { - api 'org.connectbot:sshlib:2.2.13' - // https://mvnrepository.com/artifact/com.madgag.spongycastle/core - api group: 'com.madgag.spongycastle', name: 'core', version: '1.58.0.0' - api group: 'com.madgag.spongycastle', name: 'prov', version: '1.58.0.0' - api group: 'com.madgag.spongycastle', name: 'pkix', version: '1.54.0.0' - api group: 'com.madgag.spongycastle', name: 'pg', version: '1.54.0.0' + api 'org.connectbot:sshlib:2.2.20' + implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.70' + implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.70' + implementation group: 'org.bouncycastle', name: 'bcpg-jdk15on', version: '1.70' api 'net.vrallev.ecc:ecc-25519-java:1.0.3' - api 'io.moatwel.crypto:eddsa:0.7.0-beta' - // https://mvnrepository.com/artifact/net.i2p.crypto/eddsa + api 'io.moatwel.crypto:eddsa:0.8.1' api group: 'net.i2p.crypto', name: 'eddsa', version: '0.3.0' } diff --git a/pubkeyGenerator/src/main/java/com/iiordanov/pubkeygenerator/PubkeyUtils.java b/pubkeyGenerator/src/main/java/com/iiordanov/pubkeygenerator/PubkeyUtils.java index bf68ec761..d9680a1de 100644 --- a/pubkeyGenerator/src/main/java/com/iiordanov/pubkeygenerator/PubkeyUtils.java +++ b/pubkeyGenerator/src/main/java/com/iiordanov/pubkeygenerator/PubkeyUtils.java @@ -35,7 +35,6 @@ import java.security.interfaces.DSAPrivateKey; import java.security.interfaces.DSAPublicKey; import java.security.interfaces.RSAPrivateCrtKey; -import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.DSAPublicKeySpec; import java.security.spec.InvalidKeySpecException; @@ -170,7 +169,7 @@ public static KeyPair recoverKeyPair(byte[] encoded) throws NoSuchAlgorithmExcep PublicKey pub; KeyFactory kf; try { - kf = KeyFactory.getInstance(PubkeyDatabase.KEY_TYPE_RSA, new org.spongycastle.jce.provider.BouncyCastleProvider()); + kf = KeyFactory.getInstance(PubkeyDatabase.KEY_TYPE_RSA, new org.bouncycastle.jce.provider.BouncyCastleProvider()); priv = kf.generatePrivate(privKeySpec); pubKeySpec = new RSAPublicKeySpec(((RSAPrivateCrtKey) priv) @@ -179,7 +178,7 @@ public static KeyPair recoverKeyPair(byte[] encoded) throws NoSuchAlgorithmExcep pub = kf.generatePublic(pubKeySpec); } catch (ClassCastException e) { - kf = KeyFactory.getInstance(PubkeyDatabase.KEY_TYPE_DSA, new org.spongycastle.jce.provider.BouncyCastleProvider()); + kf = KeyFactory.getInstance(PubkeyDatabase.KEY_TYPE_DSA, new org.bouncycastle.jce.provider.BouncyCastleProvider()); priv = kf.generatePrivate(privKeySpec); DSAParams params = ((DSAPrivateKey) priv).getParams(); @@ -262,11 +261,11 @@ public static String convertToOpenSSHFormat(PublicKey pk, String origNickname) t if (pk instanceof RSAPublicKey) { String data = "ssh-rsa "; - data += String.valueOf(Base64.encode(RSASHA1Verify.encodeSSHRSAPublicKey((RSAPublicKey)pk))); + data += String.valueOf(Base64.encode(RSASHA1Verify.get().encodePublicKey(pk))); return data + " " + nickname; } else if (pk instanceof DSAPublicKey) { String data = "ssh-dss "; - data += String.valueOf(Base64.encode(DSASHA1Verify.encodeSSHDSAPublicKey((DSAPublicKey)pk))); + data += String.valueOf(Base64.encode(DSASHA1Verify.get().encodePublicKey(pk))); return data + " " + nickname; }