Native Android JNI bridge for QuantaChain's post-quantum cryptography.
This library is built as a C-dynamic library (cdylib) to provide Kotlin and React Native applications with direct hardware access to Falcon-512 signatures, entirely bypassing WebAssembly engine limitations.
To build the native bindings for ARM mobile devices, you must have the Android NDK installed and configured.
- Rust 1.70+
- Android NDK (r25c recommended)
cargo-ndk
If you do not have the Android SDK globally installed on your system, you can download the standalone NDK locally and use it to cross-compile.
- Download and extract the NDK (r25c):
wget https://dl.google.com/android/repository/android-ndk-r25c-linux.zip
unzip android-ndk-r25c-linux.zip- Export the NDK path to your environment:
export ANDROID_NDK_HOME=$(pwd)/android-ndk-r25c- Install the Rust cross-compilation toolchains:
cargo install cargo-ndk
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android- Build the binary for modern Android (ARM64):
cargo ndk -t arm64-v8a build --releaseThe compiled binary object will be located at target/aarch64-linux-android/release/libquanta_mobile_core.so.
Copy this specific file into your Android project under the app/src/main/jniLibs/arm64-v8a/ directory. You can then interface with the exposed JNI bindings using the exact package path com.quanta.mobile.crypto.NativeCrypto.