@trackforce/react-native-aes-crypto
v1.2.3
Published
AES crypto native module for react-native
Downloads
3
Readme
React Native AES
AES encryption/decryption for react-native
Installation
npm install @trackforce/react-native-aes-crypto
or
yarn add @trackforce/react-native-aes-crypto
Linking Automatically
react-native link
Linking Manually
iOS
- See Linking Libraries OR
- Drag RCTAes.xcodeproj to your project on Xcode.
- Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTAes.a from the Products folder inside the RCTAes.xcodeproj.
(Android)
...
include ':@trackforce/react-native-aes-crypto'
project(':@trackforce/react-native-aes-crypto').projectDir = new File(rootProject.projectDir, '../node_modules/@trackforce/react-native-aes-crypto/android')
- In
android/app/build.gradle
...
dependencies {
...
compile project(':@trackforce/react-native-aes-crypto')
}
- register module (in MainApplication.java)
......
import com.trackforce.aes.RCTAesPackage;
......
@Override
protected List<ReactPackage> getPackages() {
......
new RCTAesPackage(),
......
}
Usage
Example
import AES from '@trackforce/react-native-aes-crypto';
function generateKey(password, salt) {
return AES.pbkdf2(password, salt);
}
async function encrypt(text, key) {
const iv = 'base 64 random 16 bytes string';
try {
const ciphertext = await AES.encrypt(text, key, iv);
return { ciphertext, iv };
} catch (error) {
throw error;
}
}
function decrypt(ciphertext, key, iv) {
return AES.decrypt(ciphertext, key, iv);
}
function hmac(ciphertext, key) {
return AES.hmac256(ciphertext, key);
}
(async () => {
try {
const generatedKey = await generateKey('password', 'salt');
console.log(`generatedKey: ${generatedKey}`);
const { ciphertext, iv } = await encrypt('Hello, world!', generatedKey);
console.log(`ciphertext: ${ciphertext}, iv: ${iv}`);
const decryptedText = await decrypt(ciphertext, generatedKey, iv);
console.log(`decrypted: ${decryptedText}`);
const hash = await hmac(ciphertext, generatedKey);
console.log(`hash: ${hash}`);
} catch (error) {
throw error;
}
})();
methods
encrypt(text, key, iv)
decrypt(base64, key, iv)
pbkdf2(text, salt)
hmac256(cipher, key)
sha1(text)
sha256(text)
sha512(text)