@lindorm/rsa 0.1.9 → 0.2.1
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/CHANGELOG.md +17 -0
- package/README.md +81 -0
- package/dist/classes/RsaKit.d.ts +8 -5
- package/dist/classes/RsaKit.d.ts.map +1 -1
- package/dist/classes/RsaKit.js +13 -6
- package/dist/classes/RsaKit.js.map +1 -1
- package/dist/types/rsa-kit.d.ts +9 -7
- package/dist/types/rsa-kit.d.ts.map +1 -1
- package/dist/utils/private/get-key.d.ts +6 -0
- package/dist/utils/private/get-key.d.ts.map +1 -0
- package/dist/utils/private/{get-options.js → get-key.js} +7 -5
- package/dist/utils/private/get-key.js.map +1 -0
- package/dist/utils/private/index.d.ts +1 -1
- package/dist/utils/private/index.d.ts.map +1 -1
- package/dist/utils/private/index.js +1 -1
- package/dist/utils/private/index.js.map +1 -1
- package/dist/utils/private/map-algorithm.d.ts.map +1 -1
- package/dist/utils/private/rsa-signature.d.ts +2 -2
- package/dist/utils/private/rsa-signature.d.ts.map +1 -1
- package/dist/utils/private/rsa-signature.js +6 -5
- package/dist/utils/private/rsa-signature.js.map +1 -1
- package/package.json +9 -6
- package/dist/utils/private/get-options.d.ts +0 -5
- package/dist/utils/private/get-options.d.ts.map +0 -1
- package/dist/utils/private/get-options.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.2.1](https://github.com/lindorm-io/monorepo/compare/@lindorm/rsa@0.2.0...@lindorm/rsa@0.2.1) (2025-07-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @lindorm/rsa
|
|
9
|
+
|
|
10
|
+
# [0.2.0](https://github.com/lindorm-io/monorepo/compare/@lindorm/rsa@0.1.9...@lindorm/rsa@0.2.0) (2025-06-17)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- add and implement keykit interface ([70762aa](https://github.com/lindorm-io/monorepo/commit/70762aaca51c9fe904121b69b4bc072cdd89c8a2))
|
|
15
|
+
- align with changes to kryptos ([74bbfff](https://github.com/lindorm-io/monorepo/commit/74bbfff6fb50504dc70327f7de3fd6d4b45cb65a))
|
|
16
|
+
- align with kryptos changes ([206eb38](https://github.com/lindorm-io/monorepo/commit/206eb38ae2a03b14973e706035c87a953cc753af))
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- add dsa encoding ([a893601](https://github.com/lindorm-io/monorepo/commit/a8936015a9408733445cdbda8d8b70d633a2330a))
|
|
21
|
+
- upgrade key kits ([198956c](https://github.com/lindorm-io/monorepo/commit/198956c5fa276ae192af22cb204b3c2158c74339))
|
|
22
|
+
|
|
6
23
|
## [0.1.9](https://github.com/lindorm-io/monorepo/compare/@lindorm/rsa@0.1.8...@lindorm/rsa@0.1.9) (2025-01-28)
|
|
7
24
|
|
|
8
25
|
**Note:** Version bump only for package @lindorm/rsa
|
package/README.md
CHANGED
|
@@ -1 +1,82 @@
|
|
|
1
1
|
# @lindorm/rsa
|
|
2
|
+
|
|
3
|
+
Lightweight **RSA signing / verification kit** that wraps a `RSxxx` key from
|
|
4
|
+
[`@lindorm/kryptos`](../kryptos). Provides a convenient `RsaKit` class that fulfils the `IKeyKit`
|
|
5
|
+
contract used by the Lindorm crypto packages.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @lindorm/rsa
|
|
13
|
+
# or
|
|
14
|
+
yarn add @lindorm/rsa
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Generate or import a key via Kryptos:
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { KryptosKit } from '@lindorm/kryptos';
|
|
21
|
+
|
|
22
|
+
const RS256 = KryptosKit.generate.rsa({ alg: 'RS256', use: 'sig', modulusLength: 2048 });
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Example
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { RsaKit } from '@lindorm/rsa';
|
|
31
|
+
|
|
32
|
+
const kit = new RsaKit({ kryptos: RS256, encoding: 'base64url' });
|
|
33
|
+
|
|
34
|
+
const signature = kit.sign('hello');
|
|
35
|
+
|
|
36
|
+
kit.assert('hello', signature); // throws RsaError if invalid
|
|
37
|
+
|
|
38
|
+
console.log(kit.format(signature)); // string representation
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### DSA encoding
|
|
42
|
+
|
|
43
|
+
Set `dsa: 'ieee-p1363'` when you need raw concatenated r||s encoding instead of DER:
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
const kit = new RsaKit({ kryptos: RS256, dsa: 'ieee-p1363' });
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## API
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
class RsaKit implements IKeyKit {
|
|
55
|
+
constructor(options: {
|
|
56
|
+
kryptos: IKryptosRsa;
|
|
57
|
+
dsa?: DsaEncoding; // 'der' | 'ieee-p1363' (default 'der')
|
|
58
|
+
encoding?: BufferEncoding; // default 'base64'
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
sign(data: KeyData): Buffer;
|
|
62
|
+
verify(data: KeyData, signature: KeyData): boolean;
|
|
63
|
+
assert(data: KeyData, signature: KeyData): void; // throws RsaError
|
|
64
|
+
format(buf: Buffer): string; // encode Buffer → string
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`KeyData` accepts `Buffer`, `string` or `Uint8Array`.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## TypeScript
|
|
73
|
+
|
|
74
|
+
Written in TS; declaration files included. Runtime dependencies are limited to Node’s `crypto`
|
|
75
|
+
module plus Lindorm utilities.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## License
|
|
80
|
+
|
|
81
|
+
AGPL-3.0-or-later – see the root [`LICENSE`](../../LICENSE).
|
|
82
|
+
|
package/dist/classes/RsaKit.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { IKeyKit, KeyData } from "@lindorm/types";
|
|
1
2
|
import { RsaKitOptions } from "../types";
|
|
2
|
-
export declare class RsaKit {
|
|
3
|
-
private readonly
|
|
3
|
+
export declare class RsaKit implements IKeyKit {
|
|
4
|
+
private readonly dsa;
|
|
5
|
+
private readonly encoding;
|
|
4
6
|
private readonly kryptos;
|
|
5
7
|
constructor(options: RsaKitOptions);
|
|
6
|
-
sign(data:
|
|
7
|
-
verify(data:
|
|
8
|
-
assert(data:
|
|
8
|
+
sign(data: KeyData): Buffer;
|
|
9
|
+
verify(data: KeyData, signature: KeyData): boolean;
|
|
10
|
+
assert(data: KeyData, signature: KeyData): void;
|
|
11
|
+
format(data: Buffer): string;
|
|
9
12
|
}
|
|
10
13
|
//# sourceMappingURL=RsaKit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RsaKit.d.ts","sourceRoot":"","sources":["../../src/classes/RsaKit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RsaKit.d.ts","sourceRoot":"","sources":["../../src/classes/RsaKit.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAEnB,OAAO,EAAE,aAAa;IAWlC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAQ3B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO;IAUlD,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAU/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGpC"}
|
package/dist/classes/RsaKit.js
CHANGED
|
@@ -5,11 +5,13 @@ const kryptos_1 = require("@lindorm/kryptos");
|
|
|
5
5
|
const errors_1 = require("../errors");
|
|
6
6
|
const private_1 = require("../utils/private");
|
|
7
7
|
class RsaKit {
|
|
8
|
-
|
|
8
|
+
dsa;
|
|
9
|
+
encoding;
|
|
9
10
|
kryptos;
|
|
10
11
|
constructor(options) {
|
|
11
|
-
this.
|
|
12
|
-
|
|
12
|
+
this.dsa = options.dsa ?? "der";
|
|
13
|
+
this.encoding = options.encoding ?? "base64";
|
|
14
|
+
if (!kryptos_1.KryptosKit.isRsa(options.kryptos)) {
|
|
13
15
|
throw new errors_1.RsaError("Invalid Kryptos instance");
|
|
14
16
|
}
|
|
15
17
|
this.kryptos = options.kryptos;
|
|
@@ -17,14 +19,15 @@ class RsaKit {
|
|
|
17
19
|
sign(data) {
|
|
18
20
|
return (0, private_1.createRsaSignature)({
|
|
19
21
|
data,
|
|
20
|
-
|
|
22
|
+
dsaEncoding: this.dsa,
|
|
21
23
|
kryptos: this.kryptos,
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
26
|
verify(data, signature) {
|
|
25
27
|
return (0, private_1.verifyRsaSignature)({
|
|
26
28
|
data,
|
|
27
|
-
|
|
29
|
+
dsaEncoding: this.dsa,
|
|
30
|
+
encoding: this.encoding,
|
|
28
31
|
kryptos: this.kryptos,
|
|
29
32
|
signature,
|
|
30
33
|
});
|
|
@@ -32,11 +35,15 @@ class RsaKit {
|
|
|
32
35
|
assert(data, signature) {
|
|
33
36
|
return (0, private_1.assertRsaSignature)({
|
|
34
37
|
data,
|
|
35
|
-
|
|
38
|
+
dsaEncoding: this.dsa,
|
|
39
|
+
encoding: this.encoding,
|
|
36
40
|
kryptos: this.kryptos,
|
|
37
41
|
signature,
|
|
38
42
|
});
|
|
39
43
|
}
|
|
44
|
+
format(data) {
|
|
45
|
+
return data.toString(this.encoding);
|
|
46
|
+
}
|
|
40
47
|
}
|
|
41
48
|
exports.RsaKit = RsaKit;
|
|
42
49
|
//# sourceMappingURL=RsaKit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RsaKit.js","sourceRoot":"","sources":["../../src/classes/RsaKit.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"RsaKit.js","sourceRoot":"","sources":["../../src/classes/RsaKit.ts"],"names":[],"mappings":";;;AAAA,8CAA2D;AAE3D,sCAAqC;AAErC,8CAI0B;AAE1B,MAAa,MAAM;IACA,GAAG,CAAc;IACjB,QAAQ,CAAiB;IACzB,OAAO,CAAc;IAEtC,YAAmB,OAAsB;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAE7C,IAAI,CAAC,oBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,iBAAQ,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAEM,IAAI,CAAC,IAAa;QACvB,OAAO,IAAA,4BAAkB,EAAC;YACxB,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,IAAa,EAAE,SAAkB;QAC7C,OAAO,IAAA,4BAAkB,EAAC;YACxB,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,IAAa,EAAE,SAAkB;QAC7C,OAAO,IAAA,4BAAkB,EAAC;YACxB,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF;AA/CD,wBA+CC"}
|
package/dist/types/rsa-kit.d.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { IKryptos, IKryptosRsa } from "@lindorm/kryptos";
|
|
2
|
-
import {
|
|
2
|
+
import { DsaEncoding, KeyData } from "@lindorm/types";
|
|
3
3
|
export type CreateRsaSignatureOptions = {
|
|
4
|
-
data:
|
|
5
|
-
|
|
4
|
+
data: KeyData;
|
|
5
|
+
dsaEncoding: DsaEncoding;
|
|
6
6
|
kryptos: IKryptosRsa;
|
|
7
7
|
};
|
|
8
8
|
export type VerifyRsaSignatureOptions = {
|
|
9
|
-
data:
|
|
10
|
-
|
|
9
|
+
data: KeyData;
|
|
10
|
+
dsaEncoding: DsaEncoding;
|
|
11
|
+
encoding: BufferEncoding;
|
|
11
12
|
kryptos: IKryptosRsa;
|
|
12
|
-
signature:
|
|
13
|
+
signature: KeyData;
|
|
13
14
|
};
|
|
14
15
|
export type RsaKitOptions = {
|
|
15
|
-
|
|
16
|
+
dsa?: DsaEncoding;
|
|
17
|
+
encoding?: BufferEncoding;
|
|
16
18
|
kryptos: IKryptos;
|
|
17
19
|
};
|
|
18
20
|
//# sourceMappingURL=rsa-kit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-kit.d.ts","sourceRoot":"","sources":["../../src/types/rsa-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rsa-kit.d.ts","sourceRoot":"","sources":["../../src/types/rsa-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IKryptosRsa } from "@lindorm/kryptos";
|
|
2
|
+
import { DsaEncoding } from "@lindorm/types";
|
|
3
|
+
import { SignPrivateKeyInput, VerifyPublicKeyInput } from "crypto";
|
|
4
|
+
export declare const getSignKey: (kryptos: IKryptosRsa, dsaEncoding: DsaEncoding) => SignPrivateKeyInput | string;
|
|
5
|
+
export declare const getVerifyKey: (kryptos: IKryptosRsa, dsaEncoding: DsaEncoding) => VerifyPublicKeyInput | string;
|
|
6
|
+
//# sourceMappingURL=get-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-key.d.ts","sourceRoot":"","sources":["../../../src/utils/private/get-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAKnE,eAAO,MAAM,UAAU,GACrB,SAAS,WAAW,EACpB,aAAa,WAAW,KACvB,mBAAmB,GAAG,MAqBxB,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,WAAW,EACpB,aAAa,WAAW,KACvB,oBAAoB,GAAG,MAqBzB,CAAC"}
|
|
@@ -4,7 +4,7 @@ exports.getVerifyKey = exports.getSignKey = void 0;
|
|
|
4
4
|
const constants_1 = require("constants");
|
|
5
5
|
const errors_1 = require("../../errors");
|
|
6
6
|
const RSA_PKCS1_SALT_LENGTH = 32;
|
|
7
|
-
const getSignKey = (kryptos) => {
|
|
7
|
+
const getSignKey = (kryptos, dsaEncoding) => {
|
|
8
8
|
const { privateKey } = kryptos.export("pem");
|
|
9
9
|
if (!privateKey) {
|
|
10
10
|
throw new errors_1.RsaError("Private key not found in key set", { debug: { kryptos } });
|
|
@@ -14,15 +14,16 @@ const getSignKey = (kryptos) => {
|
|
|
14
14
|
key: privateKey,
|
|
15
15
|
padding: constants_1.RSA_PKCS1_PSS_PADDING,
|
|
16
16
|
saltLength: RSA_PKCS1_SALT_LENGTH,
|
|
17
|
+
dsaEncoding,
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
20
|
if (kryptos.algorithm.startsWith("RS")) {
|
|
20
|
-
return privateKey;
|
|
21
|
+
return { key: privateKey, dsaEncoding };
|
|
21
22
|
}
|
|
22
23
|
throw new errors_1.RsaError("Unsupported RSA algorithm", { debug: { kryptos } });
|
|
23
24
|
};
|
|
24
25
|
exports.getSignKey = getSignKey;
|
|
25
|
-
const getVerifyKey = (kryptos) => {
|
|
26
|
+
const getVerifyKey = (kryptos, dsaEncoding) => {
|
|
26
27
|
const { publicKey } = kryptos.export("pem");
|
|
27
28
|
if (!publicKey) {
|
|
28
29
|
throw new errors_1.RsaError("Public key not found in key set", { debug: { kryptos } });
|
|
@@ -32,12 +33,13 @@ const getVerifyKey = (kryptos) => {
|
|
|
32
33
|
key: publicKey,
|
|
33
34
|
padding: constants_1.RSA_PKCS1_PSS_PADDING,
|
|
34
35
|
saltLength: RSA_PKCS1_SALT_LENGTH,
|
|
36
|
+
dsaEncoding,
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
39
|
if (kryptos.algorithm.startsWith("RS")) {
|
|
38
|
-
return publicKey;
|
|
40
|
+
return { key: publicKey, dsaEncoding };
|
|
39
41
|
}
|
|
40
42
|
throw new errors_1.RsaError("Unsupported RSA algorithm", { debug: { kryptos } });
|
|
41
43
|
};
|
|
42
44
|
exports.getVerifyKey = getVerifyKey;
|
|
43
|
-
//# sourceMappingURL=get-
|
|
45
|
+
//# sourceMappingURL=get-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-key.js","sourceRoot":"","sources":["../../../src/utils/private/get-key.ts"],"names":[],"mappings":";;;AAEA,yCAAkD;AAElD,yCAAwC;AAExC,MAAM,qBAAqB,GAAG,EAAW,CAAC;AAEnC,MAAM,UAAU,GAAG,CACxB,OAAoB,EACpB,WAAwB,EACM,EAAE;IAChC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,iBAAQ,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,iCAAqB;YAC9B,UAAU,EAAE,qBAAqB;YACjC,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAxBW,QAAA,UAAU,cAwBrB;AAEK,MAAM,YAAY,GAAG,CAC1B,OAAoB,EACpB,WAAwB,EACO,EAAE;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,iBAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,iCAAqB;YAC9B,UAAU,EAAE,qBAAqB;YACjC,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAxBW,QAAA,YAAY,gBAwBvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
|
@@ -14,7 +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("./get-
|
|
17
|
+
__exportStar(require("./get-key"), exports);
|
|
18
18
|
__exportStar(require("./map-algorithm"), exports);
|
|
19
19
|
__exportStar(require("./rsa-signature"), exports);
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kDAAgC;AAChC,kDAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-algorithm.d.ts","sourceRoot":"","sources":["../../../src/utils/private/map-algorithm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"map-algorithm.d.ts","sourceRoot":"","sources":["../../../src/utils/private/map-algorithm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,eAAe,GAAI,SAAS,WAAW,KAAG,YAMtD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CreateRsaSignatureOptions, VerifyRsaSignatureOptions } from "../../types";
|
|
2
|
-
export declare const createRsaSignature: ({ data,
|
|
3
|
-
export declare const verifyRsaSignature: ({ data,
|
|
2
|
+
export declare const createRsaSignature: ({ data, dsaEncoding, kryptos, }: CreateRsaSignatureOptions) => Buffer;
|
|
3
|
+
export declare const verifyRsaSignature: ({ data, dsaEncoding, encoding, kryptos, signature, }: VerifyRsaSignatureOptions) => boolean;
|
|
4
4
|
export declare const assertRsaSignature: (options: VerifyRsaSignatureOptions) => void;
|
|
5
5
|
//# sourceMappingURL=rsa-signature.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-signature.d.ts","sourceRoot":"","sources":["../../../src/utils/private/rsa-signature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rsa-signature.d.ts","sourceRoot":"","sources":["../../../src/utils/private/rsa-signature.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAInF,eAAO,MAAM,kBAAkB,GAAI,iCAIhC,yBAAyB,KAAG,MAIY,CAAC;AAE5C,eAAO,MAAM,kBAAkB,GAAI,sDAMhC,yBAAyB,KAAG,OAO1B,CAAC;AAEN,eAAO,MAAM,kBAAkB,GAAI,SAAS,yBAAyB,KAAG,IAGvE,CAAC"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.assertRsaSignature = exports.verifyRsaSignature = exports.createRsaSignature = void 0;
|
|
4
|
+
const is_1 = require("@lindorm/is");
|
|
4
5
|
const crypto_1 = require("crypto");
|
|
5
6
|
const errors_1 = require("../../errors");
|
|
6
|
-
const
|
|
7
|
+
const get_key_1 = require("./get-key");
|
|
7
8
|
const map_algorithm_1 = require("./map-algorithm");
|
|
8
|
-
const createRsaSignature = ({ data,
|
|
9
|
+
const createRsaSignature = ({ data, dsaEncoding, kryptos, }) => (0, crypto_1.createSign)((0, map_algorithm_1.mapRsaAlgorithm)(kryptos))
|
|
9
10
|
.update(data)
|
|
10
11
|
.end()
|
|
11
|
-
.sign((0,
|
|
12
|
+
.sign((0, get_key_1.getSignKey)(kryptos, dsaEncoding));
|
|
12
13
|
exports.createRsaSignature = createRsaSignature;
|
|
13
|
-
const verifyRsaSignature = ({ data,
|
|
14
|
+
const verifyRsaSignature = ({ data, dsaEncoding, encoding, kryptos, signature, }) => (0, crypto_1.createVerify)((0, map_algorithm_1.mapRsaAlgorithm)(kryptos))
|
|
14
15
|
.update(data)
|
|
15
16
|
.end()
|
|
16
|
-
.verify((0,
|
|
17
|
+
.verify((0, get_key_1.getVerifyKey)(kryptos, dsaEncoding), (0, is_1.isString)(signature) ? Buffer.from(signature, encoding) : signature);
|
|
17
18
|
exports.verifyRsaSignature = verifyRsaSignature;
|
|
18
19
|
const assertRsaSignature = (options) => {
|
|
19
20
|
if ((0, exports.verifyRsaSignature)(options))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-signature.js","sourceRoot":"","sources":["../../../src/utils/private/rsa-signature.ts"],"names":[],"mappings":";;;AAAA,mCAAkD;AAClD,yCAAwC;AAExC
|
|
1
|
+
{"version":3,"file":"rsa-signature.js","sourceRoot":"","sources":["../../../src/utils/private/rsa-signature.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AACvC,mCAAkD;AAClD,yCAAwC;AAExC,uCAAqD;AACrD,mDAAkD;AAE3C,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,OAAO,GACmB,EAAU,EAAE,CACtC,IAAA,mBAAU,EAAC,IAAA,+BAAe,EAAC,OAAO,CAAC,CAAC;KACjC,MAAM,CAAC,IAAI,CAAC;KACZ,GAAG,EAAE;KACL,IAAI,CAAC,IAAA,oBAAU,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAR/B,QAAA,kBAAkB,sBAQa;AAErC,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,OAAO,EACP,SAAS,GACiB,EAAW,EAAE,CACvC,IAAA,qBAAY,EAAC,IAAA,+BAAe,EAAC,OAAO,CAAC,CAAC;KACnC,MAAM,CAAC,IAAI,CAAC;KACZ,GAAG,EAAE;KACL,MAAM,CACL,IAAA,sBAAY,EAAC,OAAO,EAAE,WAAW,CAAC,EAClC,IAAA,aAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACnE,CAAC;AAbO,QAAA,kBAAkB,sBAazB;AAEC,MAAM,kBAAkB,GAAG,CAAC,OAAkC,EAAQ,EAAE;IAC7E,IAAI,IAAA,0BAAkB,EAAC,OAAO,CAAC;QAAE,OAAO;IACxC,MAAM,IAAI,iBAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC1C,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lindorm/rsa",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"author": "Jonn Nilsson",
|
|
6
6
|
"repository": {
|
|
@@ -18,20 +18,23 @@
|
|
|
18
18
|
"example": "ts-node example",
|
|
19
19
|
"integration": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch",
|
|
20
20
|
"integration:focus": "compd --file docker-compose.yml jest --config jest.config.integration.js --watch $1",
|
|
21
|
+
"prettier": "prettier --write ./src/*",
|
|
21
22
|
"test": "jest --watch --",
|
|
22
23
|
"test:ci": "npm run test:unit",
|
|
23
24
|
"test:integration": "jest --config jest.config.integration.js --",
|
|
24
25
|
"test:unit": "jest --config jest.config.js --",
|
|
25
26
|
"typecheck": "tsc --watch",
|
|
26
27
|
"typecheck:ci": "tsc",
|
|
27
|
-
"update": "ncu -
|
|
28
|
+
"update": "ncu -i",
|
|
29
|
+
"update:auto": "ncu -u"
|
|
28
30
|
},
|
|
29
31
|
"dependencies": {
|
|
30
|
-
"@lindorm/errors": "^0.1.
|
|
31
|
-
"@lindorm/
|
|
32
|
+
"@lindorm/errors": "^0.1.9",
|
|
33
|
+
"@lindorm/is": "^0.1.8",
|
|
34
|
+
"@lindorm/kryptos": "^0.4.1"
|
|
32
35
|
},
|
|
33
36
|
"devDependencies": {
|
|
34
|
-
"@lindorm/types": "^0.
|
|
37
|
+
"@lindorm/types": "^0.3.0"
|
|
35
38
|
},
|
|
36
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "e66150efb6d7a4688bcece59481ab98d54865af3"
|
|
37
40
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { IKryptosRsa } from "@lindorm/kryptos";
|
|
2
|
-
import { SignPrivateKeyInput, VerifyPublicKeyInput } from "crypto";
|
|
3
|
-
export declare const getSignKey: (kryptos: IKryptosRsa) => SignPrivateKeyInput | string;
|
|
4
|
-
export declare const getVerifyKey: (kryptos: IKryptosRsa) => VerifyPublicKeyInput | string;
|
|
5
|
-
//# sourceMappingURL=get-options.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-options.d.ts","sourceRoot":"","sources":["../../../src/utils/private/get-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAKnE,eAAO,MAAM,UAAU,YAAa,WAAW,KAAG,mBAAmB,GAAG,MAoBvE,CAAC;AAEF,eAAO,MAAM,YAAY,YAAa,WAAW,KAAG,oBAAoB,GAAG,MAoB1E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-options.js","sourceRoot":"","sources":["../../../src/utils/private/get-options.ts"],"names":[],"mappings":";;;AACA,yCAAkD;AAElD,yCAAwC;AAExC,MAAM,qBAAqB,GAAG,EAAW,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAgC,EAAE;IAC/E,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,iBAAQ,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,iCAAqB;YAC9B,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AApBW,QAAA,UAAU,cAoBrB;AAEK,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAiC,EAAE;IAClF,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,iBAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,iCAAqB;YAC9B,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AApBW,QAAA,YAAY,gBAoBvB"}
|