@haskou/value-objects 2.8.0 → 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 (74) hide show
  1. package/README.md +28 -19
  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/CryptoAdapter.d.ts +3 -2
  21. package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +1 -1
  22. package/dist/value-objects/crypto/CryptoAdapter.js +9 -4
  23. package/dist/value-objects/crypto/CryptoAdapter.js.map +1 -1
  24. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +4 -4
  25. package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +1 -1
  26. package/dist/value-objects/crypto/EncryptedKeyPair.js.map +1 -1
  27. package/dist/value-objects/crypto/EncryptedPayload.d.ts.map +1 -1
  28. package/dist/value-objects/crypto/EncryptedPayload.js +5 -0
  29. package/dist/value-objects/crypto/EncryptedPayload.js.map +1 -1
  30. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +3 -2
  31. package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +1 -1
  32. package/dist/value-objects/crypto/EncryptedPrivateKey.js +6 -4
  33. package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +1 -1
  34. package/dist/value-objects/crypto/KeyPair.d.ts +2 -2
  35. package/dist/value-objects/crypto/KeyPair.d.ts.map +1 -1
  36. package/dist/value-objects/crypto/KeyPair.js +1 -1
  37. package/dist/value-objects/crypto/KeyPair.js.map +1 -1
  38. package/dist/value-objects/crypto/PrivateKey.d.ts +6 -3
  39. package/dist/value-objects/crypto/PrivateKey.d.ts.map +1 -1
  40. package/dist/value-objects/crypto/PrivateKey.js +43 -31
  41. package/dist/value-objects/crypto/PrivateKey.js.map +1 -1
  42. package/dist/value-objects/crypto/PublicKey.d.ts +3 -0
  43. package/dist/value-objects/crypto/PublicKey.d.ts.map +1 -1
  44. package/dist/value-objects/crypto/PublicKey.js +9 -2
  45. package/dist/value-objects/crypto/PublicKey.js.map +1 -1
  46. package/dist/value-objects/crypto/StrictBase64.d.ts +15 -0
  47. package/dist/value-objects/crypto/StrictBase64.d.ts.map +1 -0
  48. package/dist/value-objects/crypto/StrictBase64.js +36 -0
  49. package/dist/value-objects/crypto/StrictBase64.js.map +1 -0
  50. package/dist/value-objects/crypto/SymmetricKey.d.ts +14 -5
  51. package/dist/value-objects/crypto/SymmetricKey.d.ts.map +1 -1
  52. package/dist/value-objects/crypto/SymmetricKey.js +53 -18
  53. package/dist/value-objects/crypto/SymmetricKey.js.map +1 -1
  54. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +2 -2
  55. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +1 -1
  56. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +1 -1
  57. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +4 -3
  58. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +1 -1
  59. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +6 -3
  60. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +1 -1
  61. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.d.ts +24 -0
  62. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.d.ts.map +1 -0
  63. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.js +105 -0
  64. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV3.js.map +1 -0
  65. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +2 -2
  66. package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +1 -1
  67. package/dist/value-objects/index.d.ts +1 -0
  68. package/dist/value-objects/index.d.ts.map +1 -1
  69. package/dist/value-objects/index.js +1 -0
  70. package/dist/value-objects/index.js.map +1 -1
  71. package/dist/value-objects/time/DayOfWeek.d.ts.map +1 -1
  72. package/dist/value-objects/time/DayOfWeek.js +2 -3
  73. package/dist/value-objects/time/DayOfWeek.js.map +1 -1
  74. package/package.json +1 -1
package/README.md CHANGED
@@ -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)
@@ -94,7 +95,7 @@ your application.
94
95
  - **`EncryptedPayload`** - Base container for dot-separated encrypted payload formats
95
96
  - **`AsymmetricEncryptedPayload`** - Payload encrypted for an Ed25519/X25519 recipient key pair
96
97
  - **`SymmetricEncryptedPayload`** - Payload encrypted with a symmetric AES-256-GCM key
97
- - **`SymmetricKey`** - 32-byte AES-256-GCM key, randomly generated or deterministically derived from a password and salt with scrypt
98
+ - **`SymmetricKey`** - 32-byte AES-256-GCM key, randomly generated or deterministically derived from a `Password` and salt with scrypt
98
99
  - **`EncryptedPrivateKey`** - Password-protected private key encryption using scrypt + AES-256-GCM
99
100
  - **`EncryptedKeyPair`** - Key pair with encrypted private key
100
101
 
@@ -103,28 +104,34 @@ Technical notes:
103
104
  - Asymmetric payload encryption is a classical hybrid scheme. It generates an ephemeral
104
105
  X25519 key pair, converts the recipient Ed25519 key material to Montgomery
105
106
  form for X25519 key agreement, derives a shared secret, then derives a
106
- 256-bit AES key with SHA-256 and encrypts the payload with AES-256-GCM.
107
- - The asymmetric payload format is
108
- `ephemeralPublicKey.iv.cipherText.tag`, with Base64-encoded fields,
109
- 32-byte ephemeral public keys, 12-byte random IVs, and 16-byte
110
- authentication tags. Tampered ciphertext, IVs, tags, or key-agreement data
111
- fail authentication during decryption.
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.
112
116
  - Symmetric payload encryption uses a 32-byte AES-256-GCM key directly. The
113
117
  payload format is `v1.aes-256-gcm.iv.cipherText.tag`, with Base64-encoded
114
118
  IV, ciphertext, and tag fields.
115
- - `SymmetricKey.generate()` creates a random 256-bit key. `SymmetricKey.fromPassword()`
116
- derives the same 256-bit key from the same password, salt, and scrypt
117
- parameters. Encryption itself is still randomized because each payload uses a
118
- fresh 12-byte IV.
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.
119
124
  - A 32-byte key provides the AES-256 key size. Real security depends on using
