@haskou/value-objects 2.7.4 → 2.9.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 (87) hide show
  1. package/README.md +73 -10
  2. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.d.ts +5 -0
  3. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.d.ts.map +1 -0
  4. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.js +11 -0
  5. package/dist/errors/InvalidEncryptedPrivateKeyFormatError.js.map +1 -0
  6. package/dist/errors/InvalidPasswordError.d.ts +5 -0
  7. package/dist/errors/InvalidPasswordError.d.ts.map +1 -0
  8. package/dist/errors/InvalidPasswordError.js +11 -0
  9. package/dist/errors/InvalidPasswordError.js.map +1 -0
  10. package/dist/errors/index.d.ts +2 -0
  11. package/dist/errors/index.d.ts.map +1 -1
  12. package/dist/errors/index.js +2 -0
  13. package/dist/errors/index.js.map +1 -1
  14. package/dist/patterns/Assert.d.ts +1 -1
  15. package/dist/patterns/Assert.d.ts.map +1 -1
  16. package/dist/value-objects/Password.d.ts +8 -0
  17. package/dist/value-objects/Password.d.ts.map +1 -0
  18. package/dist/value-objects/Password.js +28 -0
  19. package/dist/value-objects/Password.js.map +1 -0
  20. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.d.ts +5 -0
  21. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.d.ts.map +1 -0
  22. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.js +11 -0
  23. package/dist/value-objects/crypto/AsymmetricEncryptedPayload.js.map +1 -0
  24. package/dist/value-objects/crypto/CryptoAdapter.d.ts +3 -2
  25. package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +1 -1
  26. package/dist/value-objects/crypto/CryptoAdapter.js +9 -4
  27. package/dist/value-objects/crypto/CryptoAdapter.js.map +1 -1
  28. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +4 -4
  29. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +1 -1
  30. package/dist/value-objects/crypto/EncryptedKeyPair.js.map +1 -1
  31. package/dist/value-objects/crypto/EncryptedPayload.d.ts +2 -0
  32. package/dist/value-objects/crypto/EncryptedPayload.d.ts.map +1 -1
  33. package/dist/value-objects/crypto/EncryptedPayload.js +15 -0
  34. package/dist/value-objects/crypto/EncryptedPayload.js.map +1 -1
  35. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +3 -2
  36. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +1 -1
  37. package/dist/value-objects/crypto/EncryptedPrivateKey.js +6 -4
  38. package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +1 -1
  39. package/dist/value-objects/crypto/KeyPair.d.ts +2 -2
  40. package/dist/value-objects/crypto/KeyPair.d.ts.map +1 -1
  41. package/dist/value-objects/crypto/KeyPair.js +1 -1
  42. package/dist/value-objects/crypto/KeyPair.js.map +1 -1
  43. package/dist/value-objects/crypto/PrivateKey.d.ts +6 -3
  44. package/dist/value-objects/crypto/PrivateKey.d.ts.map +1 -1
  45. package/dist/value-objects/crypto/PrivateKey.js +43 -31
  46. package/dist/value-objects/crypto/PrivateKey.js.map +1 -1
  47. package/dist/value-objects/crypto/PublicKey.d.ts +5 -2
  48. package/dist/value-objects/crypto/PublicKey.d.ts.map +1 -1
  49. package/dist/value-objects/crypto/PublicKey.js +11 -4
  50. package/dist/value-objects/crypto/PublicKey.js.map +1 -1
  51. package/dist/value-objects/crypto/StrictBase64.d.ts +15 -0
  52. package/dist/value-objects/crypto/StrictBase64.d.ts.map +1 -0
  53. package/dist/value-objects/crypto/StrictBase64.js +36 -0
  54. package/dist/value-objects/crypto/StrictBase64.js.map +1 -0
  55. package/dist/value-objects/crypto/SymmetricEncryptedPayload.d.ts +5 -0
  56. package/dist/value-objects/crypto/SymmetricEncryptedPayload.d.ts.map +1 -0
  57. package/dist/value-objects/crypto/SymmetricEncryptedPayload.js +11 -0
  58. package/dist/value-objects/crypto/SymmetricEncryptedPayload.js.map +1 -0
  59. package/dist/value-objects/crypto/SymmetricKey.d.ts +49 -0
  60. package/dist/value-objects/crypto/SymmetricKey.d.ts.map +1 -0
  61. package/dist/value-objects/crypto/SymmetricKey.js +149 -0
  62. package/dist/value-objects/crypto/SymmetricKey.js.map +1 -0
  63. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +2 -2
  64. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +1 -1
  65. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +1 -1
  66. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +7 -5
  67. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +1 -1
  68. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +41 -17
  69. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +1 -1
  70. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.d.ts +24 -0
  71. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.d.ts.map +1 -0
  72. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.js +105 -0
  73. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.js.map +1 -0
  74. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +2 -2
  75. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +1 -1
  76. package/dist/value-objects/crypto/index.d.ts +3 -0
  77. package/dist/value-objects/crypto/index.d.ts.map +1 -1
  78. package/dist/value-objects/crypto/index.js +3 -0
  79. package/dist/value-objects/crypto/index.js.map +1 -1
  80. package/dist/value-objects/index.d.ts +1 -0
  81. package/dist/value-objects/index.d.ts.map +1 -1
  82. package/dist/value-objects/index.js +1 -0
  83. package/dist/value-objects/index.js.map +1 -1
  84. package/dist/value-objects/time/DayOfWeek.d.ts.map +1 -1
  85. package/dist/value-objects/time/DayOfWeek.js +2 -3
  86. package/dist/value-objects/time/DayOfWeek.js.map +1 -1
  87. package/package.json +1 -1
