Browse Source

fix android compilation problems

heitorpr 6 years ago
parent
commit
2a9ef2b587

+ 1 - 1
Readme.md

@@ -35,7 +35,7 @@ The _lib_ [PublicaIO/react-native-pbkdf2](https://github.com/PublicaIO/react-nat
 #### Android
 
 1. Open up `android/app/src/main/java/[...]/MainActivity.java`
-  - Add `import rnpbkdf2.PBKDF2;` to the imports at the top of the file
+  - Add `import rnpbkdf2.PBKDF2Package;` to the imports at the top of the file
   - Add `new PBKDF2Package()` to the list returned by the `getPackages()` method
 2. Append the following lines to `android/settings.gradle`:
   	```

+ 25 - 52
android/src/main/java/rnpbkdf2/PBKDF2.java

@@ -1,43 +1,17 @@
-package pbkdf2;
+package rnpbkdf2;
 
-import android.widget.Toast;
-
-import java.io.IOException;
-import java.security.SecureRandom;
-import java.util.HashMap;
-import java.util.Map;
-
-import java.util.UUID;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
-import java.security.InvalidKeyException;
-
-import java.nio.charset.StandardCharsets;
-
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.Mac;
+import com.facebook.react.bridge.Promise;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
 
 import org.spongycastle.crypto.digests.SHA512Digest;
 import org.spongycastle.crypto.generators.PKCS5S2ParametersGenerator;
 import org.spongycastle.crypto.params.KeyParameter;
-import org.spongycastle.util.encoders.Hex;
 
-import android.util.Base64;
-
-import com.facebook.react.bridge.NativeModule;
-import com.facebook.react.bridge.ReactApplicationContext;
-import com.facebook.react.bridge.Promise;
-import com.facebook.react.bridge.ReactContext;
-import com.facebook.react.bridge.ReactContextBaseJavaModule;
-import com.facebook.react.bridge.ReactMethod;
-import com.facebook.react.bridge.Callback;
+import java.nio.charset.StandardCharsets;
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.InvalidKeySpecException;
 
 public class PBKDF2 extends ReactContextBaseJavaModule {
 
@@ -47,25 +21,10 @@ public class PBKDF2 extends ReactContextBaseJavaModule {
         super(reactContext);
     }
 
-    @Override
-    public String getName() {
-        return "PBKDF2";
-    }
-
-    @ReactMethod
-    public void derivationKey(String pwd, String salt, Integer iterations, Promise promise) {
-        try {
-            String strs = pbkdf2(pwd, salt, iterations, SHA512_DIGEST_LENGTH);
-            promise.resolve(strs);
-        } catch (Exception e) {
-            promise.reject("-1", e.getMessage());
-        }
-    }
-
     public static String bytesToHex(byte[] bytes) {
         final char[] hexArray = "0123456789abcdef".toCharArray();
         char[] hexChars = new char[bytes.length * 2];
-        for ( int j = 0; j < bytes.length; j++ ) {
+        for (int j = 0; j < bytes.length; j++) {
             int v = bytes[j] & 0xFF;
             hexChars[j * 2] = hexArray[v >>> 4];
             hexChars[j * 2 + 1] = hexArray[v & 0x0F];
@@ -74,11 +33,25 @@ public class PBKDF2 extends ReactContextBaseJavaModule {
     }
 
     private static String derivationKey(String pwd, String salt, Integer cost, Integer length)
-    throws NoSuchAlgorithmException, InvalidKeySpecException
-    {
+            throws NoSuchAlgorithmException, InvalidKeySpecException {
         PKCS5S2ParametersGenerator gen = new PKCS5S2ParametersGenerator(new SHA512Digest());
         gen.init(pwd.getBytes(StandardCharsets.UTF_8), salt.getBytes(StandardCharsets.UTF_8), cost);
         byte[] key = ((KeyParameter) gen.generateDerivedParameters(length)).getKey();
         return bytesToHex(key);
     }
+
+    @Override
+    public String getName() {
+        return "PBKDF2";
+    }
+
+    @ReactMethod
+    public void derivationKey(String pwd, String salt, Integer iterations, Promise promise) {
+        try {
+            String strs = derivationKey(pwd, salt, iterations, SHA512_DIGEST_LENGTH);
+            promise.resolve(strs);
+        } catch (Exception e) {
+            promise.reject("-1", e.getMessage());
+        }
+    }
 }

+ 3 - 5
android/src/main/java/rnpbkdf2/PBKDF2Package.java

@@ -1,16 +1,14 @@
 package rnpbkdf2;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
 import com.facebook.react.ReactPackage;
 import com.facebook.react.bridge.JavaScriptModule;
 import com.facebook.react.bridge.NativeModule;
 import com.facebook.react.bridge.ReactApplicationContext;
 import com.facebook.react.uimanager.ViewManager;
 
-import rnpbkdf2.PBKDF2;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 public class PBKDF2Package implements ReactPackage {
     @Override