From 532c80894e8d8ae75a666a2232c11caa24196c5c Mon Sep 17 00:00:00 2001 From: gbl08ma Date: Thu, 27 Jul 2017 12:10:31 +0100 Subject: [PATCH] Prepare for moar securiteee! --- .gitignore | 4 ++ .../disturbances/Ospylac.java.example | 39 +++++++++++++++++++ .../segvault/disturbances/PairManager.java | 2 +- .../im/tny/segvault/disturbances/Util.java | 23 ----------- .../disturbances/Ospylac.java.example | 39 +++++++++++++++++++ 5 files changed, 83 insertions(+), 24 deletions(-) create mode 100644 app/src/debug/java/im/tny/segvault/disturbances/Ospylac.java.example create mode 100644 app/src/release/java/im/tny/segvault/disturbances/Ospylac.java.example diff --git a/.gitignore b/.gitignore index 520a863..d08f5d8 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,7 @@ google-services.json freeline.py freeline/ freeline_project_description.json + +# Ospylac +app/src/debug/java/im/tny/segvault/disturbances/Ospylac.java +app/src/release/java/im/tny/segvault/disturbances/Ospylac.java \ No newline at end of file diff --git a/app/src/debug/java/im/tny/segvault/disturbances/Ospylac.java.example b/app/src/debug/java/im/tny/segvault/disturbances/Ospylac.java.example new file mode 100644 index 0000000..a724cb6 --- /dev/null +++ b/app/src/debug/java/im/tny/segvault/disturbances/Ospylac.java.example @@ -0,0 +1,39 @@ +package im.tny.segvault.disturbances; + +import android.content.Context; + +import java.io.IOException; +import java.io.InputStream; +import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.PKCS8EncodedKeySpec; + +/** + * Created by Gabriel on 27/07/2017. + */ + +final class Ospylac { + public static PrivateKey getPrivateKey(Context context, String param) { + try { + InputStream is = context.getAssets().open(param); + byte[] keyBytes = new byte[is.available()]; + is.read(keyBytes); + is.close(); + + PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); + KeyFactory kf = KeyFactory.getInstance("EC"); + return kf.generatePrivate(spec); + } catch (IOException e) { + e.printStackTrace(); + return null; + } catch (InvalidKeySpecException e) { + e.printStackTrace(); + return null; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/app/src/main/java/im/tny/segvault/disturbances/PairManager.java b/app/src/main/java/im/tny/segvault/disturbances/PairManager.java index 7eaf1c0..0b846de 100644 --- a/app/src/main/java/im/tny/segvault/disturbances/PairManager.java +++ b/app/src/main/java/im/tny/segvault/disturbances/PairManager.java @@ -60,7 +60,7 @@ public void pair() { byte[] sigBytes; try { Signature signer = Signature.getInstance("SHA256withECDSA"); - signer.initSign(Util.getPrivateKeyFromAsset(context, "trusted.der")); + signer.initSign(Ospylac.getPrivateKey(context, "trusted.der")); byte[] strByte = toSign.getBytes("UTF-8"); signer.update(strByte); sigBytes = signer.sign(); diff --git a/app/src/main/java/im/tny/segvault/disturbances/Util.java b/app/src/main/java/im/tny/segvault/disturbances/Util.java index 030f80b..dd3eaff 100644 --- a/app/src/main/java/im/tny/segvault/disturbances/Util.java +++ b/app/src/main/java/im/tny/segvault/disturbances/Util.java @@ -72,29 +72,6 @@ public static Locale getCurrentLocale(Context context) { } } - public static PrivateKey getPrivateKeyFromAsset(Context context, String path) { - try { - InputStream is = context.getAssets().open(path); - byte[] keyBytes = new byte[is.available()]; - is.read(keyBytes); - is.close(); - - PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); - KeyFactory kf = KeyFactory.getInstance("EC"); - return kf.generatePrivate(spec); - } catch (IOException e) { - e.printStackTrace(); - return null; - } catch (InvalidKeySpecException e) { - e.printStackTrace(); - return null; - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - return null; - } - } - - public static String encodeRFC3339(Date date) { return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(date) .replaceAll("(\\d\\d)(\\d\\d)$", "$1:$2"); diff --git a/app/src/release/java/im/tny/segvault/disturbances/Ospylac.java.example b/app/src/release/java/im/tny/segvault/disturbances/Ospylac.java.example new file mode 100644 index 0000000..a724cb6 --- /dev/null +++ b/app/src/release/java/im/tny/segvault/disturbances/Ospylac.java.example @@ -0,0 +1,39 @@ +package im.tny.segvault.disturbances; + +import android.content.Context; + +import java.io.IOException; +import java.io.InputStream; +import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.PKCS8EncodedKeySpec; + +/** + * Created by Gabriel on 27/07/2017. + */ + +final class Ospylac { + public static PrivateKey getPrivateKey(Context context, String param) { + try { + InputStream is = context.getAssets().open(param); + byte[] keyBytes = new byte[is.available()]; + is.read(keyBytes); + is.close(); + + PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes); + KeyFactory kf = KeyFactory.getInstance("EC"); + return kf.generatePrivate(spec); + } catch (IOException e) { + e.printStackTrace(); + return null; + } catch (InvalidKeySpecException e) { + e.printStackTrace(); + return null; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return null; + } + } +}