bitsal / react-native-aes

Native module for AES encryption

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Native AES

AES encryption/decryption for react-native

Installation

npm install --save react-native-aes-crypto

Installation (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.

Installation (Android)

Untested!

...
include ':react-native-aes'
project(':react-native-aes').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-aes/android/RCTAes')
  • In android/app/build.gradle
...
dependencies {
    ...
    compile project(':react-native-aes')
}
  • register module (in MainApplication.java)
......
import com.tectiv3.aes.RCTAesPackage;

......

@Override
protected List<ReactPackage> getPackages() {
   ......
   new RCTAesPackage(),
   ......
}

Usage

Example

import { NativeModules } from 'react-native';
var Aes = NativeModules.Aes;

try {
    Aes.pbkdf2("Arnold", "salt").then(key => {
        console.log('Key:', key);
        var iv = "random string";
        Aes.encrypt("These violent delights have violent ends", key, iv).then(cipher => {
            console.log("Encrypted: ", cipher);
            Aes.decrypt(cipher, key, iv).then(text => {
                console.log("Decrypted:", text);
            });
            Aes.hmac256(cipher, key).then(hash => {
                console.log("HMAC", hash);
            });
        });
    });
} catch (e) {
    console.error(e);
}

Or

async function decrypt(cipher, key, iv) {
    try {
        var text = await Aes.decrypt(cipher, key, iv);
        console.log(text);
        return text;
    } catch (e) {
        console.error(e);
    }
}

methods

  • encrypt(text, key, iv)
  • decrypt(base64, key, iv)
  • pbkdf2(text, salt)
  • hmac256(cipher, key)
  • sha1(text)
  • sha256(text)
  • sha512(text)

About

Native module for AES encryption

License:GNU General Public License v3.0


Languages

Language:Objective-C 60.9%Language:Java 38.7%Language:JavaScript 0.4%