1.0.1 • Published 4 years ago

@basis-theory/basis-theory-js-encryption v1.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 years ago

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
1.0.1

4 years ago

1.0.0

4 years ago