AES-GCM encryption/decryption for React Native
npm install react-native-aes-gcm-cryptoAES-GCM encryption/decryption for React Native
- iOS >= 13.0
- Android >= 26
``sh`
npm install react-native-aes-gcm-crypto
`js
import AesGcmCrypto from 'react-native-aes-gcm-crypto';
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);
});
`
`ts
type EncryptedData = {
iv: string;
tag: string;
content: string;
};
function encrypt(
plainText: string,
inBinary: boolean,
key: string
): Promise
`
- plainText: A string data to encrypt. If inBinary is true, it should be encoded in Base64.true
- inBinary: to encrypt binary data encoded with Base64
- key: AES key in Base64
`ts`
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
`ts`
function decrypt(
base64Ciphertext: string,
key: string,
iv: string,
tag: string,
isBinary: boolean
): Promise
- base64Ciphertext: A base64 data to decrypt.
- key: AES key in Base64
- iv: An initialization vector
- tag: An auth tag
- isBinary: true to return decrypted data in Base64
`ts`
function decrypt(
inputFilePath: string,
outputFilePath: string,
key: string,
iv: string,
tag: string
): Promise
- 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: true` to return decrypted data in Base64
See the contributing guide to learn how to contribute to the repository and the development workflow.
Takuya Matsuyama | @inkdrop_app
Made for my app called Inkdrop - A Markdown note-taking app
MIT