Skip to content

Repository files navigation

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

About

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

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages