react-native-aes-gcm-crypto
AES-GCM encryption/decryption for React Native
Requirements
- iOS >= 13.0
 - Android >= 26
 
Installation
npm install react-native-aes-pdf 
Usage
import AesGcmCrypto from 'react-native-aes-pdf';
const key = 'Yzg1MDhmNDYzZjRlMWExOGJkNTk5MmVmNzFkOGQyNzk=';
AesGcmCrypto.decrypt(
  'LzpSalRKfL47H5rUhqvA',
  key,
  '131348c0987c7eece60fc0bc',
  '5baa85ff3e7eda3204744ec74b71d523',
  false
).then((decryptedData) => {
  console.log(decryptedData);
});
AesGcmCrypto.encrypt('{"name":"Hoge"}', false, key).then((result) => {
  console.log(result);
}); 
Encrypt data
type EncryptedData = {
  iv: string;
  tag: string;
  content: string;
};
function encrypt(
  plainText: string,
  inBinary: boolean,
  key: string
): Promise<EncryptedData>; 
- plainText: A string data to encrypt. If 
inBinaryistrue, it should be encoded in Base64. - inBinary: 
trueto encrypt binary data encoded with Base64 - key: AES key in Base64
 
Encrypt file
function encryptFile(
  inputFilePath: string,
  outputFilePath: string,
  key: string
): Promise<{
  iv: string;
  tag: string;
}>; 
- inputFilePath: A file path to encrypt
 - outputFilePath: An output file path
 - key: AES key in Base64
 
Decrypt data
function decrypt(
  base64Ciphertext: string,
  key: string,
  iv: string,
  tag: string,
  isBinary: boolean
): Promise<string>; 
- base64Ciphertext: A base64 data to decrypt.
 - key: AES key in Base64
 - iv: An initialization vector
 - tag: An auth tag
 - isBinary: 
trueto return decrypted data in Base64 
Decrypt file
function decrypt(
  inputFilePath: string,
  outputFilePath: string,
  key: string,
  iv: string,
  tag: string
): Promise<boolean>; 
- inputFilePath: A file path to decrypt
 - outputFilePath: An output file path
 - key: AES key in Base64
 - iv: An initialization vector
 - tag: An auth tag
 - isBinary: 
trueto return decrypted data in Base64 
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
Author
Takuya Matsuyama | @inkdrop_app
Made for my app called Inkdrop - A Markdown note-taking app
License
MIT