@minimaltech/node-infra 0.2.28 → 0.2.29

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.
Files changed (37) hide show
  1. package/dist/components/authenticate/services/jwt-token.service.d.ts +1 -0
  2. package/dist/components/authenticate/services/jwt-token.service.js +10 -8
  3. package/dist/components/authenticate/services/jwt-token.service.js.map +1 -1
  4. package/dist/components/authenticate/services/oauth2.service.d.ts +1 -0
  5. package/dist/components/authenticate/services/oauth2.service.js +4 -3
  6. package/dist/components/authenticate/services/oauth2.service.js.map +1 -1
  7. package/dist/helpers/crypto/algorithms/aes.algorithm.d.ts +20 -0
  8. package/dist/helpers/crypto/algorithms/aes.algorithm.js +102 -0
  9. package/dist/helpers/crypto/algorithms/aes.algorithm.js.map +1 -0
  10. package/dist/helpers/crypto/algorithms/base.algorithm.d.ts +23 -0
  11. package/dist/helpers/crypto/algorithms/base.algorithm.js +40 -0
  12. package/dist/helpers/crypto/algorithms/base.algorithm.js.map +1 -0
  13. package/dist/helpers/crypto/algorithms/index.d.ts +3 -0
  14. package/dist/helpers/crypto/algorithms/index.js +20 -0
  15. package/dist/helpers/crypto/algorithms/index.js.map +1 -0
  16. package/dist/helpers/crypto/algorithms/rsa.algorithm.d.ts +26 -0
  17. package/dist/helpers/crypto/algorithms/rsa.algorithm.js +64 -0
  18. package/dist/helpers/crypto/algorithms/rsa.algorithm.js.map +1 -0
  19. package/dist/helpers/crypto/common/constants.d.ts +2 -0
  20. package/dist/helpers/crypto/common/constants.js +6 -0
  21. package/dist/helpers/crypto/common/constants.js.map +1 -0
  22. package/dist/helpers/crypto/common/index.d.ts +2 -0
  23. package/dist/helpers/crypto/common/index.js +19 -0
  24. package/dist/helpers/crypto/common/index.js.map +1 -0
  25. package/dist/helpers/crypto/common/types.d.ts +5 -0
  26. package/dist/helpers/crypto/common/types.js +3 -0
  27. package/dist/helpers/crypto/common/types.js.map +1 -0
  28. package/dist/helpers/crypto/index.d.ts +2 -0
  29. package/dist/helpers/crypto/index.js +19 -0
  30. package/dist/helpers/crypto/index.js.map +1 -0
  31. package/dist/helpers/index.d.ts +1 -0
  32. package/dist/helpers/index.js +1 -0
  33. package/dist/helpers/index.js.map +1 -1
  34. package/dist/utilities/crypto.utility.d.ts +0 -16
  35. package/dist/utilities/crypto.utility.js +1 -106
  36. package/dist/utilities/crypto.utility.js.map +1 -1
  37. package/package.json +1 -1
