AES encryption/decryption in react native
- AES-256-CBC
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!')
}
}
)
}
)