Skip to content

Repository files navigation

React Native AES

AES encryption/decryption for react-native

Installation

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

or

yarn add 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-crypto'
project(':react-native-aes-crypto').projectDir =newFile(rootProject.projectDir, '../node_modules/react-native-aes-crypto/android')
  • In android/app/build.gradle
...
dependencies {
...
compile project(':react-native-aes-crypto')
}
  • register module (in MainApplication.java)
......
importcom.tectiv3.aes.RCTAesPackage;
......
@OverrideprotectedList<ReactPackage> getPackages() {
......
newRCTAesPackage(),
......
}

Usage

Example

import{NativeModules,Platform}from'react-native'varAes=NativeModules.AesconstgenerateKey=(password,salt,cost,length)=>Aes.pbkdf2(password,salt,cost,length)constencrypt=(text,keyBase64)=>{returnAes.randomKey(32).then(iv=>{returnAes.encrypt(text,keyBase64,iv).then(cipher=>({
cipher,
iv,}))})}constdecrypt=(encryptedData,key)=>Aes.decrypt(encryptedData.cipher,key,encryptedData.iv)try{generateKey('Arnold','salt',5000,512).then(key=>{console.log('Key:',key)encrypt('These violent delights have violent ends',key).then(({ cipher, iv })=>{console.log('Encrypted:',cipher)decrypt({ cipher, iv },key).then(text=>{console.log('Decrypted:',text)}).catch(error=>{console.log(error)})Aes.hmac256(cipher,key).then(hash=>{console.log('HMAC',hash)})}).catch(error=>{console.log(error)})})}catch(e){console.error(e)}

Or

asyncfunctionasyncDecrypt(cipher,key,iv){try{vartext=awaitdecrypt({ cipher, iv },key)console.log(text)returntext}catch(e){console.error(e)}}

methods

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

About

Native module for AES encryption

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages