@hg-ts/rsa 0.7.21 → 0.7.24
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.key-pair.d.ts +2 -0
- package/dist/rsa.key-pair.d.ts.map +1 -1
- package/dist/rsa.key-pair.js +8 -3
- package/dist/rsa.key-pair.js.map +1 -1
- package/dist/rsa.private-key.d.ts +2 -0
- package/dist/rsa.private-key.d.ts.map +1 -1
- package/dist/rsa.private-key.js +4 -0
- package/dist/rsa.private-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/package.json +9 -9
- package/src/rsa.key-pair.ts +11 -3
- package/src/rsa.private-key.ts +5 -0
- package/src/rsa.test.ts +21 -0
- package/dist/utils.d.ts +0 -7
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -25
- package/dist/utils.js.map +0 -1
- package/src/utils.ts +0 -40
package/dist/rsa.key-pair.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.key-pair.d.ts","sourceRoot":"","sources":["../src/rsa.key-pair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rsa.key-pair.d.ts","sourceRoot":"","sources":["../src/rsa.key-pair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CACpC,CAAA;AAED,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAE3B,OAAO,GAAE,iBAAsB;IAO3C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAIvC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAIvC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI3B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIjE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,OAAO,CAAC,YAAY;CAmBpB"}
|
package/dist/rsa.key-pair.js
CHANGED
|
@@ -28,14 +28,19 @@ export class RSAKeyPair {
|
|
|
28
28
|
return this.privateRsaKey.toString();
|
|
29
29
|
}
|
|
30
30
|
generateKeys(options) {
|
|
31
|
-
const { seed } = options;
|
|
31
|
+
const { seed, privateKey, bits } = options;
|
|
32
|
+
if (privateKey) {
|
|
33
|
+
const key = typeof privateKey === 'string' ? RSAPrivateKey.fromString(privateKey) : privateKey;
|
|
34
|
+
const publicKey = key.toPublicKey();
|
|
35
|
+
return { privateKey: key['key'], publicKey: publicKey['key'] };
|
|
36
|
+
}
|
|
32
37
|
if (!seed) {
|
|
33
|
-
return forge.pki.rsa.generateKeyPair({ bits
|
|
38
|
+
return forge.pki.rsa.generateKeyPair({ bits });
|
|
34
39
|
}
|
|
35
40
|
const prng = forge.random.createInstance();
|
|
36
41
|
prng.seedFileSync = () => seed;
|
|
37
42
|
prng.seedFile = () => seed;
|
|
38
|
-
return forge.pki.rsa.generateKeyPair({ prng, bits
|
|
43
|
+
return forge.pki.rsa.generateKeyPair({ prng, bits });
|
|
39
44
|
}
|
|
40
45
|
}
|
|
41
46
|
//# sourceMappingURL=rsa.key-pair.js.map
|
package/dist/rsa.key-pair.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.key-pair.js","sourceRoot":"","sources":["../src/rsa.key-pair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"rsa.key-pair.js","sourceRoot":"","sources":["../src/rsa.key-pair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD,MAAM,OAAO,UAAU;IACL,YAAY,CAAe;IAC3B,aAAa,CAAgB;IAE9C,YAAmB,UAA6B,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAEM,OAAO,CAAC,KAAsB;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,KAAsB;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,IAAI,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,SAA0B,EAAE,KAAa;QACtD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;IAEO,YAAY,CAAC,OAA0B;QAC9C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAE3C,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAC/F,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAEpC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC;QAEnC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;CACD"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import forge from 'node-forge';
|
|
2
2
|
import { RSABaseKey } from './rsa.base-key.js';
|
|
3
|
+
import { RSAPublicKey } from './rsa.public-key.js';
|
|
3
4
|
export declare class RSAPrivateKey extends RSABaseKey {
|
|
4
5
|
protected readonly key: forge.pki.rsa.PrivateKey;
|
|
5
6
|
constructor(key: forge.pki.rsa.PrivateKey);
|
|
7
|
+
toPublicKey(): RSAPublicKey;
|
|
6
8
|
decrypt(encrypted: string | Buffer): string;
|
|
7
9
|
sign(value: string): Buffer;
|
|
8
10
|
toString(): string;
|
|
@@ -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;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,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;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,aAAc,SAAQ,UAAU;IAC5C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;gBAE9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU;IAKzC,WAAW,IAAI,YAAY;IAI3B,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAU3C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAclB,QAAQ,IAAI,MAAM;WAIpB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;CAKvD"}
|
package/dist/rsa.private-key.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import forge from 'node-forge';
|
|
2
2
|
import { RSABaseKey } from './rsa.base-key.js';
|
|
3
|
+
import { RSAPublicKey } from './rsa.public-key.js';
|
|
3
4
|
export class RSAPrivateKey extends RSABaseKey {
|
|
4
5
|
key;
|
|
5
6
|
constructor(key) {
|
|
6
7
|
super();
|
|
7
8
|
this.key = key;
|
|
8
9
|
}
|
|
10
|
+
toPublicKey() {
|
|
11
|
+
return new RSAPublicKey(forge.pki.rsa.setPublicKey(this.key.n, this.key.e));
|
|
12
|
+
}
|
|
9
13
|
decrypt(encrypted) {
|
|
10
14
|
const md = this.getMd();
|
|
11
15
|
const chunks = this.prepareToDecrypt(encrypted);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.private-key.js","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"rsa.private-key.js","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,aAAc,SAAQ,UAAU;IACzB,GAAG,CAA2B;IAEjD,YAAmB,GAA6B;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAEM,WAAW;QACjB,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,OAAO,CAAC,SAA0B;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAEjG,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,IAAI,CAAC,KAAa;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5B,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,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;IACxC,CAAC;IAEe,QAAQ;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAc;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACD"}
|
package/dist/rsa.test.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Suite } from '@hg-ts/tests';
|
|
2
2
|
export declare class RsaTest extends Suite {
|
|
3
|
+
keyPairFromPrivateKey(): Promise<void>;
|
|
4
|
+
keyPairFromPrivateKeyString(): Promise<void>;
|
|
3
5
|
signature(): Promise<void>;
|
|
4
6
|
signatureBuffer(): Promise<void>;
|
|
5
7
|
encryption(): Promise<void>;
|
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,EAIN,KAAK,EAEL,MAAM,cAAc,CAAC;AAOtB,qBACa,OAAQ,SAAQ,KAAK;IAEpB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;CAOvD"}
|
|
1
|
+
{"version":3,"file":"rsa.test.d.ts","sourceRoot":"","sources":["../src/rsa.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,EAEL,MAAM,cAAc,CAAC;AAOtB,qBACa,OAAQ,SAAQ,KAAK;IAEpB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtC,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAShC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;CAOvD"}
|
package/dist/rsa.test.js
CHANGED
|
@@ -5,6 +5,19 @@ import { RSAKeyPair } from './rsa.key-pair.js';
|
|
|
5
5
|
import { RSAPrivateKey } from './rsa.private-key.js';
|
|
6
6
|
import { RSAPublicKey } from './rsa.public-key.js';
|
|
7
7
|
let RsaTest = class RsaTest extends Suite {
|
|
8
|
+
async keyPairFromPrivateKey() {
|
|
9
|
+
const { privateKey, publicKey } = new RSAKeyPair({ bits: 512 });
|
|
10
|
+
const key = RSAPrivateKey.fromString(privateKey);
|
|
11
|
+
const keyPairFromKey = new RSAKeyPair({ privateKey: key });
|
|
12
|
+
expect(keyPairFromKey.privateKey).toBe(privateKey);
|
|
13
|
+
expect(keyPairFromKey.publicKey).toBe(publicKey);
|
|
14
|
+
}
|
|
15
|
+
async keyPairFromPrivateKeyString() {
|
|
16
|
+
const { privateKey, publicKey } = new RSAKeyPair({ bits: 512 });
|
|
17
|
+
const keyPairFromKey = new RSAKeyPair({ privateKey });
|
|
18
|
+
expect(keyPairFromKey.privateKey).toBe(privateKey);
|
|
19
|
+
expect(keyPairFromKey.publicKey).toBe(publicKey);
|
|
20
|
+
}
|
|
8
21
|
async signature() {
|
|
9
22
|
const rsa = new RSAKeyPair({ bits: 512 });
|
|
10
23
|
const value = Math.random().toString();
|
|
@@ -70,6 +83,18 @@ MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALnfPJr6J2UXwvZhbPWolBw4UJHAEMd
|
|
|
70
83
|
-----END PUBLIC KEY-----`);
|
|
71
84
|
}
|
|
72
85
|
};
|
|
86
|
+
__decorate([
|
|
87
|
+
Test(),
|
|
88
|
+
__metadata("design:type", Function),
|
|
89
|
+
__metadata("design:paramtypes", []),
|
|
90
|
+
__metadata("design:returntype", Promise)
|
|
91
|
+
], RsaTest.prototype, "keyPairFromPrivateKey", null);
|
|
92
|
+
__decorate([
|
|
93
|
+
Test(),
|
|
94
|
+
__metadata("design:type", Function),
|
|
95
|
+
__metadata("design:paramtypes", []),
|
|
96
|
+
__metadata("design:returntype", Promise)
|
|
97
|
+
], RsaTest.prototype, "keyPairFromPrivateKeyString", null);
|
|
73
98
|
__decorate([
|
|
74
99
|
Test(),
|
|
75
100
|
__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":"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
|
|
1
|
+
{"version":3,"file":"rsa.test.js","sourceRoot":"","sources":["../src/rsa.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/rsa",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.24",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"test:dev": "vitest watch"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@hg-ts-config/typescript": "0.7.
|
|
22
|
-
"@hg-ts/exception": "0.7.
|
|
23
|
-
"@hg-ts/linter": "0.7.
|
|
24
|
-
"@hg-ts/tests": "0.7.
|
|
25
|
-
"@hg-ts/types": "0.7.
|
|
26
|
-
"@hg-ts/validation": "0.7.
|
|
21
|
+
"@hg-ts-config/typescript": "0.7.24",
|
|
22
|
+
"@hg-ts/exception": "0.7.24",
|
|
23
|
+
"@hg-ts/linter": "0.7.24",
|
|
24
|
+
"@hg-ts/tests": "0.7.24",
|
|
25
|
+
"@hg-ts/types": "0.7.24",
|
|
26
|
+
"@hg-ts/validation": "0.7.24",
|
|
27
27
|
"@types/node": "22.19.1",
|
|
28
28
|
"@types/node-forge": "^1",
|
|
29
29
|
"@vitest/coverage-v8": "4.0.14",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"vitest": "4.0.14"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@hg-ts/exception": "0.7.
|
|
40
|
-
"@hg-ts/validation": "0.7.
|
|
39
|
+
"@hg-ts/exception": "0.7.24",
|
|
40
|
+
"@hg-ts/validation": "0.7.24",
|
|
41
41
|
"reflect-metadata": "*",
|
|
42
42
|
"tslib": "*",
|
|
43
43
|
"vitest": "*"
|
package/src/rsa.key-pair.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { RSAPublicKey } from './rsa.public-key.js';
|
|
|
5
5
|
export type RSAKeyPairOptions = {
|
|
6
6
|
seed?: string;
|
|
7
7
|
bits?: number;
|
|
8
|
+
privateKey?: RSAPrivateKey | string;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
export class RSAKeyPair {
|
|
@@ -43,15 +44,22 @@ export class RSAKeyPair {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
private generateKeys(options: RSAKeyPairOptions): forge.pki.rsa.KeyPair {
|
|
46
|
-
const { seed } = options;
|
|
47
|
+
const { seed, privateKey, bits } = options;
|
|
48
|
+
|
|
49
|
+
if (privateKey) {
|
|
50
|
+
const key = typeof privateKey === 'string' ? RSAPrivateKey.fromString(privateKey) : privateKey;
|
|
51
|
+
const publicKey = key.toPublicKey();
|
|
52
|
+
|
|
53
|
+
return { privateKey: key['key'], publicKey: publicKey['key'] };
|
|
54
|
+
}
|
|
47
55
|
if (!seed) {
|
|
48
|
-
return forge.pki.rsa.generateKeyPair({ bits
|
|
56
|
+
return forge.pki.rsa.generateKeyPair({ bits });
|
|
49
57
|
}
|
|
50
58
|
|
|
51
59
|
const prng = forge.random.createInstance();
|
|
52
60
|
prng.seedFileSync = (): string => seed;
|
|
53
61
|
prng.seedFile = (): string => seed;
|
|
54
62
|
|
|
55
|
-
return forge.pki.rsa.generateKeyPair({ prng, bits
|
|
63
|
+
return forge.pki.rsa.generateKeyPair({ prng, bits });
|
|
56
64
|
}
|
|
57
65
|
}
|
package/src/rsa.private-key.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import forge from 'node-forge';
|
|
2
2
|
import { RSABaseKey } from './rsa.base-key.js';
|
|
3
|
+
import { RSAPublicKey } from './rsa.public-key.js';
|
|
3
4
|
|
|
4
5
|
export class RSAPrivateKey extends RSABaseKey {
|
|
5
6
|
protected readonly key: forge.pki.rsa.PrivateKey;
|
|
@@ -9,6 +10,10 @@ export class RSAPrivateKey extends RSABaseKey {
|
|
|
9
10
|
this.key = key;
|
|
10
11
|
}
|
|
11
12
|
|
|
13
|
+
public toPublicKey(): RSAPublicKey {
|
|
14
|
+
return new RSAPublicKey(forge.pki.rsa.setPublicKey(this.key.n, this.key.e));
|
|
15
|
+
}
|
|
16
|
+
|
|
12
17
|
public decrypt(encrypted: string | Buffer): string {
|
|
13
18
|
const md = this.getMd();
|
|
14
19
|
|
package/src/rsa.test.ts
CHANGED
|
@@ -13,6 +13,27 @@ import { RSAPublicKey } from './rsa.public-key.js';
|
|
|
13
13
|
|
|
14
14
|
@Describe()
|
|
15
15
|
export class RsaTest extends Suite {
|
|
16
|
+
@Test()
|
|
17
|
+
public async keyPairFromPrivateKey(): Promise<void> {
|
|
18
|
+
const { privateKey, publicKey } = new RSAKeyPair({ bits: 512 });
|
|
19
|
+
const key = RSAPrivateKey.fromString(privateKey);
|
|
20
|
+
|
|
21
|
+
const keyPairFromKey = new RSAKeyPair({ privateKey: key });
|
|
22
|
+
|
|
23
|
+
expect(keyPairFromKey.privateKey).toBe(privateKey);
|
|
24
|
+
expect(keyPairFromKey.publicKey).toBe(publicKey);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@Test()
|
|
28
|
+
public async keyPairFromPrivateKeyString(): Promise<void> {
|
|
29
|
+
const { privateKey, publicKey } = new RSAKeyPair({ bits: 512 });
|
|
30
|
+
|
|
31
|
+
const keyPairFromKey = new RSAKeyPair({ privateKey });
|
|
32
|
+
|
|
33
|
+
expect(keyPairFromKey.privateKey).toBe(privateKey);
|
|
34
|
+
expect(keyPairFromKey.publicKey).toBe(publicKey);
|
|
35
|
+
}
|
|
36
|
+
|
|
16
37
|
@Test()
|
|
17
38
|
public async signature(): Promise<void> {
|
|
18
39
|
const rsa = new RSAKeyPair({ bits: 512 });
|
package/dist/utils.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
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
|
package/dist/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import forge from 'node-forge';
|
|
2
|
-
export function chunkString(value, length) {
|
|
3
|
-
const chars = value.split('');
|
|
4
|
-
const chunks = [];
|
|
5
|
-
while (chars.length > 0) {
|
|
6
|
-
const chunk = chars.splice(0, length);
|
|
7
|
-
chunks.push(chunk.join(''));
|
|
8
|
-
}
|
|
9
|
-
return chunks;
|
|
10
|
-
}
|
|
11
|
-
export function getMd() {
|
|
12
|
-
return forge.md.sha256.create();
|
|
13
|
-
}
|
|
14
|
-
export function getKeyLength(key) {
|
|
15
|
-
return Math.ceil(key.n.bitLength() / 8);
|
|
16
|
-
}
|
|
17
|
-
export function getMaxLength(key, md) {
|
|
18
|
-
const keyLength = getKeyLength(key);
|
|
19
|
-
return keyLength - (md.digestLength * 2) - 2;
|
|
20
|
-
}
|
|
21
|
-
export function getEncryptedLength(key) {
|
|
22
|
-
const keyLength = getKeyLength(key);
|
|
23
|
-
return keyLength * 2;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,UAAU,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,MAAM,UAAU,KAAK;IACpB,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAuD;IACnF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,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,MAAM,UAAU,kBAAkB,CACjC,GAAuD;IAEvD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO,SAAS,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
package/src/utils.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import forge from 'node-forge';
|
|
2
|
-
|
|
3
|
-
export function chunkString(value: string, length: number): string[] {
|
|
4
|
-
const chars = value.split('');
|
|
5
|
-
const chunks: string[] = [];
|
|
6
|
-
|
|
7
|
-
while (chars.length > 0) {
|
|
8
|
-
const chunk = chars.splice(0, length);
|
|
9
|
-
|
|
10
|
-
chunks.push(chunk.join(''));
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return chunks;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function getMd(): forge.md.MessageDigest {
|
|
17
|
-
return forge.md.sha256.create();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function getKeyLength(key: forge.pki.rsa.PrivateKey | forge.pki.rsa.PublicKey): number {
|
|
21
|
-
return Math.ceil(key.n.bitLength() / 8);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function getMaxLength(
|
|
25
|
-
key: forge.pki.rsa.PrivateKey | forge.pki.rsa.PublicKey,
|
|
26
|
-
md: forge.md.MessageDigest,
|
|
27
|
-
): number {
|
|
28
|
-
const keyLength = getKeyLength(key);
|
|
29
|
-
|
|
30
|
-
return keyLength - (md.digestLength * 2) - 2;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
export function getEncryptedLength(
|
|
35
|
-
key: forge.pki.rsa.PrivateKey | forge.pki.rsa.PublicKey,
|
|
36
|
-
): number {
|
|
37
|
-
const keyLength = getKeyLength(key);
|
|
38
|
-
|
|
39
|
-
return keyLength * 2;
|
|
40
|
-
}
|