package/README.md CHANGED
@@ -15,7 +15,7 @@ npm install @haskou/value-objects
15
15
  ```
16
16
 
17
17
  ```typescript
18
- import { Email, PositiveNumber, Color, Hour } from 'value-objects';
18
+ import { Email, PositiveNumber, Color, Hour } from '@haskou/value-objects';
19
19
 
20
20
  // ✅ Automatic validation on construction
21
21
  const email = new Email('user@example.com'); // Valid
@@ -57,6 +57,7 @@ your application.
57
57
 
58
58
  ### 🔤 Basic
59
59
  - **`StringValueObject`** - Strings with length validation
60
+ - **`Password`** - Password strings with length and complexity validation
60
61
  - **`NumberValueObject`** - Numbers with math operations
61
62
  - **`Integer`** - Whole numbers
62
63
  - **`PositiveNumber`** - Positive numbers (> 0)
@@ -87,13 +88,61 @@ your application.
87
88
  - **`Coordinates`** - Coordinate pairs
88
89
 
89
90
  ### 🔐 Cryptography
90
- - **`KeyPair`** - Ed25519 key pair generation, signing, and verification
91
- - **`PrivateKey`** - Ed25519 private key (PEM format) with signing
92
- - **`PublicKey`** - Ed25519 public key (PEM format) with signature verification
93
- - **`Signature`** - Base64-encoded ed25519 digital signature
94
- - **`EncryptedPrivateKey`** - AES-256-GCM encrypted private key (scrypt-based, password-protected)
91
+ - **`KeyPair`** - Ed25519 key pair generation for signing and verification
92
+ - **`PrivateKey`** - Ed25519 private key (PEM format) for signing; also accepted by asymmetric payload decryption for data addressed to the matching key pair
93
+ - **`PublicKey`** - Ed25519 public key (PEM format) for signature verification; also accepted by asymmetric payload encryption to address data to the matching key pair
94
+ - **`Signature`** - Base64-encoded Ed25519 digital signature
95
+ - **`EncryptedPayload`** - Base container for dot-separated encrypted payload formats
96
+ - **`AsymmetricEncryptedPayload`** - Payload encrypted for an Ed25519/X25519 recipient key pair
97
+ - **`SymmetricEncryptedPayload`** - Payload encrypted with a symmetric AES-256-GCM key
98
+ - **`SymmetricKey`** - 32-byte AES-256-GCM key, randomly generated or deterministically derived from a `Password` and salt with scrypt
99
+ - **`EncryptedPrivateKey`** - Password-protected private key encryption using scrypt + AES-256-GCM
95
100
  - **`EncryptedKeyPair`** - Key pair with encrypted private key
96
101
 
102
+ Technical notes:
103
+
104
+ - Asymmetric payload encryption is a classical hybrid scheme. It generates an ephemeral
105
+ X25519 key pair, converts the recipient Ed25519 key material to Montgomery
106
+ form for X25519 key agreement, derives a shared secret, then derives a
107
+ 256-bit AES key with HKDF-SHA256 and encrypts the payload with AES-256-GCM.
108
+ - The current asymmetric payload format is
109
+ `v2.x25519-hkdf-sha256-aes-256-gcm.ephemeralPublicKey.iv.cipherText.tag`,
110
+ with Base64-encoded key, IV, ciphertext, and tag fields. The previous
111
+ `ephemeralPublicKey.iv.cipherText.tag` format still decrypts for backward
112
+ compatibility.
113
+ - The v2 asymmetric header is authenticated as AES-GCM AAD. HKDF uses
114
+ `ephemeralPublicKey || recipientPublicKey` as salt and
115
+ `@haskou/value-objects/asymmetric-payload/v2` as domain-separated info.
116
+ - Symmetric payload encryption uses a 32-byte AES-256-GCM key directly. The
117
+ payload format is `v1.aes-256-gcm.iv.cipherText.tag`, with Base64-encoded
118
+ IV, ciphertext, and tag fields.
119
+ - `SymmetricKey.generate()` creates a random 256-bit key.
120
+ `SymmetricKey.fromPasswordUsingOwasp()` derives a 256-bit key with the OWASP
121
+ scrypt profile used by this package for new password-derived keys.
122
+ `SymmetricKey.fromPassword()` keeps its original defaults for backward
123
+ compatibility with existing encrypted data.
124
+ - A 32-byte key provides the AES-256 key size. Real security depends on using
125
+ either a high-entropy random key or a strong password with a unique,
126
+ non-empty salt. AES-GCM also requires that IVs do not repeat for the same key;
127
+ the library generates a random 96-bit IV for each encryption.
128
+ - Payload encryption is intended for small payloads and is currently capped at
129
+ 1 MiB before encryption.
130
+ - New encrypted private keys use `v3.scrypt.N16384.r8.p5` with a 16-byte salt,
131
+ then AES-256-GCM with a 12-byte IV and 16-byte authentication tag. The older
132
+ v2 scrypt profile and legacy PBKDF2 format still decrypt, and
133
+ `needsReEncryption()` marks them for upgrade. The v3 header is authenticated
134
+ as AES-GCM AAD.
135
+ - This is not a post-quantum cryptography scheme. Ed25519 and X25519 are
136
+ classical elliptic-curve primitives, so neither signatures nor payload key
137
+ agreement are post-quantum secure.
138
+ - Payload encryption uses fresh ephemeral key material and a random IV per
139
+ encryption, but captured payloads can still be decrypted later if the
140
+ recipient private key is compromised. Treat it as recipient-addressed
141
+ encryption with ciphertext integrity, not as sender-authenticated encryption
142
+ or a forward-secret transport protocol.
143
+ - The payload encryption format is library-specific, not HPKE, and has not been
144
+ independently audited as a protocol.
145
+
97
146
  ### 📎 Media
