Package Exports
- react-native-keypair-lib
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-native-keypair-lib) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
react-native-keypair-lib
Getting started
$ npm install react-native-keypair-lib --save
Mostly automatic installation
$ react-native link react-native-keypair-lib
Usage (Android)
Make alterations to the following files:
android/settings.gradle
...
include ':react-native-keypair-lib'
project(':react-native-keypair-lib').projectDir = new File(settingsDir, '../node_modules/react-native-keypair-lib/android')
android/app/build.gradle
...
dependencies {
...
implementation project(':react-native-keypair-lib')
}
register module (in MainActivity.java)
- For react-native below 0.19.0 (use
cat ./node_modules/react-native/package.json | grep version
)
- For react-native below 0.19.0 (use
import com.reactlibrary.ReactNativeKeypairLibPackage; // <--- import
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new ReactNativeKeypairLibPackage()) // <------- add package
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}
......
}
- For react-native 0.19.0 and higher
import com.reactlibrary.ReactNativeKeypairLibPackage; // <------- add package
public class MainActivity extends ReactActivity {
// ...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(), // <---- add comma
new ReactNativeKeypairLibPackage() // <---------- add package
);
}
- For react-native 0.29.0 and higher ( in MainApplication.java )
import com.reactlibrary.ReactNativeKeypairLibPackage; // <------- add package
public class MainApplication extends Application implements ReactApplication {
// ...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(), // <---- add comma
new ReactNativeKeypairLibPackage() // <---------- add package
);
}
Usage
import { sanitizeAnswers } from 'react-native-keypair-lib';
const answers = {
question1: "L'Aquila",
question2: "C arl",
question3: "88 ggg",
question4: "null",
question5: "null",
};
sanitizeAnswers(answers);
outcome:
{
"question1": "laquila",
"question2": "carl",
"question3": "88ggg",
"question4": "null",
"question5": "null",
}
import { recoveryKeypair } from 'react-native-keypair-lib';
const answers = {
question1: "Paris",
question2: "ScoobyDoo",
question3: "Amsterdam",
question4: "null",
question5: "null",
};
const PBKDF = "qf3skXnPGFMrE28UJS7S8BdT8g==";
const username = "user";
const data = await recoveryKeypair(contractClientSide, answers, PBKDF);
outcome:
{
"hashedAnswers": {
"question1.hash": "XdJytPMWt3anuOPQiUs34eQr49XTsgS4pYNsxQWXprE=",
"question2.hash": "2hauYmg/8TGnG5IeCTzlFKHvw1XpxbKaMdmEUbUNQ2c=",
"question3.hash": "ABPAH+DQlCCbi9PSO4+W26vNAd3SoDnuuoLRiRrPDWE=",
"question4.hash": "dCNOmK/nSY+12vHzasLXiswzlGT5UHA7jAGYkvmCuQs=",
"question5.hash": "dCNOmK/nSY+12vHzasLXiswzlGT5UHA7jAGYkvmCuQs=",
},
"user": {
"keypair": {
"private_key": "VUVdIyPeC+x3o66b+n06Jxc4c3p9TBFfaSiaEPx5FmI=",
"public_key":
"BDYfET6GOWSTizMYIRfcthw2MKksTpg+f8LR0ndq6fRxOLfhT7d1IjvwkvV0LzlzHuGat8SF9unNwhA3alpQ8So=",
},
},
}
import {verifyAnswers } from 'react-native-keypair-lib';
const answers = {
question1: "Paris",
question2: "ScoobyDoo",
question3: "Amsterdam",
question4: "null",
question5: "null",
};
const PBKDF = "qf3skXnPGFMrE28UJS7S8BdT8g==";
const publicKey =
"BDYfET6GOWSTizMYIRfcthw2MKksTpg+f8LR0ndq6fRxOLfhT7d1IjvwkvV0LzlzHuGat8SF9unNwhA3alpQ8So=";
const username = "user";
const data = await verifyAnswers(contractClientSide, answers, PBKDF, publicKey);
outcome:
true