Skip to content

Commit b399541

Browse files
author
Chris Thompson
committed
Merge branch 'add-buffers-to-sha'
2 parents bb5db88 + b6b8106 commit b399541

19 files changed

Lines changed: 199 additions & 182 deletions

File tree

android/build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ android {
2323
}
2424

2525
dependencies {
26-
compile 'com.android.support:appcompat-v7:23.0.1'
27-
compile 'com.facebook.react:react-native:+'
28-
compile 'com.madgag.spongycastle:core:1.58.0.0'
29-
compile 'com.madgag.spongycastle:prov:1.54.0.0'
30-
compile 'com.madgag.spongycastle:pkix:1.54.0.0'
31-
compile 'com.madgag.spongycastle:pg:1.54.0.0'
26+
implementation 'com.android.support:appcompat-v7:23.0.1'
27+
implementation 'com.facebook.react:react-native:+'
28+
implementation 'com.madgag.spongycastle:core:1.58.0.0'
29+
implementation 'com.madgag.spongycastle:prov:1.54.0.0'
30+
implementation 'com.madgag.spongycastle:pkix:1.54.0.0'
31+
implementation 'com.madgag.spongycastle:pg:1.54.0.0'
3232
}
-1.04 KB
Binary file not shown.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Wed Oct 31 17:20:33 PDT 2018
1+
#Mon Apr 13 18:24:21 MDT 2020
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

android/src/main/java/org/walletconnect/crypto/RCTAes.java renamed to android/src/main/java/com/pedrouid/crypto/RCTAes.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ private static String encrypt(String textBase64, String hexKey, String hexIv) th
126126

127127
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
128128
cipher.init(Cipher.ENCRYPT_MODE, secretKey, hexIv == null ? emptyIvSpec : new IvParameterSpec(Hex.decode(hexIv)));
129-
byte [] textBytes = Base64.getEncoder().decode(textBase64);
129+
byte [] textBytes = java.util.Base64.getDecoder().decode(textBase64);
130130
byte[] encrypted = cipher.doFinal(textBytes);
131131
return Base64.encodeToString(encrypted, Base64.NO_WRAP);
132132
}
@@ -142,7 +142,7 @@ private static String decrypt(String ciphertext, String hexKey, String hexIv) th
142142
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
143143
cipher.init(Cipher.DECRYPT_MODE, secretKey, hexIv == null ? emptyIvSpec : new IvParameterSpec(Hex.decode(hexIv)));
144144
byte[] decrypted = cipher.doFinal(Base64.decode(ciphertext, Base64.NO_WRAP));
145-
return Base64.encodeToString(decrypted, Base64.NO_WRAP)
145+
return Base64.encodeToString(decrypted, Base64.NO_WRAP);
146146
}
147147

148148
}

android/src/main/java/org/walletconnect/crypto/RCTCryptoPackage.java renamed to android/src/main/java/com/pedrouid/crypto/RCTCryptoPackage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.ArrayList;
44
import java.util.Collections;
55
import java.util.List;
6+
import java.util.Arrays;
67

78
import com.facebook.react.ReactPackage;
89
import com.facebook.react.bridge.JavaScriptModule;

android/src/main/java/org/walletconnect/crypto/RCTHmac.java renamed to android/src/main/java/com/pedrouid/crypto/RCTHmac.java

File renamed without changes.

android/src/main/java/org/walletconnect/crypto/RCTPbkdf2.java renamed to android/src/main/java/com/pedrouid/crypto/RCTPbkdf2.java

File renamed without changes.

android/src/main/java/org/walletconnect/crypto/RCTRsa.java renamed to android/src/main/java/com/pedrouid/crypto/RCTRsa.java

File renamed without changes.

android/src/main/java/org/walletconnect/crypto/RCTSha.java renamed to android/src/main/java/com/pedrouid/crypto/RCTSha.java

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import java.io.IOException;
66
import java.security.SecureRandom;
7+
import java.util.Arrays;
8+
import java.util.ArrayList;
79
import java.util.HashMap;
810
import java.util.Map;
911

@@ -29,7 +31,6 @@
2931
import org.spongycastle.crypto.digests.SHA224Digest;
3032
import org.spongycastle.crypto.digests.SHA256Digest;
3133
import org.spongycastle.crypto.digests.SHA384Digest;
32-
import org.spongycastle.crypto.digests.SHA384Digest;
3334
import org.spongycastle.crypto.digests.SHA512Digest;
3435
import org.spongycastle.crypto.generators.PKCS5S2ParametersGenerator;
3536
import org.spongycastle.crypto.PBEParametersGenerator;
@@ -52,46 +53,43 @@ public RCTSha(ReactApplicationContext reactContext) {
5253
super(reactContext);
5354
}
5455

56+
private static ArrayList<String> algorithms = new ArrayList<String>(
57+
Arrays.asList("SHA-1",
58+
"SHA-256",
59+
"SHA-512"));
60+
5561
@Override
5662
public String getName() {
5763
return "RCTSha";
5864
}
5965

60-
@ReactMethod
61-
public void sha256(String data, Promise promise) {
62-
try {
63-
String result = shaX(data, "SHA-256");
64-
promise.resolve(result);
65-
} catch (Exception e) {
66-
promise.reject("-1", e.getMessage());
66+
private byte[] sha(byte[] data, String algorithm) throws Exception {
67+
if (!algorithms.contains(algorithm)) {
68+
throw new Exception("Invalid algorithm");
6769
}
70+
71+
MessageDigest md = MessageDigest.getInstance(algorithm);
72+
md.update(data);
73+
return md.digest();
6874
}
6975

7076
@ReactMethod
71-
public void sha1(String data, Promise promise) {
77+
public void shaBase64(String data, String algorithm, Promise promise) throws Exception {
7278
try {
73-
String result = shaX(data, "SHA-1");
74-
promise.resolve(result);
79+
byte[] digest = this.sha(Base64.decode(data, Base64.NO_WRAP), algorithm);
80+
promise.resolve(Base64.encodeToString(digest, Base64.NO_WRAP));
7581
} catch (Exception e) {
7682
promise.reject("-1", e.getMessage());
7783
}
7884
}
7985

8086
@ReactMethod
81-
public void sha512(String data, Promise promise) {
87+
public void shaUtf8(String data, String algorithm, Promise promise) throws Exception {
8288
try {
83-
String result = shaX(data, "SHA-512");
84-
promise.resolve(result);
89+
byte[] digest = data.getBytes();
90+
promise.resolve(Base64.encodeToString(digest, Base64.DEFAULT));
8591
} catch (Exception e) {
8692
promise.reject("-1", e.getMessage());
8793
}
8894
}
89-
90-
private String shaX(String data, String algorithm) throws Exception {
91-
MessageDigest md = MessageDigest.getInstance(algorithm);
92-
md.update(data.getBytes());
93-
byte[] digest = md.digest();
94-
95-
return Base64.encodeToString(digest, Base64.DEFAULT);
96-
}
9795
}
File renamed without changes.

0 commit comments

Comments
 (0)