98
147
  - **`Media`** - Binary/string content with Buffer, size, and Base64 helpers
99
148
 
@@ -147,15 +196,28 @@ const sha512 = SHA512Hash.from('hello'); // 9b71d224bd62f3785d96d46ad3ea3d73319b
147
196
  console.log(md5.toBase64());
148
197
 
149
198
  // Crypto
150
- const keyPair = KeyPair.generate(); // Ed25519 key pair
199
+ const keyPair = await KeyPair.generate(); // Ed25519 key pair
151
200
  const signature = keyPair.sign('hello world'); // Sign a message
152
201
  keyPair.isValidSignature('hello world', signature); // true
153
202
 
154
203
  // Encrypted key pairs
155
- const encrypted = await keyPair.encryptKeyPair('my-password');
156
- const sig = encrypted.sign('message', 'my-password');
204
+ const cryptoPassword = new Password('Secure-password-123!');
205
+ const encrypted = await keyPair.encryptKeyPair(cryptoPassword);
206
+ const sig = await encrypted.sign('message', cryptoPassword);
157
207
  encrypted.isValidSignature('message', sig); // true
158
208
 
209
+ // Symmetric payload encryption
210
+ const symmetricKey = SymmetricKey.generate();
211
+ const symmetricPayload = symmetricKey.encrypt('secret data');
212
+ const plaintext = symmetricKey.decrypt(symmetricPayload);
213
+ console.log(plaintext.toString()); // 'secret data'
214
+
215
+ // Deterministic key derivation from a password and explicit salt
216
+ const derivedKey = await SymmetricKey.fromPasswordUsingOwasp(
217
+ cryptoPassword,
218
+ { salt: 'stable-application-salt' },
219
+ );
220
+
159
221
  // Media
160
222
  const media = new Media('hello world');
161
223
  console.log(media.getSize()); // 11
@@ -211,7 +273,8 @@ to choose the npm version bump:
211
273
  Branches without one of these prefixes still run CI, but they do not publish
212
274
  to npm. Publishing uses npm Trusted Publishing from the `ci.yml` workflow.
213
275
  After a successful publish, CI commits the release version to the default
214
- branch and creates the matching `vX.Y.Z` Git tag.
276
+ branch, creates the matching `vX.Y.Z` Git tag, and publishes a compact GitHub
277
+ Release with the PR title, npm package link, release branch, and PR notes.
215
278
 
216
279
  ## 🤝 Contributing
217
280
 
@@ -0,0 +1,5 @@
1
+ import { DomainError } from './DomainError';
2
+ export declare class InvalidEncryptedPrivateKeyFormatError extends DomainError {
3
+ constructor(reason?: string);
4
+ }
5
+ //# sourceMappingURL=InvalidEncryptedPrivateKeyFormatError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidEncryptedPrivateKeyFormatError.d.ts","sourceRoot":"","sources":["../../src/errors/InvalidEncryptedPrivateKeyFormatError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,qCAAsC,SAAQ,WAAW;gBACxD,MAAM,SAAyC;CAG5D"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidEncryptedPrivateKeyFormatError = void 0;
4
+ const DomainError_1 = require("./DomainError");
5
+ class InvalidEncryptedPrivateKeyFormatError extends DomainError_1.DomainError {
6
+ constructor(reason = 'Invalid encrypted private key format') {
7
+ super(reason);
8
+ }
9
+ }
10
+ exports.InvalidEncryptedPrivateKeyFormatError = InvalidEncryptedPrivateKeyFormatError;
11
+ //# sourceMappingURL=InvalidEncryptedPrivateKeyFormatError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidEncryptedPrivateKeyFormatError.js","sourceRoot":"","sources":["../../src/errors/InvalidEncryptedPrivateKeyFormatError.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,MAAa,qCAAsC,SAAQ,yBAAW;IACpE,YAAY,MAAM,GAAG,sCAAsC;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CACF;AAJD,sFAIC"}
@@ -0,0 +1,5 @@
1
+ import { DomainError } from './DomainError';
2
+ export declare class InvalidPasswordError extends DomainError {
3
+ constructor(minLength: number, maxLength: number);
4
+ }
5
+ //# sourceMappingURL=InvalidPasswordError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidPasswordError.d.ts","sourceRoot":"","sources":["../../src/errors/InvalidPasswordError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,WAAW;gBACvC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAKjD"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidPasswordError = void 0;
4
+ const DomainError_1 = require("./DomainError");
5
+ class InvalidPasswordError extends DomainError_1.DomainError {
6
+ constructor(minLength, maxLength) {
7
+ super(`Password must be between ${minLength} and ${maxLength} characters long and include at least one uppercase letter, one lowercase letter, one number and one symbol.`);
8
+ }
9
+ }
10
+ exports.InvalidPasswordError = InvalidPasswordError;
11
+ //# sourceMappingURL=InvalidPasswordError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidPasswordError.js","sourceRoot":"","sources":["../../src/errors/InvalidPasswordError.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,MAAa,oBAAqB,SAAQ,yBAAW;IACnD,YAAY,SAAiB,EAAE,SAAiB;QAC9C,KAAK,CACH,4BAA4B,SAAS,QAAQ,SAAS,8GAA8G,CACrK,CAAC;IACJ,CAAC;CACF;AAND,oDAMC"}
@@ -5,6 +5,7 @@ export * from './InvalidDayError';
5
5
  export * from './InvalidDayFormatError';
