@hg-ts/rsa 0.2.8 → 0.2.9
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/dist/rsa.private-key.d.ts.map +1 -1
- package/dist/rsa.private-key.js +9 -2
- package/dist/rsa.private-key.js.map +1 -1
- package/dist/rsa.public-key.d.ts.map +1 -1
- package/dist/rsa.public-key.js +9 -2
- package/dist/rsa.public-key.js.map +1 -1
- package/dist/rsa.test.d.ts +2 -0
- package/dist/rsa.test.d.ts.map +1 -1
- package/dist/rsa.test.js +25 -0
- package/dist/rsa.test.js.map +1 -1
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +33 -0
- package/dist/utils.js.map +1 -0
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.private-key.d.ts","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rsa.private-key.d.ts","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAO/B,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;gBAE5B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU;IAIzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAelC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAc3B,QAAQ,IAAI,MAAM;WAIX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;CAKvD"}
|
package/dist/rsa.private-key.js
CHANGED
|
@@ -3,14 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RSAPrivateKey = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const node_forge_1 = tslib_1.__importDefault(require("node-forge"));
|
|
6
|
+
const utils_1 = require("./utils");
|
|
6
7
|
class RSAPrivateKey {
|
|
7
8
|
key;
|
|
8
9
|
constructor(key) {
|
|
9
10
|
this.key = key;
|
|
10
11
|
}
|
|
11
12
|
decrypt(encrypted) {
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const md = (0, utils_1.getMd)();
|
|
14
|
+
const chunkSize = (0, utils_1.getEncryptedLength)(this.key);
|
|
15
|
+
const chunks = (0, utils_1.chunkString)(encrypted, chunkSize);
|
|
16
|
+
const decryptedChunks = chunks.map(chunk => {
|
|
17
|
+
const value = Buffer.from(chunk, 'hex').toString('binary');
|
|
18
|
+
return this.key.decrypt(value, 'RSA-OAEP', { md });
|
|
19
|
+
});
|
|
20
|
+
return decryptedChunks.join('');
|
|
14
21
|
}
|
|
15
22
|
sign(value) {
|
|
16
23
|
const hash = node_forge_1.default.md.sha512.create();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.private-key.js","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;
|
|
1
|
+
{"version":3,"file":"rsa.private-key.js","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,mCAIiB;AAEjB,MAAa,aAAa;IACR,GAAG,CAA2B;IAE/C,YAAmB,GAA6B;QAC/C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,SAAiB;QAC/B,MAAM,EAAE,GAAG,IAAA,aAAK,GAAE,CAAC;QACnB,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAG/C,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE3D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,IAAI,CAAC,KAAa;QACxB,MAAM,IAAI,GAAG,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,GAAG,GAAG,oBAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5B,EAAE,EAAE,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;YAC5B,GAAG,EAAE,oBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpD,UAAU,EAAE,EAAE;SACd,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAEM,QAAQ;QACd,OAAO,oBAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAc;QACtC,MAAM,GAAG,GAAG,oBAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACD;AA7CD,sCA6CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.public-key.d.ts","sourceRoot":"","sources":["../src/rsa.public-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,KAAK,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rsa.public-key.d.ts","sourceRoot":"","sources":["../src/rsa.public-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,KAAK,MAAM,YAAY,CAAC;AAuB/B,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;IAE9C,OAAc,MAAM,wEAAU;gBAEX,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS;IAIxC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAc9B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAejD,QAAQ,IAAI,MAAM;WAIX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;CAKtD"}
|
package/dist/rsa.public-key.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.RSAPublicKey = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const validation_1 = require("@hg-ts/validation");
|
|
6
6
|
const node_forge_1 = tslib_1.__importDefault(require("node-forge"));
|
|
7
|
+
const utils_1 = require("./utils");
|
|
7
8
|
const schema = validation_1.z.string().transform((value, ctx) => {
|
|
8
9
|
try {
|
|
9
10
|
const publicKey = node_forge_1.default.pki.publicKeyFromPem(value);
|
|
@@ -26,8 +27,14 @@ class RSAPublicKey {
|
|
|
26
27
|
this.key = key;
|
|
27
28
|
}
|
|
28
29
|
encrypt(value) {
|
|
29
|
-
const
|
|
30
|
-
|
|
30
|
+
const md = (0, utils_1.getMd)();
|
|
31
|
+
const chunkSize = (0, utils_1.getMaxLength)(this.key, md);
|
|
32
|
+
const chunks = (0, utils_1.chunkString)(value, chunkSize);
|
|
33
|
+
const encryptedChunks = chunks.map(chunk => {
|
|
34
|
+
const binarySignature = this.key.encrypt(chunk, 'RSA-OAEP', { md });
|
|
35
|
+
return Buffer.from(binarySignature, 'binary').toString('hex');
|
|
36
|
+
});
|
|
37
|
+
return encryptedChunks.join('');
|
|
31
38
|
}
|
|
32
39
|
verify(signature, value) {
|
|
33
40
|
const hash = node_forge_1.default.md.sha512.create();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.public-key.js","sourceRoot":"","sources":["../src/rsa.public-key.ts"],"names":[],"mappings":";;;;AAAA,kDAAsC;AACtC,oEAA+B;
|
|
1
|
+
{"version":3,"file":"rsa.public-key.js","sourceRoot":"","sources":["../src/rsa.public-key.ts"],"names":[],"mappings":"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"}
|
package/dist/rsa.test.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { Suite } from '@hg-ts/tests';
|
|
|
2
2
|
export declare class BaseRepositoryTestSuite extends Suite {
|
|
3
3
|
signature(): Promise<void>;
|
|
4
4
|
encryption(): Promise<void>;
|
|
5
|
+
longMessageEncryption(): Promise<void>;
|
|
6
|
+
longMessageSignature(): Promise<void>;
|
|
5
7
|
seeded(): Promise<void>;
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=rsa.test.d.ts.map
|
package/dist/rsa.test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.test.d.ts","sourceRoot":"","sources":["../src/rsa.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAGtB,qBACa,uBAAwB,SAAQ,KAAK;IAEpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAQpC"}
|
|
1
|
+
{"version":3,"file":"rsa.test.d.ts","sourceRoot":"","sources":["../src/rsa.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAGtB,qBACa,uBAAwB,SAAQ,KAAK;IAEpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAQpC"}
|
package/dist/rsa.test.js
CHANGED
|
@@ -17,6 +17,19 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
|
|
|
17
17
|
const encrypted = rsa.encrypt(value);
|
|
18
18
|
(0, tests_1.expect)(rsa.decrypt(encrypted)).toBe(value);
|
|
19
19
|
}
|
|
20
|
+
async longMessageEncryption() {
|
|
21
|
+
const rsa = new rsa_key_pair_1.RSAKeyPair();
|
|
22
|
+
const rsaToTest = new rsa_key_pair_1.RSAKeyPair();
|
|
23
|
+
const value = rsaToTest.publicKey;
|
|
24
|
+
const encrypted = rsa.encrypt(value);
|
|
25
|
+
(0, tests_1.expect)(rsa.decrypt(encrypted)).toBe(value);
|
|
26
|
+
}
|
|
27
|
+
async longMessageSignature() {
|
|
28
|
+
const rsa = new rsa_key_pair_1.RSAKeyPair();
|
|
29
|
+
const value = rsa.publicKey;
|
|
30
|
+
const signature = rsa.sign(value);
|
|
31
|
+
(0, tests_1.expect)(rsa.verify(signature, value)).toBeTruthy();
|
|
32
|
+
}
|
|
20
33
|
async seeded() {
|
|
21
34
|
const seed = Math.random().toString();
|
|
22
35
|
const rsa1 = new rsa_key_pair_1.RSAKeyPair({ seed });
|
|
@@ -38,6 +51,18 @@ tslib_1.__decorate([
|
|
|
38
51
|
tslib_1.__metadata("design:paramtypes", []),
|
|
39
52
|
tslib_1.__metadata("design:returntype", Promise)
|
|
40
53
|
], BaseRepositoryTestSuite.prototype, "encryption", null);
|
|
54
|
+
tslib_1.__decorate([
|
|
55
|
+
(0, tests_1.Test)(),
|
|
56
|
+
tslib_1.__metadata("design:type", Function),
|
|
57
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
58
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
59
|
+
], BaseRepositoryTestSuite.prototype, "longMessageEncryption", null);
|
|
60
|
+
tslib_1.__decorate([
|
|
61
|
+
(0, tests_1.Test)(),
|
|
62
|
+
tslib_1.__metadata("design:type", Function),
|
|
63
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
64
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
65
|
+
], BaseRepositoryTestSuite.prototype, "longMessageSignature", null);
|
|
41
66
|
tslib_1.__decorate([
|
|
42
67
|
(0, tests_1.Test)(),
|
|
43
68
|
tslib_1.__metadata("design:type", Function),
|
package/dist/rsa.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.test.js","sourceRoot":"","sources":["../src/rsa.test.ts"],"names":[],"mappings":";;;;AAAA,wCAKsB;AACtB,iDAA4C;AAGrC,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,aAAK;IAEpC,AAAN,KAAK,CAAC,SAAS;QACrB,MAAM,GAAG,GAAG,IAAI,yBAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEvC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAA,cAAM,EAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACnD,CAAC;IAGY,AAAN,KAAK,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,IAAI,yBAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEvC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAA,cAAM,EAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAGY,AAAN,KAAK,CAAC,MAAM;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,yBAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,yBAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtC,IAAA,cAAM,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAA,cAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACD,CAAA;
|
|
1
|
+
{"version":3,"file":"rsa.test.js","sourceRoot":"","sources":["../src/rsa.test.ts"],"names":[],"mappings":";;;;AAAA,wCAKsB;AACtB,iDAA4C;AAGrC,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,aAAK;IAEpC,AAAN,KAAK,CAAC,SAAS;QACrB,MAAM,GAAG,GAAG,IAAI,yBAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEvC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAA,cAAM,EAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACnD,CAAC;IAGY,AAAN,KAAK,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,IAAI,yBAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEvC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAA,cAAM,EAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAGY,AAAN,KAAK,CAAC,qBAAqB;QACjC,MAAM,GAAG,GAAG,IAAI,yBAAU,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,yBAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;QAElC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAA,cAAM,EAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAGY,AAAN,KAAK,CAAC,oBAAoB;QAChC,MAAM,GAAG,GAAG,IAAI,yBAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;QAE5B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAA,cAAM,EAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACnD,CAAC;IAGY,AAAN,KAAK,CAAC,MAAM;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,yBAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,yBAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtC,IAAA,cAAM,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAA,cAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACD,CAAA;AA/CY,0DAAuB;AAEtB;IADZ,IAAA,YAAI,GAAE;;;;wDAON;AAGY;IADZ,IAAA,YAAI,GAAE;;;;yDAON;AAGY;IADZ,IAAA,YAAI,GAAE;;;;oEAQN;AAGY;IADZ,IAAA,YAAI,GAAE;;;;mEAON;AAGY;IADZ,IAAA,YAAI,GAAE;;;;qDAQN;kCA9CW,uBAAuB;IADnC,IAAA,gBAAQ,GAAE;GACE,uBAAuB,CA+CnC"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import forge from 'node-forge';
|
|
2
|
+
export declare function chunkString(value: string, length: number): string[];
|
|
3
|
+
export declare function getMd(): forge.md.MessageDigest;
|
|
4
|
+
export declare function getKeyLength(key: forge.pki.rsa.PrivateKey | forge.pki.rsa.PublicKey): number;
|
|
5
|
+
export declare function getMaxLength(key: forge.pki.rsa.PrivateKey | forge.pki.rsa.PublicKey, md: forge.md.MessageDigest): number;
|
|
6
|
+
export declare function getEncryptedLength(key: forge.pki.rsa.PrivateKey | forge.pki.rsa.PublicKey): number;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWnE;AAED,wBAAgB,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,aAAa,CAE9C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAE5F;AAED,wBAAgB,YAAY,CAC3B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EACvD,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,GACxB,MAAM,CAIR;AAGD,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GACrD,MAAM,CAIR"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chunkString = chunkString;
|
|
4
|
+
exports.getMd = getMd;
|
|
5
|
+
exports.getKeyLength = getKeyLength;
|
|
6
|
+
exports.getMaxLength = getMaxLength;
|
|
7
|
+
exports.getEncryptedLength = getEncryptedLength;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const node_forge_1 = tslib_1.__importDefault(require("node-forge"));
|
|
10
|
+
function chunkString(value, length) {
|
|
11
|
+
const chars = value.split('');
|
|
12
|
+
const chunks = [];
|
|
13
|
+
while (chars.length > 0) {
|
|
14
|
+
const chunk = chars.splice(0, length);
|
|
15
|
+
chunks.push(chunk.join(''));
|
|
16
|
+
}
|
|
17
|
+
return chunks;
|
|
18
|
+
}
|
|
19
|
+
function getMd() {
|
|
20
|
+
return node_forge_1.default.md.sha512.create();
|
|
21
|
+
}
|
|
22
|
+
function getKeyLength(key) {
|
|
23
|
+
return Math.ceil(key.n.bitLength() / 8);
|
|
24
|
+
}
|
|
25
|
+
function getMaxLength(key, md) {
|
|
26
|
+
const keyLength = getKeyLength(key);
|
|
27
|
+
return keyLength - (md.digestLength * 2) - 2;
|
|
28
|
+
}
|
|
29
|
+
function getEncryptedLength(key) {
|
|
30
|
+
const keyLength = getKeyLength(key);
|
|
31
|
+
return keyLength * 2;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAEA,kCAWC;AAED,sBAEC;AAED,oCAEC;AAED,oCAOC;AAGD,gDAMC;;AAvCD,oEAA+B;AAE/B,SAAgB,WAAW,CAAC,KAAa,EAAE,MAAc;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,KAAK;IACpB,OAAO,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,SAAgB,YAAY,CAAC,GAAuD;IACnF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,YAAY,CAC3B,GAAuD,EACvD,EAA0B;IAE1B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAGD,SAAgB,kBAAkB,CACjC,GAAuD;IAEvD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO,SAAS,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/rsa",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js"
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"test:dev": "yarn build:dev --onSuccess \"yarn test\""
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@hg-ts-config/typescript": "0.2.
|
|
21
|
-
"@hg-ts/exception": "0.2.
|
|
22
|
-
"@hg-ts/linter": "0.2.
|
|
23
|
-
"@hg-ts/tests": "0.2.
|
|
24
|
-
"@hg-ts/types": "0.2.
|
|
25
|
-
"@hg-ts/validation": "0.2.
|
|
20
|
+
"@hg-ts-config/typescript": "0.2.9",
|
|
21
|
+
"@hg-ts/exception": "0.2.9",
|
|
22
|
+
"@hg-ts/linter": "0.2.9",
|
|
23
|
+
"@hg-ts/tests": "0.2.9",
|
|
24
|
+
"@hg-ts/types": "0.2.9",
|
|
25
|
+
"@hg-ts/validation": "0.2.9",
|
|
26
26
|
"@types/node": "22.10.6",
|
|
27
27
|
"@types/node-forge": "^1",
|
|
28
28
|
"eslint": "9.18.0",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"typescript": "5.7.3"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@hg-ts/exception": "0.2.
|
|
37
|
-
"@hg-ts/validation": "0.2.
|
|
36
|
+
"@hg-ts/exception": "0.2.9",
|
|
37
|
+
"@hg-ts/validation": "0.2.9",
|
|
38
38
|
"reflect-metadata": "*",
|
|
39
39
|
"tslib": "*"
|
|
40
40
|
},
|