@diana-db/odm 1.6.0 → 1.7.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.
@@ -6,15 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CryptoHelper = void 0;
7
7
  const crypto_1 = __importDefault(require("crypto"));
8
8
  const ALGORITHM = 'aes-256-gcm';
9
- const KEY_LEN = 32;
10
- const SALT_LEN = 16;
11
- const IV_LEN = 12;
12
- const TAG_LEN = 16;
9
+ const KEY_LEN = 32; // AES-256
10
+ const IV_LEN = 12; // Recommended for GCM
11
+ const TAG_LEN = 16; // GCM auth tag
13
12
  class CryptoHelper {
14
13
  static encrypt(password, plaintext) {
15
- const salt = crypto_1.default.randomBytes(SALT_LEN);
16
14
  const iv = crypto_1.default.randomBytes(IV_LEN);
17
- const key = crypto_1.default.scryptSync(password, salt, KEY_LEN);
15
+ const key = crypto_1.default.createHash('sha256').update(password).digest().subarray(0, KEY_LEN);
18
16
  const cipher = crypto_1.default.createCipheriv(ALGORITHM, key, iv);
19
17
  const ciphertext = Buffer.concat([
20
18
  cipher.update(plaintext),
@@ -22,7 +20,6 @@ class CryptoHelper {
22
20
  ]);
23
21
  const tag = cipher.getAuthTag();
24
22
  return Buffer.concat([
25
- salt,
26
23
  iv,
27
24
  tag,
28
25
  ciphertext,
@@ -30,11 +27,10 @@ class CryptoHelper {
30
27
  }
31
28
  static decrypt(password, text) {
32
29
  const encrypted = Buffer.from(text, 'base64');
33
- const salt = encrypted.subarray(0, SALT_LEN);
34
- const iv = encrypted.subarray(SALT_LEN, SALT_LEN + IV_LEN);
35
- const tag = encrypted.subarray(SALT_LEN + IV_LEN, SALT_LEN + IV_LEN + TAG_LEN);
36
- const ciphertext = encrypted.subarray(SALT_LEN + IV_LEN + TAG_LEN);
37
- const key = crypto_1.default.scryptSync(password, salt, KEY_LEN);
30
+ const iv = encrypted.subarray(0, IV_LEN);
31
+ const tag = encrypted.subarray(IV_LEN, IV_LEN + TAG_LEN);
32
+ const ciphertext = encrypted.subarray(IV_LEN + TAG_LEN);
33
+ const key = crypto_1.default.createHash('sha256').update(password).digest().subarray(0, KEY_LEN);
38
34
  const decipher = crypto_1.default.createDecipheriv(ALGORITHM, key, iv);
39
35
  decipher.setAuthTag(tag);
40
36
  return Buffer.concat([
@@ -1 +1 @@
1
- {"version":3,"file":"crypto-helper.js","sourceRoot":"","sources":["../../src/helpers/crypto-helper.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkD;AAClD,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,MAAa,YAAY;IAChB,MAAM,CAAC,OAAO,CAAC,QAAgB,EAAE,SAAiB;QACvD,MAAM,IAAI,GAAG,gBAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,gBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,gBAAM,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACxB,MAAM,CAAC,KAAK,EAAE;SACf,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI;YACJ,EAAE;YACF,GAAG;YACH,UAAU;SACX,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,QAAgB,EAAE,IAAY;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YAC3B,QAAQ,CAAC,KAAK,EAAE;SACjB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChB,CAAC;CACF;AAjCD,oCAiCC"}
1
+ {"version":3,"file":"crypto-helper.js","sourceRoot":"","sources":["../../src/helpers/crypto-helper.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,UAAU;AAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,sBAAsB;AACzC,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,eAAe;AAEnC,MAAa,YAAY;IAChB,MAAM,CAAC,OAAO,CAAC,QAAgB,EAAE,SAAiB;QACvD,MAAM,EAAE,GAAG,gBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,gBAAM,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAEzD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACxB,MAAM,CAAC,KAAK,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE;YACF,GAAG;YACH,UAAU;SACX,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,QAAgB,EAAE,IAAY;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QAExD,MAAM,GAAG,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YAC3B,QAAQ,CAAC,KAAK,EAAE;SACjB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChB,CAAC;CACF;AAlCD,oCAkCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diana-db/odm",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "ODM for DianaDB",
5
5
  "author": "Data Bikers Limited",
6
6
  "license": "MIT",