@haskou/value-objects 2.5.0 → 2.7.0

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.
Files changed (68) hide show
  1. package/README.md +22 -6
  2. package/dist/value-objects/crypto/CryptoAdapter.d.ts +30 -0
  3. package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +1 -0
  4. package/dist/value-objects/crypto/CryptoAdapter.js +96 -0
  5. package/dist/value-objects/crypto/CryptoAdapter.js.map +1 -0
  6. package/dist/value-objects/crypto/CryptoPayload.d.ts +1 -0
  7. package/dist/value-objects/crypto/CryptoPayload.d.ts.map +1 -1
  8. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +1 -0
  9. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +1 -1
  10. package/dist/value-objects/crypto/EncryptedKeyPair.js.map +1 -1
  11. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +2 -5
  12. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +1 -1
  13. package/dist/value-objects/crypto/EncryptedPrivateKey.js +21 -39
  14. package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +1 -1
  15. package/dist/value-objects/crypto/KeyPair.d.ts +1 -0
  16. package/dist/value-objects/crypto/KeyPair.d.ts.map +1 -1
  17. package/dist/value-objects/crypto/KeyPair.js +4 -10
  18. package/dist/value-objects/crypto/KeyPair.js.map +1 -1
  19. package/dist/value-objects/crypto/PrivateKey.d.ts +1 -0
  20. package/dist/value-objects/crypto/PrivateKey.d.ts.map +1 -1
  21. package/dist/value-objects/crypto/PrivateKey.js +14 -33
  22. package/dist/value-objects/crypto/PrivateKey.js.map +1 -1
  23. package/dist/value-objects/crypto/PublicKey.d.ts.map +1 -1
  24. package/dist/value-objects/crypto/PublicKey.js +16 -29
  25. package/dist/value-objects/crypto/PublicKey.js.map +1 -1
  26. package/dist/value-objects/crypto/Signature.d.ts +1 -0
  27. package/dist/value-objects/crypto/Signature.d.ts.map +1 -1
  28. package/dist/value-objects/crypto/Signature.js.map +1 -1
  29. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts +21 -0
  30. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts.map +1 -0
  31. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js +56 -0
  32. package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js.map +1 -0
  33. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +14 -0
  34. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +1 -0
  35. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js +33 -0
  36. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +1 -0
  37. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +20 -0
  38. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +1 -0
  39. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +69 -0
  40. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +1 -0
  41. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +8 -0
  42. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +1 -0
  43. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js +10 -0
  44. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js.map +1 -0
  45. package/dist/value-objects/hashes/Hash.d.ts.map +1 -1
  46. package/dist/value-objects/hashes/Hash.js +2 -1
  47. package/dist/value-objects/hashes/Hash.js.map +1 -1
  48. package/dist/value-objects/hashes/MD5Hash.d.ts +1 -0
  49. package/dist/value-objects/hashes/MD5Hash.d.ts.map +1 -1
  50. package/dist/value-objects/hashes/MD5Hash.js +2 -3
  51. package/dist/value-objects/hashes/MD5Hash.js.map +1 -1
  52. package/dist/value-objects/hashes/SHA256Hash.d.ts +1 -0
  53. package/dist/value-objects/hashes/SHA256Hash.d.ts.map +1 -1
  54. package/dist/value-objects/hashes/SHA256Hash.js +4 -3
  55. package/dist/value-objects/hashes/SHA256Hash.js.map +1 -1
  56. package/dist/value-objects/hashes/SHA512Hash.d.ts +1 -0
  57. package/dist/value-objects/hashes/SHA512Hash.d.ts.map +1 -1
  58. package/dist/value-objects/hashes/SHA512Hash.js +4 -3
  59. package/dist/value-objects/hashes/SHA512Hash.js.map +1 -1
  60. package/dist/value-objects/media/Media.d.ts +1 -0
  61. package/dist/value-objects/media/Media.d.ts.map +1 -1
  62. package/dist/value-objects/media/Media.js +2 -1
  63. package/dist/value-objects/media/Media.js.map +1 -1
  64. package/package.json +4 -1
  65. package/dist/errors/InvalidValueError.d.ts +0 -5
  66. package/dist/errors/InvalidValueError.d.ts.map +0 -1
  67. package/dist/errors/InvalidValueError.js +0 -11
  68. package/dist/errors/InvalidValueError.js.map +0 -1
