Comments (9)
Is there any progress on this? Currently it is impossible to work out how to use this library because the examples in the README are very vague and don't explain what they are doing. And there is no other documentation available that I can find.
from react-native-rsa-native.
No, sorry.
The examples do sum up the capabilities of the library.
They are pretty self-explanatory.
If you have any issues you can open an issue.
from react-native-rsa-native.
They're really not self-explanatory, I'm afraid.
What is the difference between RSA.generateKeys()
and RSA.generate()
? What does RSAKeychain.generate()
do, and what is the role of the keyTag
? Does all of it work on both Android and iOS?
What exactly does the act of chaining the RSAKeychain.sign().then(...verify)
on to the result of the RSAKeychain.encrypt().then(...decrypt)
do?
from react-native-rsa-native.
RSA.generateKeys(4096)
lets you set the key size.
RSA.generate()
is just short for RSA.generateKeys(2048)
RSAKeychain
is very similar to RSA
but it saves the private key in the device's keychain, iOS & Android support
https://developer.android.com/reference/android/security/KeyChain
https://developer.apple.com/documentation/security/keychain_services
The chaining is just js promises, verify
uses the result from sign
so it needs to wait for verify
.
It should be written using async await, much cleaner
from react-native-rsa-native.
Okay, I will read up on those device keychains. I assume the purpose of keyTag
is explained in those? Is it just an identifier so you can differentiate between multiple different keys stored on one device?
And are you saying that this would make storage of the keys automatic, so that the developer would not need to manage storage themselves?
Regarding the promise chaining, my question was more around why the result of the encrypt/decrypt promise gets chained on to the sign/verify one. Is that just a rushed example, or is there some connection between them? Specifically:
RSAKeychain.generate(keyTag)
.then(keys => {
return RSAKeychain.encrypt(secret, keyTag)
.then(encodedMessage => {
RSAKeychain.decrypt(encodedMessage, keyTag)
.then(message => {});
});
}).then(() => {
// why is this part chained on to the result of the previous part?
return RSAKeychain.sign(secret, keyTag)
.then(signature => {
RSAKeychain.verify(signature, secret, keyTag)
.then(isValid => {
// I assume isValid is a boolean?
});
})
...
Cheers!
from react-native-rsa-native.
keyTag
is just an identifier.
Yes keychain handles the storage of the private keys on the device
Chaining: No real reason, just linking the examples on the same keyTag.
isValid
should be a boolean
from react-native-rsa-native.
If it's alright with you, I might do a pull request later in the week to clarify some of this documentation.
Not sure precisely when it'll be, as I'm away from my main workstation for the next few weeks.
from react-native-rsa-native.
That would be great!
Thanks!
from react-native-rsa-native.
Hey, PR has been created now.
from react-native-rsa-native.
Related Issues (20)
- Incompatible Format
- Using RSA.signWithAlgorithm throws an error with some algorithms
- MIT License issue
- RSA decryption doesn't works with newest react native version 0.68 HOT 1
- fatal error: module map file ... react_native_rsa_native.modulemap not found HOT 1
- Android 8.1.0
- RSAECNative.swift line 357_ RSAECNative._encrypt(data:) HOT 2
- RSAKeychain - do key pairs get shared across devices with same iCloud account?
- On iOS RSAKeychain.getPublicKey returns an object instead of a string HOT 1
- After upgrade from v1 to v2 the keys are lost on iOS devices HOT 1
- [Unhandled promise rejection: TypeError: null is not an object (evaluating '_reactNativeRsaNative.RSA.generateKeys')] HOT 8
- Open to maintain library HOT 1
- IOS Build fails "include of non-modular header"
- Inconsistent parameter order
- Differently formatted keys on android and iOS HOT 1
- Improper key description in Readme file
- How to test code using this library?
- What algorithm is used to sign a message?
- This Lib works with Expo? HOT 2
- Could not build Objective-C module 'react_native_rsa_native' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-native-rsa-native.