@hg-ts/rsa 0.2.7 → 0.2.8
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/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/rsa.key-pair.d.ts +16 -0
- package/dist/rsa.key-pair.d.ts.map +1 -0
- package/dist/rsa.key-pair.js +46 -0
- package/dist/rsa.key-pair.js.map +1 -0
- package/dist/rsa.private-key.d.ts +10 -0
- package/dist/rsa.private-key.d.ts.map +1 -0
- package/dist/rsa.private-key.js +35 -0
- package/dist/rsa.private-key.js.map +1 -0
- package/dist/rsa.public-key.d.ts +12 -0
- package/dist/rsa.public-key.d.ts.map +1 -0
- package/dist/rsa.public-key.js +52 -0
- package/dist/rsa.public-key.js.map +1 -0
- package/dist/rsa.test.d.ts +7 -0
- package/dist/rsa.test.d.ts.map +1 -0
- package/dist/rsa.test.js +50 -0
- package/dist/rsa.test.js.map +1 -0
- package/package.json +9 -9
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./rsa.private-key"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./rsa.public-key"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./rsa.key-pair"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,2DAAiC;AACjC,yDAA+B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type RSAKeyPairOptions = {
|
|
2
|
+
seed?: string;
|
|
3
|
+
};
|
|
4
|
+
export declare class RSAKeyPair {
|
|
5
|
+
private readonly publicRsaKey;
|
|
6
|
+
private readonly privateRsaKey;
|
|
7
|
+
constructor(options?: RSAKeyPairOptions);
|
|
8
|
+
encrypt(value: string): string;
|
|
9
|
+
decrypt(value: string): string;
|
|
10
|
+
sign(value: string): string;
|
|
11
|
+
verify(signature: string, value: string): boolean;
|
|
12
|
+
get publicKey(): string;
|
|
13
|
+
get privateKey(): string;
|
|
14
|
+
private generateKeys;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=rsa.key-pair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsa.key-pair.d.ts","sourceRoot":"","sources":["../src/rsa.key-pair.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,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;IAI9B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI9B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI3B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIxD,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,OAAO,CAAC,YAAY;CAYpB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RSAKeyPair = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const node_forge_1 = tslib_1.__importDefault(require("node-forge"));
|
|
6
|
+
const rsa_private_key_1 = require("./rsa.private-key");
|
|
7
|
+
const rsa_public_key_1 = require("./rsa.public-key");
|
|
8
|
+
class RSAKeyPair {
|
|
9
|
+
publicRsaKey;
|
|
10
|
+
privateRsaKey;
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
const keyPair = this.generateKeys(options);
|
|
13
|
+
this.privateRsaKey = new rsa_private_key_1.RSAPrivateKey(keyPair.privateKey);
|
|
14
|
+
this.publicRsaKey = new rsa_public_key_1.RSAPublicKey(keyPair.publicKey);
|
|
15
|
+
}
|
|
16
|
+
encrypt(value) {
|
|
17
|
+
return this.publicRsaKey.encrypt(value);
|
|
18
|
+
}
|
|
19
|
+
decrypt(value) {
|
|
20
|
+
return this.privateRsaKey.decrypt(value);
|
|
21
|
+
}
|
|
22
|
+
sign(value) {
|
|
23
|
+
return this.privateRsaKey.sign(value);
|
|
24
|
+
}
|
|
25
|
+
verify(signature, value) {
|
|
26
|
+
return this.publicRsaKey.verify(signature, value);
|
|
27
|
+
}
|
|
28
|
+
get publicKey() {
|
|
29
|
+
return this.publicRsaKey.toString();
|
|
30
|
+
}
|
|
31
|
+
get privateKey() {
|
|
32
|
+
return this.privateRsaKey.toString();
|
|
33
|
+
}
|
|
34
|
+
generateKeys(options) {
|
|
35
|
+
const { seed } = options;
|
|
36
|
+
if (!seed) {
|
|
37
|
+
return node_forge_1.default.pki.rsa.generateKeyPair();
|
|
38
|
+
}
|
|
39
|
+
const prng = node_forge_1.default.random.createInstance();
|
|
40
|
+
prng.seedFileSync = () => seed;
|
|
41
|
+
prng.seedFile = () => seed;
|
|
42
|
+
return node_forge_1.default.pki.rsa.generateKeyPair({ prng });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.RSAKeyPair = RSAKeyPair;
|
|
46
|
+
//# sourceMappingURL=rsa.key-pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsa.key-pair.js","sourceRoot":"","sources":["../src/rsa.key-pair.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,uDAAkD;AAClD,qDAAgD;AAMhD,MAAa,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,+BAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,6BAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAEM,OAAO,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,KAAa;QAC3B,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,SAAiB,EAAE,KAAa;QAC7C,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,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,oBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,IAAI,GAAG,oBAAK,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,oBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;CACD;AA/CD,gCA+CC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import forge from 'node-forge';
|
|
2
|
+
export declare class RSAPrivateKey {
|
|
3
|
+
private readonly key;
|
|
4
|
+
constructor(key: forge.pki.rsa.PrivateKey);
|
|
5
|
+
decrypt(encrypted: string): string;
|
|
6
|
+
sign(value: string): string;
|
|
7
|
+
toString(): string;
|
|
8
|
+
static fromString(pemKey: string): RSAPrivateKey;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=rsa.private-key.d.ts.map
|
|
@@ -0,0 +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;AAE/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;IAMlC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAc3B,QAAQ,IAAI,MAAM;WAIX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;CAKvD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RSAPrivateKey = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const node_forge_1 = tslib_1.__importDefault(require("node-forge"));
|
|
6
|
+
class RSAPrivateKey {
|
|
7
|
+
key;
|
|
8
|
+
constructor(key) {
|
|
9
|
+
this.key = key;
|
|
10
|
+
}
|
|
11
|
+
decrypt(encrypted) {
|
|
12
|
+
const value = Buffer.from(encrypted, 'hex').toString('binary');
|
|
13
|
+
return this.key.decrypt(value);
|
|
14
|
+
}
|
|
15
|
+
sign(value) {
|
|
16
|
+
const hash = node_forge_1.default.md.sha512.create();
|
|
17
|
+
hash.update(value);
|
|
18
|
+
const pss = node_forge_1.default.pss.create({
|
|
19
|
+
md: node_forge_1.default.md.sha512.create(),
|
|
20
|
+
mgf: node_forge_1.default.mgf.mgf1.create(node_forge_1.default.md.sha512.create()),
|
|
21
|
+
saltLength: 20,
|
|
22
|
+
});
|
|
23
|
+
const signedId = this.key.sign(hash, pss);
|
|
24
|
+
return Buffer.from(signedId, 'binary').toString('hex');
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
return node_forge_1.default.pki.privateKeyToPem(this.key);
|
|
28
|
+
}
|
|
29
|
+
static fromString(pemKey) {
|
|
30
|
+
const key = node_forge_1.default.pki.privateKeyFromPem(pemKey);
|
|
31
|
+
return new RSAPrivateKey(key);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.RSAPrivateKey = RSAPrivateKey;
|
|
35
|
+
//# sourceMappingURL=rsa.private-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsa.private-key.js","sourceRoot":"","sources":["../src/rsa.private-key.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,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,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,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;AApCD,sCAoCC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from '@hg-ts/validation';
|
|
2
|
+
import forge from 'node-forge';
|
|
3
|
+
export declare class RSAPublicKey {
|
|
4
|
+
private readonly key;
|
|
5
|
+
static schema: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
6
|
+
constructor(key: forge.pki.rsa.PublicKey);
|
|
7
|
+
encrypt(value: string): string;
|
|
8
|
+
verify(signature: string, value: string): boolean;
|
|
9
|
+
toString(): string;
|
|
10
|
+
static fromString(pemKey: string): RSAPublicKey;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=rsa.public-key.d.ts.map
|
|
@@ -0,0 +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;AAkB/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;IAM9B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAejD,QAAQ,IAAI,MAAM;WAIX,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;CAKtD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RSAPublicKey = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const validation_1 = require("@hg-ts/validation");
|
|
6
|
+
const node_forge_1 = tslib_1.__importDefault(require("node-forge"));
|
|
7
|
+
const schema = validation_1.z.string().transform((value, ctx) => {
|
|
8
|
+
try {
|
|
9
|
+
const publicKey = node_forge_1.default.pki.publicKeyFromPem(value);
|
|
10
|
+
return node_forge_1.default.pki.publicKeyToPem(publicKey);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
ctx.addIssue({
|
|
14
|
+
message: 'Invalid public key',
|
|
15
|
+
fatal: true,
|
|
16
|
+
code: 'invalid_string',
|
|
17
|
+
validation: 'regex',
|
|
18
|
+
});
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
}).pipe(validation_1.z.string());
|
|
22
|
+
class RSAPublicKey {
|
|
23
|
+
key;
|
|
24
|
+
static schema = schema;
|
|
25
|
+
constructor(key) {
|
|
26
|
+
this.key = key;
|
|
27
|
+
}
|
|
28
|
+
encrypt(value) {
|
|
29
|
+
const binarySignature = this.key.encrypt(value);
|
|
30
|
+
return Buffer.from(binarySignature, 'binary').toString('hex');
|
|
31
|
+
}
|
|
32
|
+
verify(signature, value) {
|
|
33
|
+
const hash = node_forge_1.default.md.sha512.create();
|
|
34
|
+
hash.update(value);
|
|
35
|
+
const pss = node_forge_1.default.pss.create({
|
|
36
|
+
md: node_forge_1.default.md.sha512.create(),
|
|
37
|
+
mgf: node_forge_1.default.mgf.mgf1.create(node_forge_1.default.md.sha512.create()),
|
|
38
|
+
saltLength: 20,
|
|
39
|
+
});
|
|
40
|
+
const binarySignature = Buffer.from(signature, 'hex').toString('binary');
|
|
41
|
+
return this.key.verify(hash.digest().bytes(), binarySignature, pss);
|
|
42
|
+
}
|
|
43
|
+
toString() {
|
|
44
|
+
return node_forge_1.default.pki.publicKeyToPem(this.key);
|
|
45
|
+
}
|
|
46
|
+
static fromString(pemKey) {
|
|
47
|
+
const key = node_forge_1.default.pki.publicKeyFromPem(pemKey);
|
|
48
|
+
return new RSAPublicKey(key);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.RSAPublicKey = RSAPublicKey;
|
|
52
|
+
//# sourceMappingURL=rsa.public-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsa.public-key.js","sourceRoot":"","sources":["../src/rsa.public-key.ts"],"names":[],"mappings":";;;;AAAA,kDAAsC;AACtC,oEAA+B;AAE/B,MAAM,MAAM,GAAG,cAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClD,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,oBAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEpD,OAAO,oBAAK,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,QAAQ,CAAC;YACZ,OAAO,EAAE,oBAAoB;YAC7B,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,OAAO;SACnB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC,CAAC,CAAC,IAAI,CAAC,cAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEpB,MAAa,YAAY;IACP,GAAG,CAA0B;IAEvC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9B,YAAmB,GAA4B;QAC9C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,KAAa;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,SAAiB,EAAE,KAAa;QAC7C,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;QAEH,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAEM,QAAQ;QACd,OAAO,oBAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAc;QACtC,MAAM,GAAG,GAAG,oBAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE/C,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;;AAtCF,oCAuCC"}
|
|
@@ -0,0 +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"}
|
package/dist/rsa.test.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseRepositoryTestSuite = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const tests_1 = require("@hg-ts/tests");
|
|
6
|
+
const rsa_key_pair_1 = require("./rsa.key-pair");
|
|
7
|
+
let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suite {
|
|
8
|
+
async signature() {
|
|
9
|
+
const rsa = new rsa_key_pair_1.RSAKeyPair();
|
|
10
|
+
const value = Math.random().toString();
|
|
11
|
+
const signature = rsa.sign(value);
|
|
12
|
+
(0, tests_1.expect)(rsa.verify(signature, value)).toBeTruthy();
|
|
13
|
+
}
|
|
14
|
+
async encryption() {
|
|
15
|
+
const rsa = new rsa_key_pair_1.RSAKeyPair();
|
|
16
|
+
const value = Math.random().toString();
|
|
17
|
+
const encrypted = rsa.encrypt(value);
|
|
18
|
+
(0, tests_1.expect)(rsa.decrypt(encrypted)).toBe(value);
|
|
19
|
+
}
|
|
20
|
+
async seeded() {
|
|
21
|
+
const seed = Math.random().toString();
|
|
22
|
+
const rsa1 = new rsa_key_pair_1.RSAKeyPair({ seed });
|
|
23
|
+
const rsa2 = new rsa_key_pair_1.RSAKeyPair({ seed });
|
|
24
|
+
(0, tests_1.expect)(rsa1.privateKey).toBe(rsa2.privateKey);
|
|
25
|
+
(0, tests_1.expect)(rsa1.publicKey).toBe(rsa2.publicKey);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.BaseRepositoryTestSuite = BaseRepositoryTestSuite;
|
|
29
|
+
tslib_1.__decorate([
|
|
30
|
+
(0, tests_1.Test)(),
|
|
31
|
+
tslib_1.__metadata("design:type", Function),
|
|
32
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
33
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
34
|
+
], BaseRepositoryTestSuite.prototype, "signature", null);
|
|
35
|
+
tslib_1.__decorate([
|
|
36
|
+
(0, tests_1.Test)(),
|
|
37
|
+
tslib_1.__metadata("design:type", Function),
|
|
38
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
39
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
40
|
+
], BaseRepositoryTestSuite.prototype, "encryption", null);
|
|
41
|
+
tslib_1.__decorate([
|
|
42
|
+
(0, tests_1.Test)(),
|
|
43
|
+
tslib_1.__metadata("design:type", Function),
|
|
44
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
45
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
46
|
+
], BaseRepositoryTestSuite.prototype, "seeded", null);
|
|
47
|
+
exports.BaseRepositoryTestSuite = BaseRepositoryTestSuite = tslib_1.__decorate([
|
|
48
|
+
(0, tests_1.Describe)()
|
|
49
|
+
], BaseRepositoryTestSuite);
|
|
50
|
+
//# sourceMappingURL=rsa.test.js.map
|
|
@@ -0,0 +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;AA5BY,0DAAuB;AAEtB;IADZ,IAAA,YAAI,GAAE;;;;wDAON;AAGY;IADZ,IAAA,YAAI,GAAE;;;;yDAON;AAGY;IADZ,IAAA,YAAI,GAAE;;;;qDAQN;kCA3BW,uBAAuB;IADnC,IAAA,gBAAQ,GAAE;GACE,uBAAuB,CA4BnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/rsa",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
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.8",
|
|
21
|
+
"@hg-ts/exception": "0.2.8",
|
|
22
|
+
"@hg-ts/linter": "0.2.8",
|
|
23
|
+
"@hg-ts/tests": "0.2.8",
|
|
24
|
+
"@hg-ts/types": "0.2.8",
|
|
25
|
+
"@hg-ts/validation": "0.2.8",
|
|
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.8",
|
|
37
|
+
"@hg-ts/validation": "0.2.8",
|
|
38
38
|
"reflect-metadata": "*",
|
|
39
39
|
"tslib": "*"
|
|
40
40
|
},
|