6
6
  export * from './InvalidHourError';
7
7
  export * from './InvalidEmailError';
8
+ export * from './InvalidEncryptedPrivateKeyFormatError';
8
9
  export * from './InvalidFormatError';
9
10
  export * from './InvalidHashError';
10
11
  export * from './InvalidIntegerError';
@@ -13,6 +14,7 @@ export * from './InvalidLongitudeError';
13
14
  export * from './InvalidEmailError';
14
15
  export * from './InvalidMinutesError';
15
16
  export * from './InvalidNumberError';
17
+ export * from './InvalidPasswordError';
16
18
  export * from './InvalidPositiveNumberError';
17
19
  export * from './InvalidStringLengthError';
18
20
  export * from './InvalidTimestampIntervalError';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -8,6 +8,7 @@ tslib_1.__exportStar(require("./InvalidDayError"), exports);
8
8
  tslib_1.__exportStar(require("./InvalidDayFormatError"), exports);
9
9
  tslib_1.__exportStar(require("./InvalidHourError"), exports);
10
10
  tslib_1.__exportStar(require("./InvalidEmailError"), exports);
11
+ tslib_1.__exportStar(require("./InvalidEncryptedPrivateKeyFormatError"), exports);
11
12
  tslib_1.__exportStar(require("./InvalidFormatError"), exports);
12
13
  tslib_1.__exportStar(require("./InvalidHashError"), exports);
13
14
  tslib_1.__exportStar(require("./InvalidIntegerError"), exports);
@@ -16,6 +17,7 @@ tslib_1.__exportStar(require("./InvalidLongitudeError"), exports);
16
17
  tslib_1.__exportStar(require("./InvalidEmailError"), exports);
17
18
  tslib_1.__exportStar(require("./InvalidMinutesError"), exports);
18
19
  tslib_1.__exportStar(require("./InvalidNumberError"), exports);
20
+ tslib_1.__exportStar(require("./InvalidPasswordError"), exports);
19
21
  tslib_1.__exportStar(require("./InvalidPositiveNumberError"), exports);
20
22
  tslib_1.__exportStar(require("./InvalidStringLengthError"), exports);
