aes encryption/decryption in react native
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ios initial code Dec 17, 2015
.gitignore Initial commit Dec 17, 2015
LICENSE Initial commit Dec 17, 2015
README.md add usage Dec 17, 2015
index.js initial code Dec 17, 2015
package.json initial code Dec 17, 2015

README.md

react-native-aes

AES encryption/decryption in react native

Supported Ciphers

  • AES-256-CBC

Usage

var AES = require('react-native-aes')
var Buffer = require('buffer').Buffer

var stringInput = 'hey ho'
var bufferInput = new Buffer(stringInput)
// sample key
var key = new Buffer('f0ki13SQeRpLQrqk73UxhBAI7vd35FgYrNkVybgBIxc=', 'base64')
var cipherName = 'AES-256-CBC'
AES.encryptWithCipher(
  cipherName,   // String
  bufferInput,  // Buffer (input data)
  key,          // AES key, e.g. 32 bytes of random data
  function (err, encrypted) {
//  "encrypted" is of the form
//  {
//    ciphertext: Buffer,
//    iv: Buffer
//  }
//
//  you'll need both parts to decrypt

    AES.decryptWithCipher(
      cipherName,             // String
      encrypted.ciphertext,   // Buffer (input data)
      key,
      encrypted.iv,           // Buffer
      function (err, plaintext) {
        // plaintext is a Buffer
        if (plaintext.toString() !== stringInput) {
          throw new Error('time to report an issue!')
        }
      }
    )
  }
)