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()]);
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';
const btEncryption = await new BasisTheoryEncryption().init([new EncryptionProvider()]);
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';
const btEncryption = await new BasisTheoryEncryption().init(new EncryptionProvider());
let providerEncryptionKey: ProviderEncryptionKey = {
keyId: uuid(),
providerKeyId: 'https://custom-kms.vault.azure.net/keys/encryption-key/809b10a3cedb83e83bbaeb5e8c762fab',
algorithm: 'RSA',
provider: 'AZURE'
};
const encryptedData = await btEncryption.encryptionService.encrypt('My Super Secret', providerEncryptionKey);
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