@rlvt/crypt 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js
CHANGED
|
@@ -1,59 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
4
|
};
|
|
21
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
6
|
exports.decrypt = exports.encrypt = void 0;
|
|
23
|
-
const
|
|
7
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
24
8
|
const generateKey = (password) => {
|
|
25
|
-
const cryptographicHash =
|
|
26
|
-
cryptographicHash.update(
|
|
9
|
+
const cryptographicHash = node_crypto_1.default.createHash('md5');
|
|
10
|
+
cryptographicHash.update(password);
|
|
27
11
|
const key = cryptographicHash.digest('hex');
|
|
28
12
|
return key;
|
|
29
13
|
};
|
|
30
14
|
const generateInitializationVector = (password) => {
|
|
31
|
-
const cryptographicHash =
|
|
15
|
+
const cryptographicHash = node_crypto_1.default.createHash('md5');
|
|
32
16
|
// why `undefined` you would ask ? Simply because someone added a undefined
|
|
33
17
|
// variable long ago, so to be compatible we have no choice :)
|
|
34
|
-
cryptographicHash.update(`${password}
|
|
18
|
+
cryptographicHash.update(`${password}undefined`);
|
|
35
19
|
const initializationVector = cryptographicHash.digest('hex');
|
|
36
20
|
return initializationVector;
|
|
37
21
|
};
|
|
38
|
-
|
|
22
|
+
const IV_LENGTH = 16;
|
|
23
|
+
const SLICE_START = 0;
|
|
24
|
+
const encrypt = (input, password) => {
|
|
39
25
|
const key = generateKey(password);
|
|
40
26
|
const initializationVector = generateInitializationVector(password);
|
|
41
|
-
const data = Buffer.from(input
|
|
42
|
-
const cipher =
|
|
27
|
+
const data = Buffer.from(input, 'utf8').toString('binary');
|
|
28
|
+
const cipher = node_crypto_1.default.createCipheriv('aes-256-cbc', key, initializationVector.slice(SLICE_START, IV_LENGTH));
|
|
43
29
|
let encrypted = cipher.update(data, 'utf8', 'hex');
|
|
44
30
|
encrypted += cipher.final('hex');
|
|
45
31
|
const encoded = Buffer.from(encrypted, 'binary').toString('base64');
|
|
46
32
|
return encoded;
|
|
47
33
|
};
|
|
48
|
-
exports.
|
|
34
|
+
exports.encrypt = encrypt;
|
|
35
|
+
const decrypt = (input, password) => {
|
|
49
36
|
const key = generateKey(password);
|
|
50
37
|
const initializationVector = generateInitializationVector(password);
|
|
51
38
|
const inputReplaced = input.replace(/-/g, '+').replace(/_/g, '/');
|
|
52
39
|
const data = Buffer.from(inputReplaced, 'base64').toString('binary');
|
|
53
|
-
const decipher =
|
|
40
|
+
const decipher = node_crypto_1.default.createDecipheriv('aes-256-cbc', key, initializationVector.slice(SLICE_START, IV_LENGTH));
|
|
54
41
|
let decrypted = decipher.update(data, 'hex', 'utf8');
|
|
55
42
|
decrypted += decipher.final('utf8');
|
|
56
43
|
const decoded = Buffer.from(decrypted, 'binary').toString('utf8');
|
|
57
44
|
return decoded;
|
|
58
45
|
};
|
|
59
|
-
|
|
46
|
+
exports.decrypt = decrypt;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWdDO0FBRWhDLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO0lBQ3ZDLE1BQU0saUJBQWlCLEdBQUcscUJBQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUUzQyxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQUVELE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxxQkFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCwyRUFBMkU7SUFDM0UsOERBQThEO0lBRTlELGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsV0FBVyxDQUFDLENBQUE7SUFDaEQsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFNUQsT0FBTyxvQkFBb0IsQ0FBQTtBQUM3QixDQUFDLENBQUE7QUFFRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUE7QUFDcEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFBO0FBRWQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ3pELE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNqQyxNQUFNLG9CQUFvQixHQUFHLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRW5FLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUUxRCxNQUFNLE1BQU0sR0FBRyxxQkFBTSxDQUFDLGNBQWMsQ0FDbEMsYUFBYSxFQUNiLEdBQUcsRUFDSCxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUNuRCxDQUFBO0lBQ0QsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ2xELFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNuRSxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFmWSxRQUFBLE9BQU8sV0FlbkI7QUFFTSxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQWEsRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDekQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sb0JBQW9CLEdBQUcsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFbkUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNqRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFcEUsTUFBTSxRQUFRLEdBQUcscUJBQU0sQ0FBQyxnQkFBZ0IsQ0FDdEMsYUFBYSxFQUNiLEdBQUcsRUFDSCxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUNuRCxDQUFBO0lBQ0QsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3BELFNBQVMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25DLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVqRSxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFqQlksUUFBQSxPQUFPLFdBaUJuQiJ9
|
package/package.json
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rlvt/crypt",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Crypt functions (encrypt/decrypt)",
|
|
5
5
|
"main": "build/index.js",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">= 20"
|
|
8
|
+
},
|
|
6
9
|
"scripts": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
10
|
+
"lint": "npx eslint .",
|
|
11
|
+
"pretest": "pnpm lint",
|
|
12
|
+
"test": "npx ava",
|
|
13
|
+
"build": "npx tsc --project .",
|
|
14
|
+
"prepublish": "pnpm build"
|
|
11
15
|
},
|
|
12
16
|
"keywords": [],
|
|
13
17
|
"author": "Reelevant",
|
|
14
18
|
"devDependencies": {
|
|
15
|
-
"@types/node": "^
|
|
16
|
-
"ava": "^
|
|
17
|
-
"
|
|
18
|
-
"ts-node": "^8.8.2",
|
|
19
|
-
"tslint": "^6.1.2",
|
|
20
|
-
"tslint-config-standard": "^9.0.0",
|
|
21
|
-
"typescript": "^3.9.5"
|
|
19
|
+
"@types/node": "^22.19.3",
|
|
20
|
+
"ava": "^6.4.1",
|
|
21
|
+
"ts-node": "^10.9.2"
|
|
22
22
|
},
|
|
23
|
-
"dependencies": {},
|
|
24
23
|
"ava": {
|
|
25
24
|
"files": [
|
|
26
25
|
"tests/*.test.ts"
|
|
@@ -31,5 +30,21 @@
|
|
|
31
30
|
"require": [
|
|
32
31
|
"ts-node/register/transpile-only"
|
|
33
32
|
]
|
|
33
|
+
},
|
|
34
|
+
"release-it": {
|
|
35
|
+
"increment": "minor",
|
|
36
|
+
"git": {
|
|
37
|
+
"commit": true,
|
|
38
|
+
"tag": false,
|
|
39
|
+
"push": true,
|
|
40
|
+
"commitMessage": "chore(release): @rlvt/crypt@${version} [skip ci]",
|
|
41
|
+
"requireUpstream": false
|
|
42
|
+
},
|
|
43
|
+
"github": {
|
|
44
|
+
"release": false
|
|
45
|
+
},
|
|
46
|
+
"npm": {
|
|
47
|
+
"publish": false
|
|
48
|
+
}
|
|
34
49
|
}
|
|
35
50
|
}
|