@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 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
+
@@ -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 format;
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: string): string;
7
- verify(data: string, signature: string): boolean;
8
- assert(data: string, signature: string): void;
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":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAEnB,OAAO,EAAE,aAAa;IAUlC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAShD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAQrD"}
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"}
@@ -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
- format;
8
+ dsa;
9
+ encoding;
9
10
  kryptos;
10
11
  constructor(options) {
11
- this.format = options.format ?? "base64";
12
- if (!kryptos_1.Kryptos.isRsa(options.kryptos)) {
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
- format: this.format,
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
- format: this.format,
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
- format: this.format,
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,8CAAwD;AAExD,sCAAqC;AAErC,8CAI0B;AAE1B,MAAa,MAAM;IACA,MAAM,CAAe;IACrB,OAAO,CAAc;IAEtC,YAAmB,OAAsB;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;QAEzC,IAAI,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,iBAAQ,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAEM,IAAI,CAAC,IAAY;QACtB,OAAO,IAAA,4BAAkB,EAAC;YACxB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,SAAiB;QAC3C,OAAO,IAAA,4BAAkB,EAAC;YACxB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,SAAiB;QAC3C,OAAO,IAAA,4BAAkB,EAAC;YACxB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;CACF;AAvCD,wBAuCC"}
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"}
@@ -1,18 +1,20 @@
1
1
  import { IKryptos, IKryptosRsa } from "@lindorm/kryptos";
2
- import { BufferFormat } from "@lindorm/types";
2
+ import { DsaEncoding, KeyData } from "@lindorm/types";
3
3
  export type CreateRsaSignatureOptions = {
4
- data: string;
5
- format: BufferFormat;
4
+ data: KeyData;
5
+ dsaEncoding: DsaEncoding;
6
6
  kryptos: IKryptosRsa;
7
7
  };
8
8
  export type VerifyRsaSignatureOptions = {
9
- data: string;
10
- format: BufferFormat;
9
+ data: KeyData;
10
+ dsaEncoding: DsaEncoding;
11
+ encoding: BufferEncoding;
11
12
  kryptos: IKryptosRsa;
12
- signature: string;
13
+ signature: KeyData;
13
14
  };
14
15
  export type RsaKitOptions = {
15
- format?: BufferFormat;
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,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC"}
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-options.js.map
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,4 +1,4 @@
1
- export * from "./get-options";
1
+ export * from "./get-key";
2
2
  export * from "./map-algorithm";
3
3
  export * from "./rsa-signature";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/private/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,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-options"), exports);
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,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC"}
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,YAAa,WAAW,KAAG,YAMtD,CAAC"}
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, format, kryptos, }: CreateRsaSignatureOptions) => string;
3
- export declare const verifyRsaSignature: ({ data, format, kryptos, signature, }: VerifyRsaSignatureOptions) => boolean;
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":"AAEA,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAInF,eAAO,MAAM,kBAAkB,+BAI5B,yBAAyB,KAAG,MAIO,CAAC;AAEvC,eAAO,MAAM,kBAAkB,0CAK5B,yBAAyB,KAAG,OAIsB,CAAC;AAEtD,eAAO,MAAM,kBAAkB,YAAa,yBAAyB,KAAG,IAGvE,CAAC"}
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 get_options_1 = require("./get-options");
7
+ const get_key_1 = require("./get-key");
7
8
  const map_algorithm_1 = require("./map-algorithm");
8
- const createRsaSignature = ({ data, format, kryptos, }) => (0, crypto_1.createSign)((0, map_algorithm_1.mapRsaAlgorithm)(kryptos))
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, get_options_1.getSignKey)(kryptos), format);
12
+ .sign((0, get_key_1.getSignKey)(kryptos, dsaEncoding));
12
13
  exports.createRsaSignature = createRsaSignature;
13
- const verifyRsaSignature = ({ data, format, kryptos, signature, }) => (0, crypto_1.createVerify)((0, map_algorithm_1.mapRsaAlgorithm)(kryptos))
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, get_options_1.getVerifyKey)(kryptos), signature, format);
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,+CAAyD;AACzD,mDAAkD;AAE3C,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,MAAM,EACN,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,wBAAU,EAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAR1B,QAAA,kBAAkB,sBAQQ;AAEhC,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,MAAM,EACN,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,CAAC,IAAA,0BAAY,EAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AATzC,QAAA,kBAAkB,sBASuB;AAE/C,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"}
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.9",
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 -u"
28
+ "update": "ncu -i",
29
+ "update:auto": "ncu -u"
28
30
  },
29
31
  "dependencies": {
30
- "@lindorm/errors": "^0.1.7",
31
- "@lindorm/kryptos": "^0.3.7"
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.2.1"
37
+ "@lindorm/types": "^0.3.0"
35
38
  },
36
- "gitHead": "c3a0944569f1344aea5fa3431de8b36e4468a115"
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"}