wincrypt

Node.js wrapper around the Windows Data Protection API written in Rust.


License
Apache-2.0
Install
npm install wincrypt@1.0.0

Documentation

WinCrypt

⚠️ Windows Only

WinCrypt is built in rust and uses the native windows api's CryptProtectData and CryptUnprotectData functions

Example

const wincrypt = require("wincrypt");

const text = Buffer.from("test");
const pass = Buffer.from("123");

const encrypted = wincrypt.protectData(text, pass);

console.log(wincrypt.unprotectData(encrypted, pass).toString()); // Prints "test"

Types

export const enum Flags {
  CurrentUser = "CurrentUser",
  LocalMachine = "LocalMachine"
}

export function protectData(
  data: Buffer,
  optionalEntropy?: Buffer | undefined | null,
  flags?: Flags | undefined | null
): Buffer;

export function unprotectData(
  data: Buffer,
  optionalEntropy?: Buffer | undefined | null,
  flags?: Flags | undefined | null
): Buffer;

Usage

Without password

wincrypt.protectData(Buffer.from("test"));

With custom flag (only CRYPTPROTECT_LOCAL_MACHINE supported)

INFO: Default flag is 0 ("CurrentUser")

wincrypt.protectData(Buffer.from("test"), null, wincrypt.Flags.LocalMachine);
// or
wincrypt.protectData(Buffer.from("test"), null, "LocalMachine");

The usage for unprotectData method is the same as protectData

© (C) Angelo II Apache-2.0 license, all right reserved