@celo/react-native-fast-crypto
v2.0.0
Published
Native C/C++ implemented crypto libraries for React Native apps
Downloads
13
Readme
react-native-fast-crypto
This library implements fast, fully native crypto routines for React Native under iOS and Android. Fully built binaries are committed for both platforms but can also be built from scratch.
Getting started
npm install react-native-fast-crypto --save
Mostly automatic installation
react-native link react-native-fast-crypto
Manual installation
Install in iOS app
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜react-native-fast-crypto
and addRNFastCrypto.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNFastCrypto.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
Install in Android app
- Open up
android/app/src/main/java/[...]/MainApplication.java
- Add
import co.airbitz.fastcrypto.RNFastCryptoPackage;
to the imports at the top of the file - Add
new RNFastCryptoPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-fast-crypto' project(':react-native-fast-crypto').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fast-crypto/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-fast-crypto')
Usage
import { scrypt } from 'react-native-fast-crypto';
const data = new Uint8Array([1, 250, 3, 4, 34, 64, 39, 43, 12])
const salt = new Uint8Array([45, 124, 45, 29, 172, 238, 35])
const result: Uint8Array = await crypto.scrypt(data, salt, 16384, 8, 1, 32)
console.log(result)
Build the C/C++ binaries from scratch (optional)
The build process requires several pieces of software to be installed on the host system:
- autoconf
- automake
- cmake
- git
- libtool
- pkgconfig
- protobuf
- astyle
To install these on the Mac, please use Homebrew:
brew install autoconf automake cmake git libtool pkgconfig protobuf astyle
The 'wget' and 'cmake' that come from MacPorts are known to be broken. If you are building for iOS or Mac native, you also need a working installation of the XCode command-line tools.
Xcode 10
Xcode 10 removes the /usr/include files so they must be re-installed by using the package at
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
To build npm run build
. This can take quite a long time as it builds binaries for multiple different architectures.