@@ -4,6 +4,7 @@ export declare class JWTTokenService extends BaseService {
4
4
  private applicationSecret;
5
5
  private jwtSecret;
6
6
  private jwtExpiresIn;
7
+ private aes;
7
8
  constructor(applicationSecret: string, jwtSecret: string, jwtExpiresIn: string);
8
9
  extractCredentials(request: {
9
10
  headers: any;
@@ -18,6 +18,7 @@ var JWTTokenService_1;
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.JWTTokenService = void 0;
20
20
  const base_service_1 = require("../../../base/base.service");
21
+ const helpers_1 = require("../../../helpers");
21
22
  const utilities_1 = require("../../../utilities");
22
23
  const authentication_jwt_1 = require("@loopback/authentication-jwt");
23
24
  const core_1 = require("@loopback/core");
@@ -31,6 +32,7 @@ let JWTTokenService = JWTTokenService_1 = class JWTTokenService extends base_ser
31
32
  this.applicationSecret = applicationSecret;
32
33
  this.jwtSecret = jwtSecret;
33
34
  this.jwtExpiresIn = jwtExpiresIn;
35
+ this.aes = helpers_1.AES.withAlgorithm('aes-256-cbc');
34
36
  }
35
37
  // --------------------------------------------------------------------------------------
36
38
  extractCredentials(request) {
@@ -55,14 +57,14 @@ let JWTTokenService = JWTTokenService_1 = class JWTTokenService extends base_ser
55
57
  }
56
58
  // --------------------------------------------------------------------------------------
57
59
  encryptPayload(payload) {
58
- const userKey = (0, utilities_1.encrypt)('userId', this.applicationSecret);
59
- const rolesKey = (0, utilities_1.encrypt)('roles', this.applicationSecret);
60
- const clientIdKey = (0, utilities_1.encrypt)('clientId', this.applicationSecret);
60
+ const userKey = this.aes.encrypt('userId', this.applicationSecret);
61
+ const rolesKey = this.aes.encrypt('roles', this.applicationSecret);
62
+ const clientIdKey = this.aes.encrypt('clientId', this.applicationSecret);
61
63
  const { userId, roles, clientId = 'NA' } = payload;
62
64
  return {
63
- [userKey]: (0, utilities_1.encrypt)(userId.toString(), this.applicationSecret),
64
- [rolesKey]: (0, utilities_1.encrypt)(JSON.stringify(roles.map(el => `${el.id}|${el.identifier}|${el.priority}`)), this.applicationSecret),
65
- [clientIdKey]: (0, utilities_1.encrypt)(clientId, this.applicationSecret),
65
+ [userKey]: this.aes.encrypt(userId.toString(), this.applicationSecret),
66
+ [rolesKey]: this.aes.encrypt(JSON.stringify(roles.map(el => `${el.id}|${el.identifier}|${el.priority}`)), this.applicationSecret),
67
+ [clientIdKey]: this.aes.encrypt(clientId, this.applicationSecret),
66
68
  };
67
69
  }
68
70
  // --------------------------------------------------------------------------------------
@@ -74,8 +76,8 @@ let JWTTokenService = JWTTokenService_1 = class JWTTokenService extends base_ser
74
76
  rs[encodedAttr] = decodedToken[encodedAttr];
75
77
  continue;
76
78
  }
77
- const attr = (0, utilities_1.decrypt)(encodedAttr, this.applicationSecret);
78
- const decryptedValue = (0, utilities_1.decrypt)(decodedToken[encodedAttr], this.applicationSecret);
79
+ const attr = this.aes.decrypt(encodedAttr, this.applicationSecret);
80
+ const decryptedValue = this.aes.decrypt(decodedToken[encodedAttr], this.applicationSecret);
79
81
  switch (attr) {
80
82
  case 'userId': {
81
83
  rs.userId = parseInt(decryptedValue);
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-token.service.js","sourceRoot":"","sources":["../../../../src/components/authenticate/services/jwt-token.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt-token.service.js","sourceRoot":"","sources":["../../../../src/components/authenticate/services/jwt-token.service.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class OAuth2Service extends BaseService {
9
9
  private application;
10
10
  private handler;
11
11
  private oauth2ClientRepository;
12
+ private aes;
12
13
  constructor(application: BaseApplication, handler: OAuth2Handler, oauth2ClientRepository: OAuth2ClientRepository);
13
14
  encryptClientToken(opts: {
14
15
  clientId: string;
@@ -39,18 +39,19 @@ let OAuth2Service = OAuth2Service_1 = class OAuth2Service extends base_service_1
39
39
  this.application = application;
40
40
  this.handler = handler;
41
41
  this.oauth2ClientRepository = oauth2ClientRepository;
42
+ this.aes = helpers_1.AES.withAlgorithm('aes-256-cbc');
42
43
  }
43
44
  // --------------------------------------------------------------------------------
44
45
  encryptClientToken(opts) {
45
46
  const { clientId, clientSecret } = opts;
46
47
  const applicationSecret = helpers_1.applicationEnvironment.get(common_1.EnvironmentKeys.APP_ENV_APPLICATION_SECRET);
47
- return (0, utilities_1.encrypt)([clientId, clientSecret].join('_'), applicationSecret);
48
+ return this.aes.encrypt([clientId, clientSecret].join('_'), applicationSecret);
48
49
  }
49
50
  // --------------------------------------------------------------------------------
50
51
  decryptClientToken(opts) {
51
52
  const { token } = opts;
52
53
  const applicationSecret = helpers_1.applicationEnvironment.get(common_1.EnvironmentKeys.APP_ENV_APPLICATION_SECRET);
53
- const decrypted = (0, utilities_1.decrypt)(token, applicationSecret, { doThrow: false });
54
+ const decrypted = this.aes.decrypt(token, applicationSecret, { doThrow: false });
54
55
  const [clientId, clientSecret] = decrypted.split('_');
55
56
  this.logger.debug('[decryptClientToken] Token: %s | ClientId: %s', clientId, token);
56
57
  if (!clientId || !clientSecret) {
@@ -85,7 +86,7 @@ let OAuth2Service = OAuth2Service_1 = class OAuth2Service extends base_service_1
85
86
  });
86
87
  }
87
88
  const urlParam = new URLSearchParams();
88
- const requestToken = (0, utilities_1.encrypt)([clientId, clientSecret].join('_'), applicationSecret);
89
+ const requestToken = this.aes.encrypt([clientId, clientSecret].join('_'), applicationSecret);
89
90
  urlParam.set('c', encodeURIComponent(requestToken));
90
91
  if (redirectUrl) {
91
92
  urlParam.set('r', encodeURIComponent(redirectUrl));
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.service.js","sourceRoot":"","sources":["../../../../src/components/authenticate/services/oauth2.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth2.service.js","sourceRoot":"","sources":["../../../../src/components/authenticate/services/oauth2.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import C from 'crypto';
2
+ import { BaseCryptoAlgorithm } from './base.algorithm';
3
+ interface IO {
4
+ iv?: Buffer;
5
+ inputEncoding?: C.Encoding;
6
+ outputEncoding?: C.Encoding;
7
+ doThrow?: boolean;
8
+ }
9
+ export type AESAlgorithmType = 'aes-256-cbc' | 'aes-256-gcm';
10
+ export declare class AES extends BaseCryptoAlgorithm<AESAlgorithmType, IO> {
11
+ constructor(opts: {
12
+ algorithm: AESAlgorithmType;
13
+ });
14
+ static withAlgorithm(algorithm: AESAlgorithmType): AES;
15
+ encrypt(message: string, secret: string, opts?: IO): string;
16
+ encryptFile(absolutePath: string, secret: string): string;
17
+ decrypt(message: string, secret: string, opts?: IO): string;
18
+ decryptFile(absolutePath: string, secret: string): string;
19
+ }
20
+ export {};
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AES = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
10
+ const base_algorithm_1 = require("./base.algorithm");
11
+ const DEFAULT_LENGTH = 16;
12
+ class AES extends base_algorithm_1.BaseCryptoAlgorithm {
13
+ constructor(opts) {
14
+ super(Object.assign({ scope: AES.name }, opts));
15
+ }
16
+ static withAlgorithm(algorithm) {
17
+ return new AES({ algorithm });
18
+ }
19
+ encrypt(message, secret, opts) {
20
+ const { iv = crypto_1.default.randomBytes(DEFAULT_LENGTH), inputEncoding = 'utf-8', outputEncoding = 'base64', doThrow = true, } = opts !== null && opts !== void 0 ? opts : {};
21
+ try {
22
+ const secretKey = this.normalizeSecretKey({
23
+ secret,
24
+ length: this.getAlgorithmKeySize(),
25
+ });
26
+ const cipher = crypto_1.default.createCipheriv(this.algorithm, Buffer.from(secretKey), iv);
27
+ const parts = [iv];
28
+ const cipherText = cipher.update(message, inputEncoding);
29
+ const cipherFinal = cipher.final();
30
+ switch (this.algorithm) {
31
+ case 'aes-256-cbc': {
32
+ break;
33
+ }
34
+ case 'aes-256-gcm': {
35
+ parts.push(cipher.getAuthTag());
36
+ break;
37
+ }
38
+ }
39
+ parts.push(cipherText);
40
+ parts.push(cipherFinal);
41
+ return Buffer.concat(parts).toString(outputEncoding);
42
+ }
43
+ catch (error) {
44
+ if (doThrow) {
45
+ throw error;
46
+ }
47
+ return message;
48
+ }
49
+ }
50
+ encryptFile(absolutePath, secret) {
51
+ if (!absolutePath || (0, isEmpty_1.default)(absolutePath)) {
52
+ return '';
53
+ }
54
+ const buffer = fs_1.default.readFileSync(absolutePath);
55
+ const fileContent = buffer === null || buffer === void 0 ? void 0 : buffer.toString('utf-8');
56
+ const encrypted = this.encrypt(fileContent, secret);
57
+ return encrypted;
58
+ }
59
+ decrypt(message, secret, opts) {
60
+ var _a, _b;
61
+ const { inputEncoding = 'base64', outputEncoding = 'utf-8', doThrow = true } = opts !== null && opts !== void 0 ? opts : {};
62
+ try {
63
+ const iv = (_b = (_a = opts === null || opts === void 0 ? void 0 : opts.iv) !== null && _a !== void 0 ? _a : Buffer.from(message, inputEncoding).subarray(0, DEFAULT_LENGTH)) !== null && _b !== void 0 ? _b : Buffer.alloc(DEFAULT_LENGTH, 0);
64
+ let messageIndex = iv.length;
65
+ const secretKey = this.normalizeSecretKey({
66
+ secret,
67
+ length: this.getAlgorithmKeySize(),
68
+ });
69
+ const decipher = crypto_1.default.createDecipheriv(this.algorithm, Buffer.from(secretKey), iv);
70
+ switch (this.algorithm) {
71
+ case 'aes-256-cbc': {
72
+ break;
73
+ }
74
+ case 'aes-256-gcm': {
75
+ const authTag = Buffer.from(message, inputEncoding).subarray(iv.length, iv.length + DEFAULT_LENGTH);
76
+ messageIndex += authTag.length;
77
+ decipher.setAuthTag(authTag);
78
+ break;
79
+ }
80
+ }
81
+ const cipherText = Buffer.from(message, inputEncoding).subarray(messageIndex);
82
+ return Buffer.concat([decipher.update(cipherText), decipher.final()]).toString(outputEncoding);
83
+ }
84
+ catch (error) {
85
+ if (doThrow) {
86
+ throw error;
87
+ }
88
+ return message;
89
+ }
90
+ }
91
+ decryptFile(absolutePath, secret) {
92
+ if (!absolutePath || (0, isEmpty_1.default)(absolutePath)) {
93
+ return '';
94
+ }
95
+ const buffer = fs_1.default.readFileSync(absolutePath);
96
+ const fileContent = buffer === null || buffer === void 0 ? void 0 : buffer.toString('utf-8');
97
+ const decrypted = this.decrypt(fileContent, secret);
98
+ return decrypted;
99
+ }
100
+ }
101
+ exports.AES = AES;
102
+ //# sourceMappingURL=aes.algorithm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes.algorithm.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/algorithms/aes.algorithm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { ApplicationLogger } from '../../../helpers/logger';
2
+ import { ICryptoAlgorithm } from '../common';
3
+ export declare abstract class AbstractCryptoAlgorithm<AL extends string, IO> implements ICryptoAlgorithm<AL, IO> {
4
+ algorithm: AL;
5
+ abstract encrypt(message: string, secret: string, opts?: IO | undefined): string;
6
+ abstract decrypt(message: string, secret: string, opts?: IO | undefined): string;
7
+ }
8
+ export declare abstract class BaseCryptoAlgorithm<AL extends string, IO> extends AbstractCryptoAlgorithm<AL, IO> {
9
+ protected logger: ApplicationLogger;
10
+ constructor(opts: {
11
+ scope: string;
12
+ algorithm: AL;
13
+ });
14
+ validateAlgorithmName(opts: {
15
+ algorithm: AL;
16
+ }): void;
17
+ normalizeSecretKey(opts: {
18
+ secret: string;
19
+ length: number;
20
+ padEnd?: string;
21
+ }): string;
22
+ getAlgorithmKeySize(): number;
23
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCryptoAlgorithm = exports.AbstractCryptoAlgorithm = void 0;
4
+ const logger_1 = require("../../../helpers/logger");
5
+ const utilities_1 = require("../../../utilities");
6
+ const common_1 = require("../common");
7
+ class AbstractCryptoAlgorithm {
8
+ }
9
+ exports.AbstractCryptoAlgorithm = AbstractCryptoAlgorithm;
10
+ class BaseCryptoAlgorithm extends AbstractCryptoAlgorithm {
11
+ constructor(opts) {
12
+ var _a, _b;
13
+ super();
14
+ this.validateAlgorithmName({ algorithm: opts.algorithm });
15
+ this.algorithm = opts.algorithm;
16
+ this.logger = logger_1.LoggerFactory.getLogger([(_b = (_a = opts.scope) !== null && _a !== void 0 ? _a : opts.algorithm) !== null && _b !== void 0 ? _b : BaseCryptoAlgorithm.name]);
17
+ }
18
+ validateAlgorithmName(opts) {
19
+ const { algorithm } = opts;
20
+ if (!algorithm) {
21
+ throw (0, utilities_1.getError)({
22
+ message: `[validateAlgorithmName] Invalid algorithm name | algorithm: ${algorithm}`,
23
+ });
24
+ }
25
+ }
26
+ normalizeSecretKey(opts) {
27
+ const { secret, length, padEnd = common_1.DEFAULT_PAD_END } = opts;
28
+ if (secret.length > length) {
29
+ return secret.slice(0, length);
30
+ }
31
+ return secret.padEnd(length, padEnd);
32
+ }
33
+ getAlgorithmKeySize() {
34
+ var _a, _b, _c;
35
+ const b = (0, utilities_1.int)((_c = (_b = (_a = this.algorithm) === null || _a === void 0 ? void 0 : _a.split('-')) === null || _b === void 0 ? void 0 : _b[1]) !== null && _c !== void 0 ? _c : common_1.DEFAULT_CIPHER_BITS);
36
+ return (0, utilities_1.int)(b / 8);
37
+ }
38
+ }
39
+ exports.BaseCryptoAlgorithm = BaseCryptoAlgorithm;
40
+ //# sourceMappingURL=base.algorithm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.algorithm.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/algorithms/base.algorithm.ts"],"names":[],"mappings":";;;AAAA,6CAAoE;AACpE,2CAA4C;AAC5C,sCAAmF;AAEnF,MAAsB,uBAAuB;CAK5C;AALD,0DAKC;AAED,MAAsB,mBAA2C,SAAQ,uBAA+B;IAGtG,YAAY,IAAsC;;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,sBAAa,CAAC,SAAS,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,SAAS,mCAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,qBAAqB,CAAC,IAAuB;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAA,oBAAQ,EAAC;gBACb,OAAO,EAAE,+DAA+D,SAAS,EAAE;aACpF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,IAAyD;QAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,wBAAe,EAAE,GAAG,IAAI,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB;;QACjB,MAAM,CAAC,GAAG,IAAA,eAAG,EAAC,MAAA,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,mCAAI,4BAAmB,CAAC,CAAC;QACtE,OAAO,IAAA,eAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB,CAAC;CACF;AAnCD,kDAmCC"}
@@ -0,0 +1,3 @@
1
+ export * from './base.algorithm';
2
+ export * from './aes.algorithm';
3
+ export * from './rsa.algorithm';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./base.algorithm"), exports);
18
+ __exportStar(require("./aes.algorithm"), exports);
19
+ __exportStar(require("./rsa.algorithm"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/algorithms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AAEjC,kDAAgC;AAChC,kDAAgC"}
@@ -0,0 +1,26 @@
1
+ import C from 'crypto';
2
+ import { BaseCryptoAlgorithm } from './base.algorithm';
3
+ interface IO {
4
+ inputEncoding?: {
5
+ key: C.Encoding;
6
+ message: C.Encoding;
7
+ };
8
+ outputEncoding?: C.Encoding;
9
+ doThrow?: boolean;
10
+ }
11
+ export type RSAAlgorithmType = 'rsa';
12
+ export declare class RSA extends BaseCryptoAlgorithm<RSAAlgorithmType, IO> {
13
+ constructor(opts: {
14
+ algorithm: RSAAlgorithmType;
15
+ });
16
+ static withAlgorithm(): RSA;
17
+ generateDERKeyPair(opts?: {
18
+ modulus: number;
19
+ }): {
20
+ publicKey: Buffer;
21
+ privateKey: Buffer;
22
+ };
23
+ encrypt(message: string, pubKey: string, opts?: IO): string;
24
+ decrypt(message: string, privKey: string, opts?: IO): string;
25
+ }
26
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RSA = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const base_algorithm_1 = require("./base.algorithm");
9
+ class RSA extends base_algorithm_1.BaseCryptoAlgorithm {
10
+ constructor(opts) {
11
+ super(Object.assign({ scope: RSA.name }, opts));
12
+ }
13
+ static withAlgorithm() {
14
+ return new RSA({ algorithm: 'rsa' });
15
+ }
16
+ generateDERKeyPair(opts) {
17
+ var _a;
18
+ const keys = crypto_1.default.generateKeyPairSync('rsa', {
19
+ modulusLength: (_a = opts === null || opts === void 0 ? void 0 : opts.modulus) !== null && _a !== void 0 ? _a : 1199,
20
+ });
21
+ return {
22
+ publicKey: keys.publicKey.export({ type: 'spki', format: 'der' }),
23
+ privateKey: keys.privateKey.export({ type: 'pkcs8', format: 'der' }),
24
+ };
25
+ }
26
+ encrypt(message, pubKey, opts) {
27
+ const { inputEncoding = { key: 'base64', message: 'utf-8' }, outputEncoding = 'base64', doThrow = true, } = opts !== null && opts !== void 0 ? opts : {};
28
+ try {
29
+ const k = crypto_1.default.createPublicKey({
30
+ key: Buffer.from(pubKey, inputEncoding.key),
31
+ format: 'der',
32
+ type: 'spki',
33
+ });
34
+ const rs = crypto_1.default.publicEncrypt(k, Buffer.from(message, inputEncoding.message));
35
+ return rs.toString(outputEncoding);
36
+ }
37
+ catch (error) {
38
+ if (doThrow) {
39
+ throw error;
40
+ }
41
+ return message;
42
+ }
43
+ }
44
+ decrypt(message, privKey, opts) {
45
+ const { inputEncoding = { key: 'base64', message: 'base64' }, outputEncoding = 'utf-8', doThrow = true, } = opts !== null && opts !== void 0 ? opts : {};
46
+ try {
47
+ const k = crypto_1.default.createPrivateKey({
48
+ key: Buffer.from(privKey, inputEncoding.key),
49
+ format: 'der',
50
+ type: 'pkcs8',
51
+ });
52
+ const rs = crypto_1.default.privateDecrypt(k, Buffer.from(message, inputEncoding.message));
53
+ return rs.toString(outputEncoding);
54
+ }
55
+ catch (error) {
56
+ if (doThrow) {
57
+ throw error;
58
+ }
59
+ return message;
60
+ }
61
+ }
62
+ }
63
+ exports.RSA = RSA;
64
+ //# sourceMappingURL=rsa.algorithm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsa.algorithm.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/algorithms/rsa.algorithm.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,qDAAuD;AAUvD,MAAa,GAAI,SAAQ,oCAAyC;IAChE,YAAY,IAAqC;QAC/C,KAAK,iBAAG,KAAK,EAAE,GAAG,CAAC,IAAI,IAAK,IAAI,EAAG,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB,CAAC,IAA0B;;QAC3C,MAAM,IAAI,GAAG,gBAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE;YACxC,aAAa,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,IAAI;SACrC,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACjE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACrE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,MAAc,EAAE,IAAS;QAChD,MAAM,EACJ,aAAa,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACnD,cAAc,GAAG,QAAQ,EACzB,OAAO,GAAG,IAAI,GACf,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,gBAAC,CAAC,eAAe,CAAC;gBAC1B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;gBAC3C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,gBAAC,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,OAAO,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,CAAC;YACd,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,OAAe,EAAE,IAAS;QACjD,MAAM,EACJ,aAAa,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EACpD,cAAc,GAAG,OAAO,EACxB,OAAO,GAAG,IAAI,GACf,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,gBAAC,CAAC,gBAAgB,CAAC;gBAC3B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC;gBAC5C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,gBAAC,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5E,OAAO,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,CAAC;YACd,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAnED,kBAmEC"}
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_CIPHER_BITS = 256;
2
+ export declare const DEFAULT_PAD_END: string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PAD_END = exports.DEFAULT_CIPHER_BITS = void 0;
4
+ exports.DEFAULT_CIPHER_BITS = 256;
5
+ exports.DEFAULT_PAD_END = (0x00).toString();
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './constants';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B"}
@@ -0,0 +1,5 @@
1
+ export interface ICryptoAlgorithm<AL extends string, IO> {
2
+ algorithm: AL;
3
+ encrypt: (message: string, secret: string, opts?: IO) => string;
4
+ decrypt: (message: string, secret: string, opts?: IO) => string;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/helpers/crypto/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './common';
2
+ export * from './algorithms';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./common"), exports);
18
+ __exportStar(require("./algorithms"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/crypto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B"}
@@ -1,3 +1,4 @@
1
+ export * from './crypto';
1
2
  export * from './database';
2
3
  export * from './logger';
3
4
  export * from './network';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./crypto"), exports);
17
18
  __exportStar(require("./database"), exports);
18
19
  __exportStar(require("./logger"), exports);
19
20
  __exportStar(require("./network"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAE1B,mEAAiD;AACjD,gDAA8B;AAC9B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAE1B,mEAAiD;AACjD,gDAA8B;AAC9B,iDAA+B"}
@@ -4,19 +4,3 @@ export declare const hash: (text: string, options: {
4
4
  secret: string;
5
5
  outputType: C.BinaryToTextEncoding;
6
6
  }) => string;
7
- export declare const encrypt: (message: string, secret: string, opts?: {
8
- iv?: Buffer;
9
- algorithm?: "aes-256-cbc" | "aes-256-gcm";
10
- inputEncoding?: C.Encoding;
11
- outputEncoding?: C.Encoding;
12
- doThrow?: boolean;
13
- }) => string;
14
- export declare const encryptFile: (absolutePath: string, secret: string) => string;
15
- export declare const decrypt: (message: string, secret: string, opts?: {
16
- iv?: Buffer;
17
- algorithm?: "aes-256-cbc" | "aes-256-gcm";
18
- inputEncoding?: C.Encoding;
19
- outputEncoding?: C.Encoding;
20
- doThrow?: boolean;
21
- }) => string;
22
- export declare const decryptFile: (absolutePath: string, secret: string) => string;
@@ -3,15 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.decryptFile = exports.decrypt = exports.encryptFile = exports.encrypt = exports.hash = void 0;
6
+ exports.hash = void 0;
7
7
  const crypto_1 = __importDefault(require("crypto"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
10
- const parse_utility_1 = require("./parse.utility");
11
- const DEFAULT_LENGTH = 16;
12
- const DEFAULT_CIPHER_BITS = 256;
13
- const DEFAULT_CRYPT_ALGORITHM = 'aes-256-cbc';
14
- const DEFAULT_PAD_END = (0x00).toString();
15
8
  const hash = (text, options) => {
16
9
  const { algorithm, secret, outputType } = options;
17
10
  switch (algorithm) {
@@ -30,102 +23,4 @@ const hash = (text, options) => {
30
23
  }
31
24
  };
32
25
  exports.hash = hash;
33
- const normalizeSecretKey = (opts) => {
34
- const { secret, length, padEnd = DEFAULT_PAD_END } = opts;
35
- if (secret.length > length) {
36
- return secret.slice(0, length);
37
- }
38
- return secret.padEnd(length, padEnd);
39
- };
40
- const getAlgorithmKeySize = (opts) => {
41
- var _a, _b;
42
- const { algorithm } = opts;
43
- const b = (0, parse_utility_1.int)((_b = (_a = algorithm === null || algorithm === void 0 ? void 0 : algorithm.split('-')) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : DEFAULT_CIPHER_BITS);
44
- return (0, parse_utility_1.int)(b / 8);
45
- };
46
- const encrypt = (message, secret, opts) => {
47
- const { iv = crypto_1.default.randomBytes(DEFAULT_LENGTH), algorithm = DEFAULT_CRYPT_ALGORITHM, inputEncoding = 'utf-8', outputEncoding = 'base64', doThrow = true, } = opts !== null && opts !== void 0 ? opts : {};
48
- try {
49
- const secretKey = normalizeSecretKey({
50
- secret,
51
- length: getAlgorithmKeySize({ algorithm }),
52
- });
53
- const cipher = crypto_1.default.createCipheriv(algorithm, Buffer.from(secretKey), iv);
54
- const parts = [iv];
55
- const cipherText = cipher.update(message, inputEncoding);
56
- const cipherFinal = cipher.final();
57
- switch (algorithm) {
58
- case 'aes-256-cbc': {
59
- break;
60
- }
61
- case 'aes-256-gcm': {
62
- parts.push(cipher.getAuthTag());
63
- break;
64
- }
65
- }
66
- parts.push(cipherText);
67
- parts.push(cipherFinal);
68
- return Buffer.concat(parts).toString(outputEncoding);
69
- }
70
- catch (error) {
71
- if (doThrow) {
72
- throw error;
73
- }
74
- return message;
75
- }
76
- };
77
- exports.encrypt = encrypt;
78
- const encryptFile = (absolutePath, secret) => {
79
- if (!absolutePath || (0, isEmpty_1.default)(absolutePath)) {
80
- return '';
81
- }
82
- const buffer = fs_1.default.readFileSync(absolutePath);
83
- const fileContent = buffer === null || buffer === void 0 ? void 0 : buffer.toString('utf-8');
84
- const encrypted = (0, exports.encrypt)(fileContent, secret);
85
- return encrypted;
86
- };
87
- exports.encryptFile = encryptFile;
88
- const decrypt = (message, secret, opts) => {
89
- var _a, _b;
90
- const { algorithm = DEFAULT_CRYPT_ALGORITHM, inputEncoding = 'base64', outputEncoding = 'utf-8', doThrow = true, } = opts !== null && opts !== void 0 ? opts : {};
91
- try {
92
- const iv = (_b = (_a = opts === null || opts === void 0 ? void 0 : opts.iv) !== null && _a !== void 0 ? _a : Buffer.from(message, inputEncoding).subarray(0, DEFAULT_LENGTH)) !== null && _b !== void 0 ? _b : Buffer.alloc(DEFAULT_LENGTH, 0);
93
- let messageIndex = iv.length;
94
- const secretKey = normalizeSecretKey({
95
- secret,
96
- length: getAlgorithmKeySize({ algorithm }),
97
- });
98
- const decipher = crypto_1.default.createDecipheriv(algorithm, Buffer.from(secretKey), iv);
99
- switch (algorithm) {
100
- case 'aes-256-cbc': {
101
- break;
102
- }
103
- case 'aes-256-gcm': {
104
- const authTag = Buffer.from(message, inputEncoding).subarray(iv.length, iv.length + DEFAULT_LENGTH);
105
- messageIndex += authTag.length;
106
- decipher.setAuthTag(authTag);
107
- break;
108
- }
109
- }
110
- const cipherText = Buffer.from(message, inputEncoding).subarray(messageIndex);
111
- return Buffer.concat([decipher.update(cipherText), decipher.final()]).toString(outputEncoding);
112
- }
113
- catch (error) {
114
- if (doThrow) {
115
- throw error;
116
- }
117
- return message;
118
- }
119
- };
120
- exports.decrypt = decrypt;
121
- const decryptFile = (absolutePath, secret) => {
122
- if (!absolutePath || (0, isEmpty_1.default)(absolutePath)) {
123
- return '';
124
- }
125
- const buffer = fs_1.default.readFileSync(absolutePath);
126
- const fileContent = buffer === null || buffer === void 0 ? void 0 : buffer.toString('utf-8');
127
- const decrypted = (0, exports.decrypt)(fileContent, secret);
128
- return decrypted;
129
- };
130
- exports.decryptFile = decryptFile;
131
26
  //# sourceMappingURL=crypto.utility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.utility.js","sourceRoot":"","sources":["../../src/utilities/crypto.utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.utility.js","sourceRoot":"","sources":["../../src/utilities/crypto.utility.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEhB,MAAM,IAAI,GAAG,CAClB,IAAY,EACZ,OAIC,EACO,EAAE;IACV,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAElD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,gBAAC,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,gBAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAzBW,QAAA,IAAI,QAyBf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minimaltech/node-infra",
3
- "version": "0.2.28",
3
+ "version": "0.2.29",
4
4
  "description": "NodeJS Infrastructure - Loopback 4 Framework",
5
5
  "keywords": [
6
6
  "web",