Node.js wrapper around the Windows Data Protection API written in Rust.
npm install wincryptjs
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
`ts
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
$3
`js
wincrypt.protectData(Buffer.from("test"));
`
$3
> INFO: Default flag is 0 ("CurrentUser")
`js
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`