package/README.md CHANGED
@@ -1,4 +1,7 @@
1
- [![npm version](https://badge.fury.io/js/@haskou%2Fvalue-objects.svg)](https://badge.fury.io/js/@haskou%2Fvalue-objects)
1
+ [![CI](https://github.com/haskou/value-objects/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/haskou/value-objects/actions/workflows/ci.yml?query=branch%3Amaster)
2
+ [![codecov](https://codecov.io/gh/haskou/value-objects/branch/master/graph/badge.svg)](https://codecov.io/gh/haskou/value-objects)
3
+ [![npm version](https://img.shields.io/npm/v/@haskou/value-objects.svg)](https://www.npmjs.com/package/@haskou/value-objects)
4
+ [![license](https://img.shields.io/npm/l/@haskou/value-objects.svg)](LICENSE.txt)
2
5
 
3
6
  # Value Objects
4
7
 
@@ -88,7 +91,7 @@ your application.
88
91
  - **`PrivateKey`** - Ed25519 private key (PEM format) with signing
89
92
  - **`PublicKey`** - Ed25519 public key (PEM format) with signature verification
90
93
  - **`Signature`** - Base64-encoded ed25519 digital signature
91
- - **`EncryptedPrivateKey`** - AES-256-GCM encrypted private key (password-based)
94
+ - **`EncryptedPrivateKey`** - AES-256-GCM encrypted private key (scrypt-based, password-protected)
92
95
  - **`EncryptedKeyPair`** - Key pair with encrypted private key
93
96
 
94
97
  ### 📎 Media
@@ -161,9 +164,9 @@ console.log(media.getBuffer()); // <Buffer 68 65 6c 6c 6f ...>
161
164
 
162
165
  // Unique collections
163
166
  const weekdays = UniqueObjectArray.fromArray([
164
- new DayOfWeek(EDaysOfWeek.MONDAY),
165
- new DayOfWeek(EDaysOfWeek.TUESDAY),
166
- new DayOfWeek(EDaysOfWeek.MONDAY),
167
+ DayOfWeek.MONDAY,
168
+ DayOfWeek.TUESDAY,
169
+ DayOfWeek.MONDAY,
167
170
  ]);
168
171
  console.log(weekdays.length()); // 2
169
172
  console.log(weekdays.toArray().map((day) => day.toString())); // ['monday', 'tuesday']
@@ -195,10 +198,23 @@ npm test
195
198
  npm run build
196
199
  ```
197
200
 
201
+ ## 🌿 Release Branches
202
+
203
+ Publishing is handled by CI when a pull request is merged into the default
204
+ branch (`master`, or `main` after a branch rename). Use these branch prefixes
205
+ to choose the npm version bump:
206
+
207
+ - `fix/*` - patch release
208
+ - `feat/*` - minor release
209
+ - `break/*` - major release
210
+
211
+ Branches without one of these prefixes still run CI, but they do not publish
212
+ to npm. Publishing uses npm Trusted Publishing from the `ci.yml` workflow.
213
+
198
214
  ## 🤝 Contributing
199
215
 
200
216
  1. Fork the repository
201
- 2. Create a branch: `git checkout -b my-feature`
217
+ 2. Create a branch: `git checkout -b feat/my-feature`
202
218
  3. Make your changes and add tests
203
219
  4. Run tests: `npm test`
204
220
  5. Submit a pull request
@@ -0,0 +1,30 @@
1
+ import { Buffer } from 'buffer';
2
+ type HashAlgorithm = 'md5' | 'sha256' | 'sha512';
3
+ export declare class CryptoAdapter {
4
+ private static pemToDer;
5
+ private static wrapPem;
6
+ static decryptAes256Gcm(key: Uint8Array, iv: Uint8Array, cipherText: Uint8Array, tag: Uint8Array): Buffer;
7
+ static deriveEncryptionKey(sharedSecret: Uint8Array, ephemeralPublicKey: Uint8Array): Uint8Array;
8
+ static encryptAes256Gcm(key: Uint8Array, iv: Uint8Array, message: Uint8Array): {
9
+ cipherText: Uint8Array;
10
+ tag: Uint8Array;
11
+ };
12
+ static getPublicKey(privateKeyPem: string): string;
13
+ static hash(algorithm: HashAlgorithm, value: string | Uint8Array): string;
14
+ static privateKeyToPem(seed: Uint8Array): string;
15
+ static privateKeyToSeed(privateKeyPem: string): Uint8Array;
16
+ static privateKeyToX25519(privateKeyPem: string): Uint8Array;
17
+ static publicKeyToPem(publicKey: Uint8Array): string;
18
+ static publicKeyToX25519(publicKeyPem: string): Uint8Array;
19
+ static publicKeyToBytes(publicKeyPem: string): Uint8Array;
20
+ static randomBytes(size: number): Buffer;
21
+ static randomPrivateKeyPem(): string;
22
+ static sign(message: Uint8Array, privateKeyPem: string): Buffer;
23
+ static toBytes(value: string | Uint8Array): Uint8Array;
24
+ static verify(signature: Uint8Array, message: Uint8Array, publicKeyPem: string): boolean;
25
+ static x25519PublicKey(privateKey: Uint8Array): Uint8Array;
26
+ static x25519SharedSecret(privateKey: Uint8Array, publicKey: Uint8Array): Uint8Array;
27
+ static x25519RandomPrivateKey(): Uint8Array;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=CryptoAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,KAAK,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ;IASvB,OAAO,CAAC,MAAM,CAAC,OAAO;WAOR,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,GACd,MAAM;WAIK,mBAAmB,CAC/B,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAIC,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,GAClB;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE;WAShC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;WAM3C,IAAI,CAChB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,MAAM;WAWK,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;WAIzC,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAInD,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU;WAMrD,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;WAO7C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAInD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU;WAIlD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAIjC,mBAAmB,IAAI,MAAM;WAI7B,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;WAMxD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU;WAQ/C,MAAM,CAClB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO;WAQI,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;WAInD,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;WAIC,sBAAsB,IAAI,UAAU;CAGnD"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CryptoAdapter = void 0;
4
+ const aes_js_1 = require("@noble/ciphers/aes.js");
5
+ const ed25519_js_1 = require("@noble/curves/ed25519.js");
6
+ const legacy_js_1 = require("@noble/hashes/legacy.js");
7
+ const sha2_js_1 = require("@noble/hashes/sha2.js");
8
+ const utils_js_1 = require("@noble/hashes/utils.js");
9
+ const buffer_1 = require("buffer");
10
+ const privateKeyDerPrefix = (0, utils_js_1.hexToBytes)('302e020100300506032b657004220420');
11
+ const publicKeyDerPrefix = (0, utils_js_1.hexToBytes)('302a300506032b6570032100');
12
+ const gcmTagLength = 16;
13
+ class CryptoAdapter {
14
+ static pemToDer(pem) {
15
+ const base64 = pem
16
+ .replace(/-----BEGIN (?:PRIVATE|PUBLIC) KEY-----/, '')
17
+ .replace(/-----END (?:PRIVATE|PUBLIC) KEY-----/, '')
18
+ .replace(/\s/g, '');
19
+ return buffer_1.Buffer.from(base64, 'base64');
20
+ }
21
+ static wrapPem(label, der) {
22
+ return `-----BEGIN ${label}-----\n${buffer_1.Buffer.from(der).toString('base64')}\n-----END ${label}-----\n`;
23
+ }
24
+ static decryptAes256Gcm(key, iv, cipherText, tag) {
25
+ return buffer_1.Buffer.from((0, aes_js_1.gcm)(key, iv).decrypt((0, utils_js_1.concatBytes)(cipherText, tag)));
26
+ }
27
+ static deriveEncryptionKey(sharedSecret, ephemeralPublicKey) {
28
+ return (0, sha2_js_1.sha256)((0, utils_js_1.concatBytes)(sharedSecret, ephemeralPublicKey));
29
+ }
30
+ static encryptAes256Gcm(key, iv, message) {
31
+ const encrypted = (0, aes_js_1.gcm)(key, iv).encrypt(message);
32
+ return {
33
+ cipherText: encrypted.subarray(0, -gcmTagLength),
34
+ tag: encrypted.subarray(-gcmTagLength),
35
+ };
36
+ }
37
+ static getPublicKey(privateKeyPem) {
38
+ return this.publicKeyToPem(ed25519_js_1.ed25519.getPublicKey(this.privateKeyToSeed(privateKeyPem)));
39
+ }
40
+ static hash(algorithm, value) {
41
+ const bytes = this.toBytes(value);
42
+ const hash = {
43
+ md5: legacy_js_1.md5,
44
+ sha256: sha2_js_1.sha256,
45
+ sha512: sha2_js_1.sha512,
46
+ }[algorithm];
47
+ return (0, utils_js_1.bytesToHex)(hash(bytes));
48
+ }
49
+ static privateKeyToPem(seed) {
50
+ return this.wrapPem('PRIVATE KEY', (0, utils_js_1.concatBytes)(privateKeyDerPrefix, seed));
51
+ }
52
+ static privateKeyToSeed(privateKeyPem) {
53
+ return this.pemToDer(privateKeyPem).subarray(privateKeyDerPrefix.length);
54
+ }
55
+ static privateKeyToX25519(privateKeyPem) {
56
+ return ed25519_js_1.ed25519.utils.toMontgomerySecret(this.privateKeyToSeed(privateKeyPem));
57
+ }
58
+ static publicKeyToPem(publicKey) {
59
+ return this.wrapPem('PUBLIC KEY', (0, utils_js_1.concatBytes)(publicKeyDerPrefix, publicKey));
60
+ }
61
+ static publicKeyToX25519(publicKeyPem) {
62
+ return ed25519_js_1.ed25519.utils.toMontgomery(this.publicKeyToBytes(publicKeyPem));
63
+ }
64
+ static publicKeyToBytes(publicKeyPem) {
65
+ return this.pemToDer(publicKeyPem).subarray(publicKeyDerPrefix.length);
66
+ }
67
+ static randomBytes(size) {
68
+ return buffer_1.Buffer.from((0, utils_js_1.randomBytes)(size));
69
+ }
70
+ static randomPrivateKeyPem() {
71
+ return this.privateKeyToPem(ed25519_js_1.ed25519.utils.randomSecretKey());
72
+ }
73
+ static sign(message, privateKeyPem) {
74
+ return buffer_1.Buffer.from(ed25519_js_1.ed25519.sign(message, this.privateKeyToSeed(privateKeyPem)));
75
+ }
76
+ static toBytes(value) {
77
+ if (value instanceof Uint8Array) {
78
+ return value;
79
+ }
80
+ return buffer_1.Buffer.from(value);
81
+ }
82
+ static verify(signature, message, publicKeyPem) {
83
+ return ed25519_js_1.ed25519.verify(signature, message, this.publicKeyToBytes(publicKeyPem));
84
+ }
85
+ static x25519PublicKey(privateKey) {
86
+ return ed25519_js_1.x25519.getPublicKey(privateKey);
87
+ }
88
+ static x25519SharedSecret(privateKey, publicKey) {
89
+ return ed25519_js_1.x25519.getSharedSecret(privateKey, publicKey);
90
+ }
91
+ static x25519RandomPrivateKey() {
92
+ return ed25519_js_1.x25519.utils.randomSecretKey();
93
+ }
94
+ }
95
+ exports.CryptoAdapter = CryptoAdapter;
96
+ //# sourceMappingURL=CryptoAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoAdapter.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":";;;AAAA,kDAA4C;AAC5C,yDAA2D;AAC3D,uDAA8C;AAC9C,mDAAuD;AACvD,qDAKgC;AAChC,mCAAgC;AAEhC,MAAM,mBAAmB,GAAG,IAAA,qBAAU,EAAC,kCAAkC,CAAC,CAAC;AAC3E,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,0BAA0B,CAAC,CAAC;AAClE,MAAM,YAAY,GAAG,EAAE,CAAC;AAIxB,MAAa,aAAa;IAChB,MAAM,CAAC,QAAQ,CAAC,GAAW;QACjC,MAAM,MAAM,GAAG,GAAG;aACf,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC;aACrD,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC;aACnD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEtB,OAAO,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,MAAM,CAAC,OAAO,CACpB,KAAmC,EACnC,GAAe;QAEf,OAAO,cAAc,KAAK,UAAU,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC;IACtG,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAC5B,GAAe,EACf,EAAc,EACd,UAAsB,EACtB,GAAe;QAEf,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,YAAG,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAA,sBAAW,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAC/B,YAAwB,EACxB,kBAA8B;QAE9B,OAAO,IAAA,gBAAM,EAAC,IAAA,sBAAW,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAC5B,GAAe,EACf,EAAc,EACd,OAAmB;QAEnB,MAAM,SAAS,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO;YACL,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;YAChD,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC;SACvC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,aAAqB;QAC9C,OAAO,IAAI,CAAC,cAAc,CACxB,oBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,IAAI,CAChB,SAAwB,EACxB,KAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG;YACX,GAAG,EAAH,eAAG;YACH,MAAM,EAAN,gBAAM;YACN,MAAM,EAAN,gBAAM;SACP,CAAC,SAAS,CAAC,CAAC;QAEb,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAgB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAA,sBAAW,EAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,aAAqB;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,aAAqB;QACpD,OAAO,oBAAO,CAAC,KAAK,CAAC,kBAAkB,CACrC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CACrC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,SAAqB;QAChD,OAAO,IAAI,CAAC,OAAO,CACjB,YAAY,EACZ,IAAA,sBAAW,EAAC,kBAAkB,EAAE,SAAS,CAAC,CAC3C,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,YAAoB;QAClD,OAAO,oBAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IACzE,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,YAAoB;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAAY;QACpC,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,mBAAmB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAO,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,OAAmB,EAAE,aAAqB;QAC3D,OAAO,eAAM,CAAC,IAAI,CAChB,oBAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,KAA0B;QAC9C,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,SAAqB,EACrB,OAAmB,EACnB,YAAoB;QAEpB,OAAO,oBAAO,CAAC,MAAM,CACnB,SAAS,EACT,OAAO,EACP,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CACpC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,UAAsB;QAClD,OAAO,mBAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC9B,UAAsB,EACtB,SAAqB;QAErB,OAAO,mBAAM,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,sBAAsB;QAClC,OAAO,mBAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;CACF;AA/ID,sCA+IC"}
@@ -1,3 +1,4 @@
1
+ import type { Buffer } from 'buffer';
1
2
  import { Media } from '../media';
2
3
  import { StringValueObject } from '../StringValueObject';
3
4
  export type CryptoPayload = string | StringValueObject | Buffer | Media;
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPayload.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"CryptoPayload.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Buffer } from 'buffer';
1
2
  import { PrimitiveOf } from '../../interfaces';
2
3
  import { StringValueObject } from '../StringValueObject';
3
4
  import { CryptoPayload } from './CryptoPayload';
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedKeyPair.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedKeyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,gBAAgB;IAwBzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;WAxBlB,cAAc,CAChC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,gBAAgB,CAAC;WASd,cAAc,CAC1B,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,GACxC,gBAAgB;gBAQA,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB;IAGpD,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAIG,IAAI,CACf,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,SAAS,CAAC;IAMd,YAAY;;;;IAOZ,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;IAI3C,OAAO,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,MAAM,CAAC;CAKnB"}
1
+ {"version":3,"file":"EncryptedKeyPair.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedKeyPair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,gBAAgB;IAwBzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;WAxBlB,cAAc,CAChC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,gBAAgB,CAAC;WASd,cAAc,CAC1B,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,GACxC,gBAAgB;gBAQA,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB;IAGpD,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAIG,IAAI,CACf,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,SAAS,CAAC;IAMd,YAAY;;;;IAOZ,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;IAI3C,OAAO,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,MAAM,CAAC;CAKnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedKeyPair.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedKeyPair.ts"],"names":[],"mappings":";;;AAIA,+DAA4D;AAE5D,2CAAwC;AAGxC,MAAa,gBAAgB;IAwBR;IACA;IAxBZ,MAAM,CAAC,KAAK,CAAC,cAAc,CAChC,SAAoB,EACpB,UAAsB,EACtB,QAAoC;QAEpC,MAAM,mBAAmB,GAAG,MAAM,yCAAmB,CAAC,MAAM,CAC1D,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,cAAc,CAC1B,UAAyC;QAEzC,OAAO,IAAI,gBAAgB,CACzB,IAAI,qBAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EACnC,IAAI,yCAAmB,CAAC,UAAU,CAAC,mBAAmB,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,YACmB,SAAoB,EACpB,mBAAwC;QADxC,cAAS,GAAT,SAAS,CAAW;QACpB,wBAAmB,GAAnB,mBAAmB,CAAqB;IACxD,CAAC;IAEG,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAAsB,EACtB,QAAoC;QAEpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEpE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;YACvD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;SACpC,CAAC;IACJ,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,gBAAkC,EAClC,QAAoC;QAEpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEpE,OAAO,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;CACF;AA/DD,4CA+DC"}
1
+ {"version":3,"file":"EncryptedKeyPair.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedKeyPair.ts"],"names":[],"mappings":";;;AAMA,+DAA4D;AAE5D,2CAAwC;AAGxC,MAAa,gBAAgB;IAwBR;IACA;IAxBZ,MAAM,CAAC,KAAK,CAAC,cAAc,CAChC,SAAoB,EACpB,UAAsB,EACtB,QAAoC;QAEpC,MAAM,mBAAmB,GAAG,MAAM,yCAAmB,CAAC,MAAM,CAC1D,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,cAAc,CAC1B,UAAyC;QAEzC,OAAO,IAAI,gBAAgB,CACzB,IAAI,qBAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EACnC,IAAI,yCAAmB,CAAC,UAAU,CAAC,mBAAmB,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,YACmB,SAAoB,EACpB,mBAAwC;QADxC,cAAS,GAAT,SAAS,CAAW;QACpB,wBAAmB,GAAnB,mBAAmB,CAAqB;IACxD,CAAC;IAEG,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAAsB,EACtB,QAAoC;QAEpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEpE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;YACvD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;SACpC,CAAC;IACJ,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,gBAAkC,EAClC,QAAoC;QAEpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEpE,OAAO,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;CACF;AA/DD,4CA+DC"}
@@ -2,13 +2,10 @@ import { StringValueObject } from '../StringValueObject';
2
2
  import { ValueObject } from '../ValueObject';
3
3
  import { PrivateKey } from './PrivateKey';
4
4
  export declare class EncryptedPrivateKey extends ValueObject<string> {
5
- private static readonly ITERATIONS;
6
- private static readonly SALT_ENTROPY;
7
- private static readonly IV_ENTROPY;
8
- private static readonly LENGTH;
9
- private static readonly ALGORITHM;
5
+ private static readonly versions;
10
6
  static create(privateKey: PrivateKey, password: string | StringValueObject): Promise<EncryptedPrivateKey>;
11
7
  constructor(encryptedPrivateKey: string | StringValueObject);
12
8
  decrypt(password: string | StringValueObject): Promise<PrivateKey>;
9
+ needsReEncryption(): boolean;
13
10
  }
14
11
  //# sourceMappingURL=EncryptedPrivateKey.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPrivateKey.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAU;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAM;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAM;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAY;WAEzB,MAAM,CACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,mBAAmB,CAAC;gBA2BnB,mBAAmB,EAAE,MAAM,GAAG,iBAAiB;IAI9C,OAAO,CAClB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,UAAU,CAAC;CA0BvB"}
1
+ {"version":3,"file":"EncryptedPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPrivateKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAG9B;WAEkB,MAAM,CACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,mBAAmB,CAAC;gBASnB,mBAAmB,EAAE,MAAM,GAAG,iBAAiB;IAI9C,OAAO,CAClB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,UAAU,CAAC;IAaf,iBAAiB,IAAI,OAAO;CAYpC"}
@@ -1,54 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EncryptedPrivateKey = void 0;
4
- const tslib_1 = require("tslib");
5
- const crypto = tslib_1.__importStar(require("node:crypto"));
6
- const node_util_1 = require("node:util");
7
4
  const ValueObject_1 = require("../ValueObject");
8
- const PrivateKey_1 = require("./PrivateKey");
9
- const pbkdf2 = (0, node_util_1.promisify)(crypto.pbkdf2);
10
- const randomBytes = (0, node_util_1.promisify)(crypto.randomBytes);
5
+ const EncryptedPrivateKeyLegacy_1 = require("./encrypted-private-key/EncryptedPrivateKeyLegacy");
6
+ const EncryptedPrivateKeyV2_1 = require("./encrypted-private-key/EncryptedPrivateKeyV2");
11
7
  class EncryptedPrivateKey extends ValueObject_1.ValueObject {
12
- static ITERATIONS = 100000;
13
- static SALT_ENTROPY = 16;
14
- static IV_ENTROPY = 12;
15
- static LENGTH = 32;
16
- static ALGORITHM = 'sha256';
8
+ static versions = [
9
+ new EncryptedPrivateKeyLegacy_1.EncryptedPrivateKeyLegacy(),
10
+ new EncryptedPrivateKeyV2_1.EncryptedPrivateKeyV2(),
11
+ ];
17
12
  static async create(privateKey, password) {
18
- const salt = await randomBytes(EncryptedPrivateKey.SALT_ENTROPY);
19
- const key = await pbkdf2(password.valueOf(), salt, EncryptedPrivateKey.ITERATIONS, EncryptedPrivateKey.LENGTH, EncryptedPrivateKey.ALGORITHM);
20
- const iv = await randomBytes(EncryptedPrivateKey.IV_ENTROPY);
21
- const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
22
- const encrypted = Buffer.concat([
23
- cipher.update(privateKey.valueOf()),
24
- cipher.final(),
25
- ]);
26
- const tag = cipher.getAuthTag();
27
- const encryptedPrivateKey = [
28
- encrypted.toString('base64'),
29
- iv.toString('base64'),
30
- salt.toString('base64'),
31
- tag.toString('base64'),
32
- ].join('.');
13
+ const encryptedPrivateKey = await EncryptedPrivateKeyV2_1.EncryptedPrivateKeyV2.encrypt(privateKey, password);
33
14
  return new EncryptedPrivateKey(encryptedPrivateKey);
34
15
  }
35
16
  constructor(encryptedPrivateKey) {
36
17
  super(encryptedPrivateKey?.valueOf());
37
18
  }
38
19
  async decrypt(password) {
39
- const [cipherTextB64, ivB64, saltB64, tagB64] = this.valueOf().split('.');
40
- const cipherText = Buffer.from(cipherTextB64, 'base64');
41
- const iv = Buffer.from(ivB64, 'base64');
42
- const salt = Buffer.from(saltB64, 'base64');
43
- const tag = Buffer.from(tagB64, 'base64');
44
- const key = await pbkdf2(password.valueOf(), salt, EncryptedPrivateKey.ITERATIONS, EncryptedPrivateKey.LENGTH, EncryptedPrivateKey.ALGORITHM);
45
- const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
46
- decipher.setAuthTag(tag);
47
- const decrypted = Buffer.concat([
48
- decipher.update(cipherText),
49
- decipher.final(),
50
- ]);
51
- return new PrivateKey_1.PrivateKey(decrypted.toString());
20
+ const parts = this.valueOf().split('.');
21
+ const version = EncryptedPrivateKey.versions.find((handler) => handler.matches(parts));
22
+ if (!version) {
23
+ throw new Error('Invalid encrypted private key format');
24
+ }
25
+ return version.decrypt(parts, password);
26
+ }
27
+ needsReEncryption() {
28
+ const parts = this.valueOf().split('.');
29
+ const version = EncryptedPrivateKey.versions.find((handler) => handler.matches(parts));
30
+ if (!version) {
31
+ return false;
32
+ }
33
+ return version.needsReEncryption();
52
34
  }
53
35
  }
54
36
  exports.EncryptedPrivateKey = EncryptedPrivateKey;
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedPrivateKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPrivateKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EncryptedPrivateKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPrivateKey.ts"],"names":[],"mappings":";;;AACA,gDAA6C;AAC7C,iGAA8F;AAC9F,yFAAsF;AAGtF,MAAa,mBAAoB,SAAQ,yBAAmB;IAClD,MAAM,CAAU,QAAQ,GAAG;QACjC,IAAI,qDAAyB,EAAE;QAC/B,IAAI,6CAAqB,EAAE;KAC5B,CAAC;IAEK,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,UAAsB,EACtB,QAAoC;QAEpC,MAAM,mBAAmB,GAAG,MAAM,6CAAqB,CAAC,OAAO,CAC7D,UAAU,EACV,QAAQ,CACT,CAAC;QAEF,OAAO,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAED,YAAY,mBAA+C;QACzD,KAAK,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,QAAoC;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5D,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CACvB,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEM,iBAAiB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5D,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CACvB,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;;AAhDH,kDAiDC"}
@@ -1,3 +1,4 @@
1
+ import type { Buffer } from 'buffer';
1
2
  import { PrimitiveOf } from '../../interfaces';
2
3
  import { StringValueObject } from '../StringValueObject';
3
4
  import { CryptoPayload } from './CryptoPayload';
@@ -1 +1 @@
1
- {"version":3,"file":"KeyPair.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/KeyPair.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,qBAAa,OAAO;IAkBhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;WAlBT,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;WASlC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;gBAQpD,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU;IAG5B,cAAc,CACzB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,gBAAgB,CAAC;IAQrB,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAIH,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS;IAIvC,YAAY;;;;IAOZ,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;IAIjD,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CAG3D"}
1
+ {"version":3,"file":"KeyPair.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/KeyPair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,OAAO;IAgBhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;WAhBf,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;WAO5B,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;gBAQpD,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU;IAG5B,cAAc,CACzB,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GACnC,OAAO,CAAC,gBAAgB,CAAC;IAQrB,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAIH,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS;IAIvC,YAAY;;;;IAOZ,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;IAIjD,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CAG3D"}
@@ -1,22 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KeyPair = void 0;
4
- const tslib_1 = require("tslib");
5
- const crypto = tslib_1.__importStar(require("node:crypto"));
6
- const node_util_1 = require("node:util");
7
4
  const EncryptedKeyPair_1 = require("./EncryptedKeyPair");
8
5
  const PrivateKey_1 = require("./PrivateKey");
9
6
  const PublicKey_1 = require("./PublicKey");
10
- const generateKeyPair = (0, node_util_1.promisify)(crypto.generateKeyPair);
11
7
  class KeyPair {
12
8
  publicKey;
13
9
  privateKey;
14
- static async generate() {
15
- const { privateKey, publicKey } = await generateKeyPair('ed25519', {
16
- privateKeyEncoding: { format: 'pem', type: 'pkcs8' },
17
- publicKeyEncoding: { format: 'pem', type: 'spki' },
18
- });
19
- return new KeyPair(new PublicKey_1.PublicKey(publicKey), new PrivateKey_1.PrivateKey(privateKey));
10
+ static generate() {
11
+ const privateKey = PrivateKey_1.PrivateKey.generate();
12
+ const publicKey = privateKey.getPublicKey();
13
+ return Promise.resolve(new KeyPair(publicKey, privateKey));
20
14
  }
21
15
  static fromPrimitives(primitives) {
22
16
  return new KeyPair(new PublicKey_1.PublicKey(primitives.publicKey), new PrivateKey_1.PrivateKey(primitives.privateKey));
@@ -1 +1 @@
1
- {"version":3,"file":"KeyPair.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/KeyPair.ts"],"names":[],"mappings":";;;;AAAA,4DAAsC;AACtC,yCAAsC;AAKtC,yDAAsD;AAEtD,6CAA0C;AAC1C,2CAAwC;AAGxC,MAAM,eAAe,GAAG,IAAA,qBAAS,EAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAE1D,MAAa,OAAO;IAkBC;IACA;IAlBZ,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC1B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE;YACjE,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;YACpD,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;SACnD,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,IAAI,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,UAAgC;QAC3D,OAAO,IAAI,OAAO,CAChB,IAAI,qBAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EACnC,IAAI,uBAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CACtC,CAAC;IACJ,CAAC;IAED,YACmB,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEG,KAAK,CAAC,cAAc,CACzB,QAAoC;QAEpC,OAAO,MAAM,mCAAgB,CAAC,cAAc,CAC1C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,QAAQ,CAAC,OAAO,EAAE,CACnB,CAAC;IACJ,CAAC;IAEM,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;SACpC,CAAC;IACJ,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,gBAAkC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;CACF;AAzDD,0BAyDC"}
1
+ {"version":3,"file":"KeyPair.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/KeyPair.ts"],"names":[],"mappings":";;;AAKA,yDAAsD;AAEtD,6CAA0C;AAC1C,2CAAwC;AAGxC,MAAa,OAAO;IAgBC;IACA;IAhBZ,MAAM,CAAC,QAAQ;QACpB,MAAM,UAAU,GAAG,uBAAU,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QAE5C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,UAAgC;QAC3D,OAAO,IAAI,OAAO,CAChB,IAAI,qBAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EACnC,IAAI,uBAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CACtC,CAAC;IACJ,CAAC;IAED,YACmB,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEG,KAAK,CAAC,cAAc,CACzB,QAAoC;QAEpC,OAAO,MAAM,mCAAgB,CAAC,cAAc,CAC1C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,QAAQ,CAAC,OAAO,EAAE,CACnB,CAAC;IACJ,CAAC;IAEM,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEM,YAAY;QACjB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;SACpC,CAAC;IACJ,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO,CAAC,gBAAkC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;CACF;AAvDD,0BAuDC"}
@@ -1,3 +1,4 @@
1
+ import { Buffer } from 'buffer';
1
2
  import { StringValueObject } from '../StringValueObject';
2
3
  import { CryptoPayload } from './CryptoPayload';
3
4
  import { EncryptedPayload } from './EncryptedPayload';
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/PrivateKey.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,UAAW,SAAQ,GAAG;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACiD;WAElE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,UAAU;WAIpD,QAAQ,IAAI,UAAU;gBAUxB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,uBAAuB;IAQxB,YAAY,IAAI,SAAS;IAQzB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS;IAOvC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CA4B3D"}
1
+ {"version":3,"file":"PrivateKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/PrivateKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,UAAW,SAAQ,GAAG;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACiD;WAElE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,UAAU;WAIpD,QAAQ,IAAI,UAAU;gBAIxB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,uBAAuB;IAQxB,YAAY,IAAI,SAAS;IAIzB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS;IAOvC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CAwB3D"}
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PrivateKey = void 0;
4
- const tslib_1 = require("tslib");
5
- const ed25519_js_1 = require("@noble/curves/ed25519.js");
6
- const crypto_1 = require("crypto");
7
- const crypto = tslib_1.__importStar(require("node:crypto"));
4
+ const buffer_1 = require("buffer");
8
5
  const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
9
6
  const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
10
7
  const patterns_1 = require("../../patterns");
11
8
  const NullObject_1 = require("../NullObject");
9
+ const CryptoAdapter_1 = require("./CryptoAdapter");
12
10
  const Key_1 = require("./Key");
13
11
  const PublicKey_1 = require("./PublicKey");
14
12
  const Signature_1 = require("./Signature");
@@ -19,12 +17,7 @@ class PrivateKey extends Key_1.Key {
19
17
  return new PrivateKey(pem.valueOf());
20
18
  }
21
19
  static generate() {
22
- const { privateKey } = (0, crypto_1.generateKeyPairSync)('ed25519');
23
- const pemPrivateKey = privateKey.export({
24
- format: 'pem',
25
- type: 'pkcs8',
26
- });
27
- return new PrivateKey(pemPrivateKey.toString());
20
+ return new PrivateKey(CryptoAdapter_1.CryptoAdapter.randomPrivateKeyPem());
28
21
  }
29
22
  constructor(value) {
30
23
  super(value?.valueOf());
@@ -38,37 +31,25 @@ class PrivateKey extends Key_1.Key {
38
31
  (0, patterns_1.assert)(PrivateKey.PATTERN.test(value), new InvalidFormatError_1.InvalidFormatError(value));
39
32
  }
40
33
  getPublicKey() {
41
- const pemPublicKey = crypto
42
- .createPublicKey(this.valueOf())
43
- .export({ format: 'pem', type: 'spki' });
44
- return PublicKey_1.PublicKey.fromPEM(pemPublicKey.toString());
34
+ return PublicKey_1.PublicKey.fromPEM(CryptoAdapter_1.CryptoAdapter.getPublicKey(this.valueOf()));
45
35
  }
46
36
  sign(payload) {
47
- const messageBuffer = Buffer.from(payload.valueOf());
48
- const signatureBuffer = crypto.sign(null, messageBuffer, this.valueOf());
37
+ const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
38
+ const signatureBuffer = CryptoAdapter_1.CryptoAdapter.sign(messageBuffer, this.valueOf());
49
39
  return Signature_1.Signature.fromBuffer(signatureBuffer);
50
40
  }
51
41
  decrypt(encryptedPayload) {
52
42
  const [ephPubB64, ivB64, cipherTextB64, tagB64] = encryptedPayload
53
43
  .valueOf()
54
44
  .split('.');
55
- const ephemeralPub = Buffer.from(ephPubB64, 'base64');
56
- const iv = Buffer.from(ivB64, 'base64');
57
- const cipherText = Buffer.from(cipherTextB64, 'base64');
58
- const tag = Buffer.from(tagB64, 'base64');
59
- const pkcs8Der = crypto
60
- .createPrivateKey(this.valueOf())
61
- .export({ format: 'der', type: 'pkcs8' });
62
- const x25519Priv = ed25519_js_1.ed25519.utils.toMontgomerySecret(pkcs8Der.subarray(16));
63
- const sharedSecret = ed25519_js_1.x25519.getSharedSecret(x25519Priv, ephemeralPub);
64
- const aesKey = crypto
65
- .createHash('sha256')
66
- .update(sharedSecret)
67
- .update(ephemeralPub)
68
- .digest();
69
- const decipher = crypto.createDecipheriv('aes-256-gcm', aesKey, iv);
70
- decipher.setAuthTag(tag);
71
- return Buffer.concat([decipher.update(cipherText), decipher.final()]);
45
+ const ephemeralPub = buffer_1.Buffer.from(ephPubB64, 'base64');
46
+ const iv = buffer_1.Buffer.from(ivB64, 'base64');
47
+ const cipherText = buffer_1.Buffer.from(cipherTextB64, 'base64');
48
+ const tag = buffer_1.Buffer.from(tagB64, 'base64');
49
+ const x25519Priv = CryptoAdapter_1.CryptoAdapter.privateKeyToX25519(this.valueOf());
50
+ const sharedSecret = CryptoAdapter_1.CryptoAdapter.x25519SharedSecret(x25519Priv, ephemeralPub);
51
+ const aesKey = CryptoAdapter_1.CryptoAdapter.deriveEncryptionKey(sharedSecret, ephemeralPub);
52
+ return CryptoAdapter_1.CryptoAdapter.decryptAes256Gcm(aesKey, iv, cipherText, tag);
72
53
  }
73
54
  }
74
55
  exports.PrivateKey = PrivateKey;
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PrivateKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PrivateKey.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,mDAAgD;AAGhD,+BAA4B;AAC5B,2CAAwC;AACxC,2CAAwC;AAExC,MAAa,UAAW,SAAQ,SAAG;IACzB,MAAM,CAAU,MAAM,GAAG,GAAG,CAAC;IAC7B,MAAM,CAAU,OAAO,GAC7B,6EAA6E,CAAC;IAEzE,MAAM,CAAC,OAAO,CAAC,GAA+B;QACnD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,UAAU,CAAC,6BAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,uBAAuB,CAAC,KAAa;QAC3C,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAClC,IAAI,uCAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CACjD,CAAC;QACF,IAAA,iBAAM,EAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,YAAY;QACjB,OAAO,qBAAS,CAAC,OAAO,CAAC,6BAAa,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,6BAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE1E,OAAO,qBAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAEM,OAAO,CAAC,gBAAkC;QAC/C,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,gBAAgB;aAC/D,OAAO,EAAE;aACT,KAAK,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,YAAY,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,eAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1C,MAAM,UAAU,GAAG,6BAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,6BAAa,CAAC,kBAAkB,CACnD,UAAU,EACV,YAAY,CACb,CAAC;QAEF,MAAM,MAAM,GAAG,6BAAa,CAAC,mBAAmB,CAC9C,YAAY,EACZ,YAAY,CACb,CAAC;QAEF,OAAO,6BAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;;AAjEH,gCAkEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PublicKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,SAAU,SAAQ,GAAG;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAC+C;WAEhE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAIrD,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,sBAAsB;IAQvB,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAaH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;CAmCzD"}
1
+ {"version":3,"file":"PublicKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,SAAU,SAAQ,GAAG;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAC+C;WAEhE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAIrD,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,sBAAsB;IAQvB,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAYH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;CAiCzD"}
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PublicKey = void 0;
4
- const tslib_1 = require("tslib");
5
- const ed25519_js_1 = require("@noble/curves/ed25519.js");
6
- const crypto = tslib_1.__importStar(require("node:crypto"));
4
+ const buffer_1 = require("buffer");
7
5
  const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
8
6
  const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
9
7
  const patterns_1 = require("../../patterns");
10
8
  const NullObject_1 = require("../NullObject");
9
+ const CryptoAdapter_1 = require("./CryptoAdapter");
11
10
  const EncryptedPayload_1 = require("./EncryptedPayload");
12
11
  const Key_1 = require("./Key");
13
12
  class PublicKey extends Key_1.Key {
@@ -28,37 +27,25 @@ class PublicKey extends Key_1.Key {
28
27
  (0, patterns_1.assert)(PublicKey.PATTERN.test(value), new InvalidFormatError_1.InvalidFormatError(value));
29
28
  }
30
29
  isValidSignature(payload, signature) {
31
- const messageBuffer = Buffer.from(payload.valueOf());
32
- const signatureBuffer = Buffer.from(signature.valueOf(), 'base64');
33
- const valid = crypto.verify(null, messageBuffer, this.valueOf(), signatureBuffer);
30
+ const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
31
+ const signatureBuffer = buffer_1.Buffer.from(signature.valueOf(), 'base64');
32
+ const valid = CryptoAdapter_1.CryptoAdapter.verify(signatureBuffer, messageBuffer, this.valueOf());
34
33
  return valid;
35
34
  }
36
35
  encrypt(payload) {
37
- const messageBuffer = Buffer.from(payload.valueOf());
38
- const spkiDer = crypto
39
- .createPublicKey(this.valueOf())
40
- .export({ format: 'der', type: 'spki' });
41
- const x25519Pub = ed25519_js_1.ed25519.utils.toMontgomery(spkiDer.subarray(12));
42
- const ephemeralPriv = ed25519_js_1.x25519.utils.randomSecretKey();
43
- const ephemeralPub = ed25519_js_1.x25519.getPublicKey(ephemeralPriv);
44
- const sharedSecret = ed25519_js_1.x25519.getSharedSecret(ephemeralPriv, x25519Pub);
45
- const aesKey = crypto
46
- .createHash('sha256')
47
- .update(sharedSecret)
48
- .update(ephemeralPub)
49
- .digest();
50
- const iv = crypto.randomBytes(12);
51
- const cipher = crypto.createCipheriv('aes-256-gcm', aesKey, iv);
52
- const cipherText = Buffer.concat([
53
- cipher.update(messageBuffer),
54
- cipher.final(),
55
- ]);
56
- const tag = cipher.getAuthTag();
36
+ const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
37
+ const x25519Pub = CryptoAdapter_1.CryptoAdapter.publicKeyToX25519(this.valueOf());
38
+ const ephemeralPriv = CryptoAdapter_1.CryptoAdapter.x25519RandomPrivateKey();
39
+ const ephemeralPub = CryptoAdapter_1.CryptoAdapter.x25519PublicKey(ephemeralPriv);
40
+ const sharedSecret = CryptoAdapter_1.CryptoAdapter.x25519SharedSecret(ephemeralPriv, x25519Pub);
41
+ const aesKey = CryptoAdapter_1.CryptoAdapter.deriveEncryptionKey(sharedSecret, ephemeralPub);
42
+ const iv = CryptoAdapter_1.CryptoAdapter.randomBytes(12);
43
+ const { cipherText, tag } = CryptoAdapter_1.CryptoAdapter.encryptAes256Gcm(aesKey, iv, messageBuffer);
57
44
  const result = [
58
- Buffer.from(ephemeralPub).toString('base64'),
45
+ buffer_1.Buffer.from(ephemeralPub).toString('base64'),
59
46
  iv.toString('base64'),
60
- cipherText.toString('base64'),
61
- tag.toString('base64'),
47
+ buffer_1.Buffer.from(cipherText).toString('base64'),
48
+ buffer_1.Buffer.from(tag).toString('base64'),
62
49
  ].join('.');
63
50
  return new EncryptedPayload_1.EncryptedPayload(result);
64
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,mDAAgD;AAEhD,yDAAsD;AACtD,+BAA4B;AAG5B,MAAa,SAAU,SAAQ,SAAG;IACxB,MAAM,CAAU,MAAM,GAAG,GAAG,CAAC;IAC7B,MAAM,CAAU,OAAO,GAC7B,2EAA2E,CAAC;IAEvE,MAAM,CAAC,OAAO,CAAC,GAA+B;QACnD,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,sBAAsB,CAAC,KAAa;QAC1C,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EACjC,IAAI,uCAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAChD,CAAC;QACF,IAAA,iBAAM,EAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,6BAAa,CAAC,MAAM,CAChC,eAAe,EACf,aAAa,EACb,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,6BAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,6BAAa,CAAC,sBAAsB,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,6BAAa,CAAC,kBAAkB,CACnD,aAAa,EACb,SAAS,CACV,CAAC;QAEF,MAAM,MAAM,GAAG,6BAAa,CAAC,mBAAmB,CAC9C,YAAY,EACZ,YAAY,CACb,CAAC;QAEF,MAAM,EAAE,GAAG,6BAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,6BAAa,CAAC,gBAAgB,CACxD,MAAM,EACN,EAAE,EACF,aAAa,CACd,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5C,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1C,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,OAAO,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;;AA1EH,8BA2EC"}
@@ -1,3 +1,4 @@
1
+ import type { Buffer } from 'buffer';
1
2
  import { StringValueObject } from '../StringValueObject';
2
3
  import { ValueObject } from '../ValueObject';
3
4
  export declare class Signature extends ValueObject<string> {