diff options
Diffstat (limited to 'android/app/src')
3 files changed, 55 insertions, 0 deletions
diff --git a/android/app/src/main/java/xyz/blueskyweb/pubsq/AppSecureRandomModule.java b/android/app/src/main/java/xyz/blueskyweb/pubsq/AppSecureRandomModule.java new file mode 100644 index 000000000..96887c36f --- /dev/null +++ b/android/app/src/main/java/xyz/blueskyweb/pubsq/AppSecureRandomModule.java @@ -0,0 +1,28 @@ +package xyz.blueskyweb.pubsq; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.Promise; + +import java.security.SecureRandom; +import android.util.Base64; + +public class AppSecureRandomModule extends ReactContextBaseJavaModule { + public AppSecureRandomModule(ReactApplicationContext context) { + super(context); + } + + @ReactMethod + public void generateSecureRandomAsBase64(int length, Promise promise) { + SecureRandom secureRandom = new SecureRandom(); + byte[] buffer = new byte[length]; + secureRandom.nextBytes(buffer); + promise.resolve(Base64.encodeToString(buffer, Base64.NO_WRAP)); + } + + @Override + public String getName() { + return "AppSecureRandomModule"; + } +} diff --git a/android/app/src/main/java/xyz/blueskyweb/pubsq/AppSecureRandomPackage.java b/android/app/src/main/java/xyz/blueskyweb/pubsq/AppSecureRandomPackage.java new file mode 100644 index 000000000..1fd650747 --- /dev/null +++ b/android/app/src/main/java/xyz/blueskyweb/pubsq/AppSecureRandomPackage.java @@ -0,0 +1,26 @@ +package xyz.blueskyweb.pubsq; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class AppSecureRandomPackage implements ReactPackage { + + @Override + public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } + + @Override + public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { + List<NativeModule> modules = new ArrayList<>(); + modules.add(new AppSecureRandomModule(reactContext)); + return modules; + } + +} \ No newline at end of file diff --git a/android/app/src/main/java/xyz/blueskyweb/pubsq/MainApplication.java b/android/app/src/main/java/xyz/blueskyweb/pubsq/MainApplication.java index abd0f1640..8c554a480 100644 --- a/android/app/src/main/java/xyz/blueskyweb/pubsq/MainApplication.java +++ b/android/app/src/main/java/xyz/blueskyweb/pubsq/MainApplication.java @@ -28,6 +28,7 @@ public class MainApplication extends Application implements ReactApplication { List<ReactPackage> packages = new PackageList(this).getPackages(); // Packages that cannot be autolinked yet can be added manually here, for example: // packages.add(new MyReactNativePackage()); + packages.add(new AppSecureRandomPackage()); return packages; } |