120
125
  either a high-entropy random key or a strong password with a unique,
121
126
  non-empty salt. AES-GCM also requires that IVs do not repeat for the same key;
122
127
  the library generates a random 96-bit IV for each encryption.
123
128
  - Payload encryption is intended for small payloads and is currently capped at
124
129
  1 MiB before encryption.
125
- - Encrypted private keys use a separate password-based scheme:
126
- `scrypt(N=16384,r=8,p=1)` with a 16-byte salt, then AES-256-GCM with a
127
- 12-byte IV and 16-byte authentication tag.
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.
128
135
  - This is not a post-quantum cryptography scheme. Ed25519 and X25519 are
129
136
  classical elliptic-curve primitives, so neither signatures nor payload key
130
137
  agreement are post-quantum secure.
@@ -194,8 +201,9 @@ const signature = keyPair.sign('hello world'); // Sign a message
194
201
  keyPair.isValidSignature('hello world', signature); // true
195
202
 
196
203
  // Encrypted key pairs
197
- const encrypted = await keyPair.encryptKeyPair('my-password');
198
- const sig = await 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);
199
207
  encrypted.isValidSignature('message', sig); // true
200
208
 
201
209
  // Symmetric payload encryption
@@ -205,9 +213,10 @@ const plaintext = symmetricKey.decrypt(symmetricPayload);
205
213
  console.log(plaintext.toString()); // 'secret data'
206
214
 
207
215
  // Deterministic key derivation from a password and explicit salt
208
- const derivedKey = await SymmetricKey.fromPassword('my-password', {
209
- salt: 'stable-application-salt',
210
- });
216
+ const derivedKey = await SymmetricKey.fromPasswordUsingOwasp(
217
+ cryptoPassword,
218
+ { salt: 'stable-application-salt' },
219
+ );
211
220
 
212
221
  // Media
213
222
  const media = new Media('hello world');
@@ -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"}
@@ -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 +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,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5E,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,SAAS,IAAI,sBAAsB;CAa3C"}
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"}
@@ -8,6 +8,11 @@ class EncryptedPayload extends ValueObject_1.ValueObject {
8
8
  if (parts.length === 4) {
9
9
  return 'asymmetric';
10
10
  }
11
+ if (parts.length === 6 &&
12
+ parts[0] === 'v2' &&
13
+ parts[1] === 'x25519-hkdf-sha256-aes-256-gcm') {
14
+ return 'asymmetric';
15
+ }
11
16
  if (parts.length === 5 && parts[0] === 'v1' && parts[1] === 'aes-256-gcm') {
12
17
  return 'symmetric';
13
18
  }
@@ -1 +1 @@
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,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;AAdD,4CAcC"}
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);
@@ -1 +1 @@
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
+ {"version":3,"file":"KeyPair.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/KeyPair.ts"],"names":[],"mappings":";;;AAIA,yDAAsD;AAEtD,6CAA0C;AAC1C,2CAAwC;AAIxC,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,QAAwB;QAExB,OAAO,MAAM,mCAAgB,CAAC,cAAc,CAC1C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,QAAQ,CACT,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"}
@@ -7,21 +7,24 @@ import { PublicKey } from './PublicKey';
7
7
  import { Signature } from './Signature';
8
8
  export declare class PrivateKey extends Key {
9
9
  private static readonly LENGTH;
10
- private static readonly ENCRYPTED_PAYLOAD_PARTS;
10
+ private static readonly LEGACY_ENCRYPTED_PAYLOAD_PARTS;
11
+ private static readonly OWASP_ENCRYPTED_PAYLOAD_PARTS;
11
12
  private static readonly EPHEMERAL_PUBLIC_KEY_LENGTH;
12
13
  private static readonly IV_LENGTH;
13
14
  private static readonly TAG_LENGTH;
14
15
  private static readonly MAX_CIPHERTEXT_LENGTH;
15
- private static readonly BASE64_PATTERN;
16
+ private static readonly PAYLOAD_ALGORITHM;
17
+ private static readonly PAYLOAD_VERSION;
16
18
  private static readonly PATTERN;
17
- private static getBase64DecodedLength;
18
19
  private static ensureIsBase64;
19
20
  private static ensureBase64DecodedLength;
20
21
  private static decodeBase64;
22
+ private static getPayloadAad;
21
23
  static fromPEM(pem: string | StringValueObject): PrivateKey;
22
24
  static generate(): PrivateKey;
23
25
  constructor(value: string | StringValueObject);
24
26
  private ensureIsValidPrivateKey;
27
+ private decryptPayload;
25
28
  getPublicKey(): PublicKey;
26
29
  sign(payload: CryptoPayload): Signature;
27
30
  decrypt(encryptedPayload: EncryptedPayload): Buffer;
@@ -1 +1 @@
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;AAOhC,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,uBAAuB,CAAK;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAM;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAe;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAC+B;IAErE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACiD;IAEhF,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAMrC,OAAO,CAAC,MAAM,CAAC,cAAc;IAa7B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAYxC,OAAO,CAAC,MAAM,CAAC,YAAY;WASb,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;IAUvC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CAsD3D"}
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;AAOhC,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;AAGxC,qBAAa,UAAW,SAAQ,GAAG;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAK;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAK;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAM;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAe;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IAE7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;IAE/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACiD;IAEhF,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAYxC,OAAO,CAAC,MAAM,CAAC,YAAY;IAU3B,OAAO,CAAC,MAAM,CAAC,aAAa;WAMd,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,UAAU;WAIpD,QAAQ,IAAI,UAAU;gBAIxB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,cAAc;IAoEf,YAAY,IAAI,SAAS;IAIzB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS;IAUvC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CAwC3D"}