Skip to content

saleshandy/aws-kms-crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aws-kms-crypto

A Javascript library to encrypt and decrypt plain text using AWS KMS service

How to use it

aws-kms-crypto contains two class and both can be used to encrypt and/or decrypt any payload for separate scenarios.

Method 1

This method provides simple encryption and decryption flow without any access logging or validation.

const {AWSKMSCrypto} = require('aws-kms-crypto');

// create AWSKMSCrypto object by passing aws configuration
const kms = new AWSKMSCrypto({
	keyId: <AWS_KMS_KEY_ID>,
	accessKeyId: <AWS_ACCESS_KEY_ID>,
	secretAccessKey: <AWS_SECRET_ACCESS_KEY>,
	region: <AWS_REGION_NAME>
});

const plainText = "I am about it encrypt :(";

// call encrypt function
const cipherText = await kms.encrypt(plainText);
console.log(cipherText);

// call decrypt function
const  decryptedPlainText = await kms.decrypt(cipherText);
console.log(decryptedPlainText);

Method 2

This method provides strict validation and console logging on top of encryption and decryption function. It will validate payload and check for necessary details and after validating it will call encrypt/decrypt function.

const {AWSKMSValidatorAndLogger} = require('aws-kms-crypto');


// create AWSKMSCrypto object by passing aws configuration
const kms = new AWSKMSValidatorAndLogger({
	keyId: <AWS_KMS_KEY_ID>,
	accessKeyId: <AWS_ACCESS_KEY_ID>,
	secretAccessKey: <AWS_SECRET_ACCESS_KEY>,
	region: <AWS_REGION_NAME>
});

const plainText = "I am about it encrypt :(";

// call encrypt function
const cipherText = await kms.encryptToken({
	tokenPayload: plainText,
	ipAddress: "192.168.2.5",
	user: "rutvik@saleshandy.com",
	userRole: "Support User",
	tokenOwner: "vishal@saleshandy.com",
	reason: kms.tokenUsageReason.tokenGenerated
});
console.log(cipherText);

// call decrypt function
const decryptedPlainText = await kms.decryptToken({
	encryptedTokenPayload: cipherText,
	ipAddress: "192.168.2.5",
	user: "rutvik@saleshandy.com",
	userRole: "Support User",
	tokenOwner: "vishal@saleshandy.com",
	reason: kms.tokenUsageReason.tokenGenerated
});
console.log(decryptedPlainText);

About

Package that lets you integrate AWS KMS seamlessly in your javascript project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published