From 97de3e606672c21d2eb8e2f58415d69b70be24b8 Mon Sep 17 00:00:00 2001 From: Dmitry Novotochinov Date: Mon, 11 Mar 2019 12:52:18 +0300 Subject: [PATCH] improve getKeys() speed --- .../assets/{keycard.cap => keycard_v2.1.cap} | Bin 75767 -> 76504 bytes .../keycard/RNStatusKeycardModule.java | 2 +- .../im/status/ethereum/keycard/SmartCard.java | 18 +++--------------- 3 files changed, 4 insertions(+), 16 deletions(-) rename android/src/main/assets/{keycard.cap => keycard_v2.1.cap} (61%) diff --git a/android/src/main/assets/keycard.cap b/android/src/main/assets/keycard_v2.1.cap similarity index 61% rename from android/src/main/assets/keycard.cap rename to android/src/main/assets/keycard_v2.1.cap index 3124188c2e1f9c5a0aaa51a03f064985b7c0289b..37609e186d1084f19be723c851096bb401993142 100644 GIT binary patch delta 20120 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 delta 19344 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 diff --git a/android/src/main/java/im/status/ethereum/keycard/RNStatusKeycardModule.java b/android/src/main/java/im/status/ethereum/keycard/RNStatusKeycardModule.java index c56718f..a2d314f 100644 --- a/android/src/main/java/im/status/ethereum/keycard/RNStatusKeycardModule.java +++ b/android/src/main/java/im/status/ethereum/keycard/RNStatusKeycardModule.java @@ -23,7 +23,7 @@ import im.status.keycard.io.APDUException; public class RNStatusKeycardModule extends ReactContextBaseJavaModule implements LifecycleEventListener { private static final String TAG = "StatusKeycard"; - private static final String CAP_FILENAME = "keycard.cap"; + private static final String CAP_FILENAME = "keycard_v2.1.cap"; private SmartCard smartCard; private final ReactApplicationContext reactContext; diff --git a/android/src/main/java/im/status/ethereum/keycard/SmartCard.java b/android/src/main/java/im/status/ethereum/keycard/SmartCard.java index bd42fd5..a72759a 100644 --- a/android/src/main/java/im/status/ethereum/keycard/SmartCard.java +++ b/android/src/main/java/im/status/ethereum/keycard/SmartCard.java @@ -298,25 +298,13 @@ public class SmartCard extends BroadcastReceiver implements CardListener { cmdSet.verifyPIN(pin).checkOK(); Log.i(TAG, "pin verified"); - - cmdSet.deriveKey(WALLET_PATH).checkOK(); - Log.i(TAG, "Derived " + WALLET_PATH); - - byte[] tlv = cmdSet.exportCurrentKey(true).checkOK().getData(); + byte[] tlv = cmdSet.exportKey(WALLET_PATH, true, true).checkOK().getData(); BIP32KeyPair walletKeyPair = BIP32KeyPair.fromTLV(tlv); - - cmdSet.deriveKey(WHISPER_PATH).checkOK(); - Log.i(TAG, "Derived " + WHISPER_PATH); - - byte[] tlv2 = cmdSet.exportCurrentKey(false).checkOK().getData(); + byte[] tlv2 = cmdSet.exportKey(WHISPER_PATH, false, false).checkOK().getData(); BIP32KeyPair whisperKeyPair = BIP32KeyPair.fromTLV(tlv2); - - cmdSet.deriveKey(ENCRYPTION_PATH).checkOK(); - Log.i(TAG, "Derived " + ENCRYPTION_PATH); - - byte[] tlv3 = cmdSet.exportCurrentKey(false).checkOK().getData(); + byte[] tlv3 = cmdSet.exportKey(ENCRYPTION_PATH, false, false).checkOK().getData(); BIP32KeyPair encryptionKeyPair = BIP32KeyPair.fromTLV(tlv3); WritableMap data = Arguments.createMap();