1.0.1 • Published 8 years ago
simple-kms-cryptor v1.0.1
Simple KMS Cryptor
Simple cryptor library for encrypting object using AWS KMS key
Usage Example
Prepare the config
The config is compatible directly with the AWS.KMS options as specified here:
Example of config:
let config = {
region: '<your aws region here>',
accessKeyId: '<your aws access key id here>',
secretAccessKey: '<your aws secret access key>',
kms: {
KeyId: '<kms key ARN or KeyId>',
}
}Creating instance
const KMSCrypt = require('simple-kms-crypto');
let kmscrypt = new KMSCrypt(config);Encrypting object
encrypt method will return a promise
- Encrypting
plaintextto a byte array
let plaintext = 'secret text';
kmscrypt.encrypt(plaintext)
.then(ciphertext => {
/*
ciphertext will be a Buffer with holding the encrypted data as byte array
*/
})
.catch(err => {
/*
encryption failed
*/
})- Encrypting
plaintextto a byte array
let plaintext = 'secret text';
kmscrypt.encrypt(plaintext)
.then(ciphertext => {
/*
ciphertext will be a Buffer with holding the encrypted data as byte array
*/
})
.catch(err => {
/*
encryption failed
*/
})Decrypting object
decrypt method will return a promise
- If
ciphertextis a byte array
kmscrypt.decrypt(ciphertext)
.then(plaintext => {
/*
plaintext is decrypted object
*/
})
.catch(err => {
/*
decryption failed
*/
})- If
ciphertextis base64 encoded
kmscrypt.decrypt(ciphertext, 'base64')
.then(plaintext => {
/*
plaintext is decrypted object
*/
})
.catch(err => {
/*
decryption failed
*/
})Methods
encrypt(plaintext, encryptionType) => Promise
plaintextis the object to be encrypted. Supported format:string,object,numberencryptionType: base64 | binary (default)
decrypt(ciphertext, cipherType) => Promise
ciphertextis the encrypted data formatted as binary or base64cipherTypeis the type ofciphertextwhich can be base64 or binary