@basis-theory/basis-theory-js-encryption
v1.0.1
Published
The [Basis Theory](https://basistheory.com/) JS Encryption SDK
Downloads
78
Maintainers
Keywords
Readme
BasisTheory JS Encryption
The Basis Theory JS Encryption SDK
Installation
Using Node Package Manager
npm install --save @basis-theory/basis-theory-js-encryption
Using Yarn
yarn add @basis-theory/basis-theory-js-encryption
Documentation
For further documentation and examples, please refer to our Docs.
Usage
Initialization
import { BasisTheoryEncryption } from '@basis-theory/basis-theory-js-encryption';
const btEncryption = await new BasisTheoryEncryption().init([new EncryptionProvider()]); // replace with an actual provider(s)
Encryption and Key Management
Encryption and Key Management is provided to enable you to manage your own data encryption and key storage with your KMS provider(s) of choice.
Key Management
import { BasisTheoryEncryption } from '@basis-theory/basis-theory-js-encryption';
// Given provider(s) will register it's factories for the services
const btEncryption = await new BasisTheoryEncryption().init([new EncryptionProvider()]);
// Retrieves or creates a key by name with a registered ProviderKeyFactory for the provided provider and algorithm
let providerEncryptionKey = await btEncryption.providerKeyService.getOrCreateKey('encryption-key', 'AZURE', 'RSA');
providerEncryptionKey = await btEncryption.providerKeyService.getKeyByKeyId(providerEncryptionKey.keyId);
Encryption and Decryption
import { v4 as uuid } from 'uuid';
import { BasisTheoryEncryption } from '@basis-theory/basis-theory-js-encryption';
// Given provider will register it's factories for the services.
const btEncryption = await new BasisTheoryEncryption().init(new EncryptionProvider());
// Provider Key which was generated from the ProviderKeyService
let providerEncryptionKey: ProviderEncryptionKey = {
keyId: uuid(),
providerKeyId: 'https://custom-kms.vault.azure.net/keys/encryption-key/809b10a3cedb83e83bbaeb5e8c762fab',
algorithm: 'RSA',
provider: 'AZURE'
};
// Encrypt string to get back a wrapped encryptedData with a reference to the providerEncryptionKey
const encryptedData = await btEncryption.encryptionService.encrypt('My Super Secret', providerEncryptionKey);
// Use Encrypted Data and Provider Encryption Key to decrypt the the value and get back the original plainText
const plainText = await btEncryption.encryptionService.decrypt(encryptedData, providerEncryptionKey);
Development
The provided scripts with the SDK will check for all dependencies, start docker, build the solution, and run all tests.
Dependencies
Build the SDK and run Tests
Run the following command from the root of the project:
make verify