21
23
  tslib_1.__exportStar(require("./InvalidTimestampIntervalError"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,kEAAwC;AACxC,6DAAmC;AACnC,8DAAoC;AACpC,+DAAqC;AACrC,6DAAmC;AACnC,gEAAsC;AACtC,iEAAuC;AACvC,kEAAwC;AACxC,8DAAoC;AACpC,gEAAsC;AACtC,+DAAqC;AACrC,uEAA6C;AAC7C,qEAA2C;AAC3C,0EAAgD;AAChD,4DAAkC;AAClC,+DAAqC;AACrC,kEAAwC;AACxC,4DAAkC;AAClC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,kEAAwC;AACxC,6DAAmC;AACnC,8DAAoC;AACpC,kFAAwD;AACxD,+DAAqC;AACrC,6DAAmC;AACnC,gEAAsC;AACtC,iEAAuC;AACvC,kEAAwC;AACxC,8DAAoC;AACpC,gEAAsC;AACtC,+DAAqC;AACrC,iEAAuC;AACvC,uEAA6C;AAC7C,qEAA2C;AAC3C,0EAAgD;AAChD,4DAAkC;AAClC,+DAAqC;AACrC,kEAAwC;AACxC,4DAAkC;AAClC,gEAAsC"}
@@ -1,5 +1,5 @@
1
1
  import { BaseError } from '../errors/BaseError';
2
2
  import { DomainError } from '../errors/DomainError';
3
3
  export type Errors = Error | BaseError | DomainError | string;
4
- export declare function assert(condition: boolean | unknown | undefined, error: string | Errors): void;
4
+ export declare function assert(condition: boolean | unknown | undefined, error: string | Errors): asserts condition;
5
5
  //# sourceMappingURL=Assert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Assert.d.ts","sourceRoot":"","sources":["../../src/patterns/Assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EACxC,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,IAAI,CAMN"}
1
+ {"version":3,"file":"Assert.d.ts","sourceRoot":"","sources":["../../src/patterns/Assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EACxC,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,OAAO,CAAC,SAAS,CAMnB"}
@@ -0,0 +1,8 @@
1
+ import { StringValueObject } from './StringValueObject';
2
+ export declare class Password extends StringValueObject {
3
+ private static readonly MAX_LENGTH;
4
+ private static readonly MIN_LENGTH;
5
+ constructor(value: string | StringValueObject);
6
+ private isValidPassword;
7
+ }
8
+ //# sourceMappingURL=Password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Password.d.ts","sourceRoot":"","sources":["../../src/value-objects/Password.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,QAAS,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAO;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;gBAE5B,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAa7C,OAAO,CAAC,eAAe;CAUxB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Password = void 0;
4
+ const InvalidPasswordError_1 = require("../errors/InvalidPasswordError");
5
+ const patterns_1 = require("../patterns");
6
+ const NullObject_1 = require("./NullObject");
7
+ const StringValueObject_1 = require("./StringValueObject");
8
+ class Password extends StringValueObject_1.StringValueObject {
9
+ static MAX_LENGTH = 256;
10
+ static MIN_LENGTH = 12;
11
+ constructor(value) {
12
+ super(value);
13
+ if (NullObject_1.NullObject.isNullObject(this)) {
14
+ return this;
15
+ }
16
+ (0, patterns_1.assert)(this.isValidPassword(), new InvalidPasswordError_1.InvalidPasswordError(Password.MIN_LENGTH, Password.MAX_LENGTH));
17
+ }
18
+ isValidPassword() {
19
+ return (this.value.length >= Password.MIN_LENGTH &&
20
+ this.value.length <= Password.MAX_LENGTH &&
21
+ /[A-Z]/.test(this.value) &&
22
+ /[a-z]/.test(this.value) &&
23
+ /[0-9]/.test(this.value) &&
24
+ /[^A-Za-z0-9]/.test(this.value));
25
+ }
26
+ }
27
+ exports.Password = Password;
28
+ //# sourceMappingURL=Password.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Password.js","sourceRoot":"","sources":["../../src/value-objects/Password.ts"],"names":[],"mappings":";;;AAAA,yEAAsE;AACtE,0CAAqC;AACrC,6CAA0C;AAC1C,2DAAwD;AAExD,MAAa,QAAS,SAAQ,qCAAiB;IACrC,MAAM,CAAU,UAAU,GAAG,GAAG,CAAC;IACjC,MAAM,CAAU,UAAU,GAAG,EAAE,CAAC;IAExC,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,iBAAM,EACJ,IAAI,CAAC,eAAe,EAAE,EACtB,IAAI,2CAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CACnE,CAAC;IACJ,CAAC;IAEO,eAAe;QACrB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU;YACxC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU;YACxC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAChC,CAAC;IACJ,CAAC;;AA1BH,4BA2BC"}
@@ -0,0 +1,5 @@
1
+ import { EncryptedPayload, EncryptedPayloadScheme } from './EncryptedPayload';
2
+ export declare class AsymmetricEncryptedPayload extends EncryptedPayload {
3
+ getScheme(): EncryptedPayloadScheme;
4
+ }
5
+ //# sourceMappingURL=AsymmetricEncryptedPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsymmetricEncryptedPayload.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/AsymmetricEncryptedPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,qBAAa,0BAA2B,SAAQ,gBAAgB;IACvD,SAAS,IAAI,sBAAsB;CAG3C"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsymmetricEncryptedPayload = void 0;
4
+ const EncryptedPayload_1 = require("./EncryptedPayload");
5
+ class AsymmetricEncryptedPayload extends EncryptedPayload_1.EncryptedPayload {
6
+ getScheme() {
7
+ return 'asymmetric';
8
+ }
9
+ }
10
+ exports.AsymmetricEncryptedPayload = AsymmetricEncryptedPayload;
11
+ //# sourceMappingURL=AsymmetricEncryptedPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsymmetricEncryptedPayload.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/AsymmetricEncryptedPayload.ts"],"names":[],"mappings":";;;AAAA,yDAA8E;AAE9E,MAAa,0BAA2B,SAAQ,mCAAgB;IACvD,SAAS;QACd,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAJD,gEAIC"}
@@ -3,9 +3,10 @@ type HashAlgorithm = 'md5' | 'sha256' | 'sha512';
3
3
  export declare class CryptoAdapter {
4
4
  private static pemToDer;
5
5
  private static wrapPem;
6
- static decryptAes256Gcm(key: Uint8Array, iv: Uint8Array, cipherText: Uint8Array, tag: Uint8Array): Buffer;
6
+ static decryptAes256Gcm(key: Uint8Array, iv: Uint8Array, cipherText: Uint8Array, tag: Uint8Array, aad?: Uint8Array): Buffer;
7
7
  static deriveEncryptionKey(sharedSecret: Uint8Array, ephemeralPublicKey: Uint8Array): Uint8Array;
8
- static encryptAes256Gcm(key: Uint8Array, iv: Uint8Array, message: Uint8Array): {
8
+ static deriveEncryptionKeyWithHkdf(sharedSecret: Uint8Array, ephemeralPublicKey: Uint8Array, recipientPublicKey: Uint8Array): Uint8Array;
9
+ static encryptAes256Gcm(key: Uint8Array, iv: Uint8Array, message: Uint8Array, aad?: Uint8Array): {
9
10
  cipherText: Uint8Array;
10
11
  tag: Uint8Array;
11
12
  };
@@ -1 +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"}
1
+ {"version":3,"file":"CryptoAdapter.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,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,EACf,GAAG,CAAC,EAAE,UAAU,GACf,MAAM;WAIK,mBAAmB,CAC/B,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAIC,2BAA2B,CACvC,YAAY,EAAE,UAAU,EACxB,kBAAkB,EAAE,UAAU,EAC9B,kBAAkB,EAAE,UAAU,GAC7B,UAAU;WAUC,gBAAgB,CAC5B,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,GAAG,CAAC,EAAE,UAAU,GACf;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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CryptoAdapter = void 0;
4
4
  const aes_js_1 = require("@noble/ciphers/aes.js");
5
5
  const ed25519_js_1 = require("@noble/curves/ed25519.js");
6
+ const hkdf_js_1 = require("@noble/hashes/hkdf.js");
6
7
  const legacy_js_1 = require("@noble/hashes/legacy.js");
7
8
  const sha2_js_1 = require("@noble/hashes/sha2.js");
8
9
  const utils_js_1 = require("@noble/hashes/utils.js");
@@ -10,6 +11,7 @@ const buffer_1 = require("buffer");
10
11
  const privateKeyDerPrefix = (0, utils_js_1.hexToBytes)('302e020100300506032b657004220420');
11
12
  const publicKeyDerPrefix = (0, utils_js_1.hexToBytes)('302a300506032b6570032100');
12
13
  const gcmTagLength = 16;
14
+ const asymmetricPayloadV2Info = buffer_1.Buffer.from('@haskou/value-objects/asymmetric-payload/v2');
13
15
  class CryptoAdapter {
14
16
  static pemToDer(pem) {
15
17
  const base64 = pem
@@ -21,14 +23,17 @@ class CryptoAdapter {
21
23
  static wrapPem(label, der) {
22
24
  return `-----BEGIN ${label}-----\n${buffer_1.Buffer.from(der).toString('base64')}\n-----END ${label}-----\n`;
23
25
  }
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
+ static decryptAes256Gcm(key, iv, cipherText, tag, aad) {
27
+ return buffer_1.Buffer.from((0, aes_js_1.gcm)(key, iv, aad).decrypt((0, utils_js_1.concatBytes)(cipherText, tag)));
26
28
  }
27
29
  static deriveEncryptionKey(sharedSecret, ephemeralPublicKey) {
28
30
  return (0, sha2_js_1.sha256)((0, utils_js_1.concatBytes)(sharedSecret, ephemeralPublicKey));
29
31
  }
30
- static encryptAes256Gcm(key, iv, message) {
31
- const encrypted = (0, aes_js_1.gcm)(key, iv).encrypt(message);
32
+ static deriveEncryptionKeyWithHkdf(sharedSecret, ephemeralPublicKey, recipientPublicKey) {
33
+ return (0, hkdf_js_1.hkdf)(sha2_js_1.sha256, sharedSecret, (0, utils_js_1.concatBytes)(ephemeralPublicKey, recipientPublicKey), asymmetricPayloadV2Info, 32);
34
+ }
35
+ static encryptAes256Gcm(key, iv, message, aad) {
36
+ const encrypted = (0, aes_js_1.gcm)(key, iv, aad).encrypt(message);
32
37
  return {
33
38
  cipherText: encrypted.subarray(0, -gcmTagLength),
34
39
  tag: encrypted.subarray(-gcmTagLength),
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoAdapter.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoAdapter.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,25 @@
1
1
  import type { Buffer } from 'buffer';
2
2
  import { PrimitiveOf } from '../../interfaces';
3
- import { StringValueObject } from '../StringValueObject';
4
3
  import { CryptoPayload } from './CryptoPayload';
5
4
  import { EncryptedPayload } from './EncryptedPayload';
6
5
  import { EncryptedPrivateKey } from './EncryptedPrivateKey';
7
6
  import { PrivateKey } from './PrivateKey';
8
7
  import { PublicKey } from './PublicKey';
9
8
  import { Signature } from './Signature';
9
+ import { CryptoPassword } from './SymmetricKey';
10
10
  export declare class EncryptedKeyPair {
11
11
  private readonly publicKey;
12
12
  private readonly encryptedPrivateKey;
13
- static encryptKeyPair(publicKey: PublicKey, privateKey: PrivateKey, password: string | StringValueObject): Promise<EncryptedKeyPair>;
13
+ static encryptKeyPair(publicKey: PublicKey, privateKey: PrivateKey, password: CryptoPassword): Promise<EncryptedKeyPair>;
14
14
  static fromPrimitives(primitives: PrimitiveOf<EncryptedKeyPair>): EncryptedKeyPair;
15
15
  constructor(publicKey: PublicKey, encryptedPrivateKey: EncryptedPrivateKey);
16
16
  isValidSignature(payload: CryptoPayload, signature: Signature): boolean;
17
- sign(payload: CryptoPayload, password: string | StringValueObject): Promise<Signature>;
17
+ sign(payload: CryptoPayload, password: CryptoPassword): Promise<Signature>;
18
18
  toPrimitives(): {
19
19
  encryptedPrivateKey: string;
20
20
  publicKey: string;
21
21
  };
22
22
  encrypt(payload: CryptoPayload): EncryptedPayload;
23
- decrypt(encryptedPayload: EncryptedPayload, password: string | StringValueObject): Promise<Buffer>;
23
+ decrypt(encryptedPayload: EncryptedPayload, password: CryptoPassword): Promise<Buffer>;
24
24
  }
25
25
  //# sourceMappingURL=EncryptedKeyPair.d.ts.map
@@ -1 +1 @@
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
+ {"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,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;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,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,cAAc,GACvB,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,cAAc,GACvB,OAAO,CAAC,SAAS,CAAC;IAMd,YAAY;;;;IAOZ,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;IAI3C,OAAO,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;CAKnB"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"EncryptedKeyPair.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedKeyPair.ts"],"names":[],"mappings":";;;AAKA,+DAA4D;AAE5D,2CAAwC;AAIxC,MAAa,gBAAgB;IAwBR;IACA;IAxBZ,MAAM,CAAC,KAAK,CAAC,cAAc,CAChC,SAAoB,EACpB,UAAsB,EACtB,QAAwB;QAExB,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,QAAwB;QAExB,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,QAAwB;QAExB,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,4 +1,6 @@
1
1
  import { ValueObject } from '../ValueObject';
2
+ export type EncryptedPayloadScheme = 'asymmetric' | 'symmetric' | 'unknown';
2
3
  export declare class EncryptedPayload extends ValueObject<string> {
4
+ getScheme(): EncryptedPayloadScheme;
3
5
  }
4
6
  //# sourceMappingURL=EncryptedPayload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedPayload.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,MAAM,CAAC;CAAG"}
1
+ {"version":3,"file":"EncryptedPayload.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5E,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,SAAS,IAAI,sBAAsB;CAqB3C"}
@@ -3,6 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EncryptedPayload = void 0;
4
4
  const ValueObject_1 = require("../ValueObject");
5
5
  class EncryptedPayload extends ValueObject_1.ValueObject {
6
+ getScheme() {
7
+ const parts = this.valueOf().split('.');
8
+ if (parts.length === 4) {
9
+ return 'asymmetric';
10
+ }
11
+ if (parts.length === 6 &&
12
+ parts[0] === 'v2' &&
13
+ parts[1] === 'x25519-hkdf-sha256-aes-256-gcm') {
14
+ return 'asymmetric';
15
+ }
16
+ if (parts.length === 5 && parts[0] === 'v1' && parts[1] === 'aes-256-gcm') {
17
+ return 'symmetric';
18
+ }
19
+ return 'unknown';
20
+ }
6
21
  }
7
22
  exports.EncryptedPayload = EncryptedPayload;
8
23
  //# sourceMappingURL=EncryptedPayload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedPayload.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPayload.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,MAAa,gBAAiB,SAAQ,yBAAmB;CAAG;AAA5D,4CAA4D"}
1
+ {"version":3,"file":"EncryptedPayload.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPayload.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAI7C,MAAa,gBAAiB,SAAQ,yBAAmB;IAChD,SAAS;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;YAClB,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;YACjB,KAAK,CAAC,CAAC,CAAC,KAAK,gCAAgC,EAC7C,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAC1E,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAtBD,4CAsBC"}
@@ -1,11 +1,12 @@
1
1
  import { StringValueObject } from '../StringValueObject';
2
2
  import { ValueObject } from '../ValueObject';
3
3
  import { PrivateKey } from './PrivateKey';
4
+ import { CryptoPassword } from './SymmetricKey';
4
5
  export declare class EncryptedPrivateKey extends ValueObject<string> {
5
6
  private static readonly versions;
6
- static create(privateKey: PrivateKey, password: string | StringValueObject): Promise<EncryptedPrivateKey>;
7
+ static create(privateKey: PrivateKey, password: CryptoPassword): Promise<EncryptedPrivateKey>;
7
8
  constructor(encryptedPrivateKey: string | StringValueObject);
8
- decrypt(password: string | StringValueObject): Promise<PrivateKey>;
9
+ decrypt(password: CryptoPassword): Promise<PrivateKey>;
9
10
  needsReEncryption(): boolean;
10
11
  }
11
12
  //# sourceMappingURL=EncryptedPrivateKey.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"EncryptedPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPrivateKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAI9B;WAEkB,MAAM,CACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,mBAAmB,CAAC;gBASnB,mBAAmB,EAAE,MAAM,GAAG,iBAAiB;IAI9C,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5D,iBAAiB,IAAI,OAAO;CAYpC"}
@@ -1,16 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EncryptedPrivateKey = void 0;
4
+ const InvalidEncryptedPrivateKeyFormatError_1 = require("../../errors/InvalidEncryptedPrivateKeyFormatError");
5
+ const patterns_1 = require("../../patterns");
4
6
  const ValueObject_1 = require("../ValueObject");
5
7
  const EncryptedPrivateKeyLegacy_1 = require("./encrypted-private-key/EncryptedPrivateKeyLegacy");
6
8
  const EncryptedPrivateKeyV2_1 = require("./encrypted-private-key/EncryptedPrivateKeyV2");
9
+ const EncryptedPrivateKeyV3_1 = require("./encrypted-private-key/EncryptedPrivateKeyV3");
7
10
  class EncryptedPrivateKey extends ValueObject_1.ValueObject {
8
11
  static versions = [
9
12
  new EncryptedPrivateKeyLegacy_1.EncryptedPrivateKeyLegacy(),
10
13
  new EncryptedPrivateKeyV2_1.EncryptedPrivateKeyV2(),
14
+ new EncryptedPrivateKeyV3_1.EncryptedPrivateKeyV3(),
11
15
  ];
12
16
  static async create(privateKey, password) {
13
- const encryptedPrivateKey = await EncryptedPrivateKeyV2_1.EncryptedPrivateKeyV2.encrypt(privateKey, password);
17
+ const encryptedPrivateKey = await EncryptedPrivateKeyV3_1.EncryptedPrivateKeyV3.encrypt(privateKey, password);
14
18
  return new EncryptedPrivateKey(encryptedPrivateKey);
15
19
  }
16
20
  constructor(encryptedPrivateKey) {
@@ -19,9 +23,7 @@ class EncryptedPrivateKey extends ValueObject_1.ValueObject {
19
23
  async decrypt(password) {
20
24
  const parts = this.valueOf().split('.');
21
25
  const version = EncryptedPrivateKey.versions.find((handler) => handler.matches(parts));
22
- if (!version) {
23
- throw new Error('Invalid encrypted private key format');
24
- }
26
+ (0, patterns_1.assert)(version, new InvalidEncryptedPrivateKeyFormatError_1.InvalidEncryptedPrivateKeyFormatError());
25
27
  return version.decrypt(parts, password);
26
28
  }
27
29
  needsReEncryption() {
@@ -1 +1 @@
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
+ {"version":3,"file":"EncryptedPrivateKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/EncryptedPrivateKey.ts"],"names":[],"mappings":";;;AAAA,8GAA2G;AAC3G,6CAAwC;AAExC,gDAA6C;AAC7C,iGAA8F;AAC9F,yFAAsF;AACtF,yFAAsF;AAItF,MAAa,mBAAoB,SAAQ,yBAAmB;IAClD,MAAM,CAAU,QAAQ,GAAG;QACjC,IAAI,qDAAyB,EAAE;QAC/B,IAAI,6CAAqB,EAAE;QAC3B,IAAI,6CAAqB,EAAE;KAC5B,CAAC;IAEK,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,UAAsB,EACtB,QAAwB;QAExB,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,CAAC,QAAwB;QAC3C,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,IAAA,iBAAM,EAAC,OAAO,EAAE,IAAI,6EAAqC,EAAE,CAAC,CAAC;QAE7D,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;;AA7CH,kDA8CC"}
@@ -1,19 +1,19 @@
1
1
  import type { Buffer } from 'buffer';
2
2
  import { PrimitiveOf } from '../../interfaces';
3
- import { StringValueObject } from '../StringValueObject';
4
3
  import { CryptoPayload } from './CryptoPayload';
5
4
  import { EncryptedKeyPair } from './EncryptedKeyPair';
6
5
  import { EncryptedPayload } from './EncryptedPayload';
7
6
  import { PrivateKey } from './PrivateKey';
8
7
  import { PublicKey } from './PublicKey';
9
8
  import { Signature } from './Signature';
9
+ import { CryptoPassword } from './SymmetricKey';
10
10
  export declare class KeyPair {
11
11
  private readonly publicKey;
12
12
  private readonly privateKey;
13
13
  static generate(): Promise<KeyPair>;
14
14
  static fromPrimitives(primitives: PrimitiveOf<KeyPair>): KeyPair;
15
15
  constructor(publicKey: PublicKey, privateKey: PrivateKey);
16
- encryptKeyPair(password: string | StringValueObject): Promise<EncryptedKeyPair>;
16
+ encryptKeyPair(password: CryptoPassword): Promise<EncryptedKeyPair>;
17
17
  isValidSignature(payload: CryptoPayload, signature: Signature): boolean;
18
18
  sign(payload: CryptoPayload): Signature;
19
19
  toPrimitives(): {
@@ -1 +1 @@
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
+ {"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,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;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,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,cAAc,GACvB,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"}
@@ -20,7 +20,7 @@ class KeyPair {
20
20
  this.privateKey = privateKey;
21
21
  }
22
22
  async encryptKeyPair(password) {
23
- return await EncryptedKeyPair_1.EncryptedKeyPair.encryptKeyPair(this.publicKey, this.privateKey, password.valueOf());
23
+ return await EncryptedKeyPair_1.EncryptedKeyPair.encryptKeyPair(this.publicKey, this.privateKey, password);
24
24
  }
25
25
  isValidSignature(payload, signature) {
26
26
  return this.publicKey.isValidSignature(payload, signature);