use hash-wasm
This commit is contained in:
parent
6431182ec3
commit
bcf8586fbf
@ -38,6 +38,7 @@
|
|||||||
"crypto-browserify": "^3.12.0",
|
"crypto-browserify": "^3.12.0",
|
||||||
"domain-browser": "^4.22.0",
|
"domain-browser": "^4.22.0",
|
||||||
"events": "^3.3.0",
|
"events": "^3.3.0",
|
||||||
|
"hash-wasm": "^4.9.0",
|
||||||
"hi-base32": "^0.5.1",
|
"hi-base32": "^0.5.1",
|
||||||
"https-browserify": "^1.0.0",
|
"https-browserify": "^1.0.0",
|
||||||
"lovefield-ts": "^0.7.0",
|
"lovefield-ts": "^0.7.0",
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { randomBytes, pbkdf2, createDecipheriv, createCipheriv } from "crypto";
|
import { randomBytes, createDecipheriv, createCipheriv } from "crypto";
|
||||||
|
import { pbkdf2, createSHA256 } from "hash-wasm";
|
||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
import * as base32 from "hi-base32";
|
import * as base32 from "hi-base32";
|
||||||
import { bufferToArrayBuffer, arrayBufferToBuffer } from "./misc";
|
import { bufferToArrayBuffer, arrayBufferToBuffer } from "./misc";
|
||||||
@ -11,13 +12,14 @@ export const encryptBuffer = async (
|
|||||||
rounds: number = DEFAULT_ITER
|
rounds: number = DEFAULT_ITER
|
||||||
) => {
|
) => {
|
||||||
const salt = await promisify(randomBytes)(8);
|
const salt = await promisify(randomBytes)(8);
|
||||||
const derivedKey = await promisify(pbkdf2)(
|
const derivedKey = await pbkdf2({
|
||||||
password,
|
password: password,
|
||||||
salt,
|
salt: salt,
|
||||||
rounds,
|
iterations: rounds,
|
||||||
32 + 16,
|
hashLength: 32 + 16,
|
||||||
"sha256"
|
hashFunction: createSHA256(),
|
||||||
);
|
outputType: "binary",
|
||||||
|
});
|
||||||
const key = derivedKey.slice(0, 32);
|
const key = derivedKey.slice(0, 32);
|
||||||
const iv = derivedKey.slice(32, 32 + 16);
|
const iv = derivedKey.slice(32, 32 + 16);
|
||||||
const cipher = createCipheriv("aes-256-cbc", key, iv);
|
const cipher = createCipheriv("aes-256-cbc", key, iv);
|
||||||
@ -35,13 +37,14 @@ export const decryptBuffer = async (
|
|||||||
) => {
|
) => {
|
||||||
const prefix = buf.slice(0, 8);
|
const prefix = buf.slice(0, 8);
|
||||||
const salt = buf.slice(8, 16);
|
const salt = buf.slice(8, 16);
|
||||||
const derivedKey = await promisify(pbkdf2)(
|
const derivedKey = await pbkdf2({
|
||||||
password,
|
password: password,
|
||||||
salt,
|
salt: salt,
|
||||||
rounds,
|
iterations: rounds,
|
||||||
32 + 16,
|
hashLength: 32 + 16,
|
||||||
"sha256"
|
hashFunction: createSHA256(),
|
||||||
);
|
outputType: "binary",
|
||||||
|
});
|
||||||
const key = derivedKey.slice(0, 32);
|
const key = derivedKey.slice(0, 32);
|
||||||
const iv = derivedKey.slice(32, 32 + 16);
|
const iv = derivedKey.slice(32, 32 + 16);
|
||||||
const decipher = createDecipheriv("aes-256-cbc", key, iv);
|
const decipher = createDecipheriv("aes-256-cbc", key, iv);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user