@haskou/value-objects 4.1.0 → 6.0.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.
- package/README.md +78 -176
- package/dist/errors/InvalidPasswordError.d.ts +5 -0
- package/dist/errors/InvalidPasswordError.d.ts.map +1 -0
- package/dist/errors/InvalidPasswordError.js +11 -0
- package/dist/errors/InvalidPasswordError.js.map +1 -0
- package/dist/errors/index.d.ts +1 -2
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +1 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/interfaces/PrimitiveOf.d.ts +5 -1
- package/dist/interfaces/PrimitiveOf.d.ts.map +1 -1
- package/dist/patterns/Assert.d.ts +1 -1
- package/dist/patterns/Assert.d.ts.map +1 -1
- package/dist/types/Primitive.d.ts +1 -1
- package/dist/types/Primitive.d.ts.map +1 -1
- package/dist/value-objects/Color.d.ts +1 -1
- package/dist/value-objects/Color.d.ts.map +1 -1
- package/dist/value-objects/Color.js +5 -2
- package/dist/value-objects/Color.js.map +1 -1
- package/dist/value-objects/Email.d.ts +1 -0
- package/dist/value-objects/Email.d.ts.map +1 -1
- package/dist/value-objects/Email.js +2 -1
- package/dist/value-objects/Email.js.map +1 -1
- package/dist/value-objects/Enum.d.ts +1 -1
- package/dist/value-objects/Enum.d.ts.map +1 -1
- package/dist/value-objects/Enum.js +1 -1
- package/dist/value-objects/Enum.js.map +1 -1
- package/dist/value-objects/NumberValueObject.js +1 -1
- package/dist/value-objects/NumberValueObject.js.map +1 -1
- package/dist/value-objects/Password.d.ts +8 -0
- package/dist/value-objects/Password.d.ts.map +1 -0
- package/dist/value-objects/Password.js +28 -0
- package/dist/value-objects/Password.js.map +1 -0
- package/dist/value-objects/UniqueObjectArray.d.ts.map +1 -1
- package/dist/value-objects/ValueObject.d.ts +1 -0
- package/dist/value-objects/ValueObject.d.ts.map +1 -1
- package/dist/value-objects/ValueObject.js +7 -1
- package/dist/value-objects/ValueObject.js.map +1 -1
- package/dist/value-objects/coordinates/Latitude.d.ts.map +1 -1
- package/dist/value-objects/coordinates/Latitude.js +5 -4
- package/dist/value-objects/coordinates/Latitude.js.map +1 -1
- package/dist/value-objects/coordinates/Longitude.d.ts.map +1 -1
- package/dist/value-objects/coordinates/Longitude.js +5 -4
- package/dist/value-objects/coordinates/Longitude.js.map +1 -1
- package/dist/value-objects/hashes/MD5Hash.d.ts +0 -3
- package/dist/value-objects/hashes/MD5Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/MD5Hash.js +0 -4
- package/dist/value-objects/hashes/MD5Hash.js.map +1 -1
- package/dist/value-objects/hashes/SHA256Hash.d.ts +0 -3
- package/dist/value-objects/hashes/SHA256Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/SHA256Hash.js +0 -4
- package/dist/value-objects/hashes/SHA256Hash.js.map +1 -1
- package/dist/value-objects/hashes/SHA512Hash.d.ts +0 -3
- package/dist/value-objects/hashes/SHA512Hash.d.ts.map +1 -1
- package/dist/value-objects/hashes/SHA512Hash.js +0 -4
- package/dist/value-objects/hashes/SHA512Hash.js.map +1 -1
- package/dist/value-objects/ids/ShortId.d.ts +2 -0
- package/dist/value-objects/ids/ShortId.d.ts.map +1 -1
- package/dist/value-objects/ids/ShortId.js +12 -3
- package/dist/value-objects/ids/ShortId.js.map +1 -1
- package/dist/value-objects/ids/UUID.d.ts +3 -0
- package/dist/value-objects/ids/UUID.d.ts.map +1 -1
- package/dist/value-objects/ids/UUID.js +23 -4
- package/dist/value-objects/ids/UUID.js.map +1 -1
- package/dist/value-objects/index.d.ts +1 -1
- package/dist/value-objects/index.d.ts.map +1 -1
- package/dist/value-objects/index.js +1 -1
- package/dist/value-objects/index.js.map +1 -1
- package/dist/value-objects/media/Media.d.ts +2 -0
- package/dist/value-objects/media/Media.d.ts.map +1 -1
- package/dist/value-objects/media/Media.js +14 -1
- package/dist/value-objects/media/Media.js.map +1 -1
- package/dist/value-objects/time/CalendarDay.d.ts +2 -1
- package/dist/value-objects/time/CalendarDay.d.ts.map +1 -1
- package/dist/value-objects/time/CalendarDay.js +25 -11
- package/dist/value-objects/time/CalendarDay.js.map +1 -1
- package/dist/value-objects/time/DayOfWeek.d.ts.map +1 -1
- package/dist/value-objects/time/DayOfWeek.js +2 -3
- package/dist/value-objects/time/DayOfWeek.js.map +1 -1
- package/dist/value-objects/time/Duration.js +2 -2
- package/dist/value-objects/time/Duration.js.map +1 -1
- package/dist/value-objects/time/Hour.d.ts +3 -0
- package/dist/value-objects/time/Hour.d.ts.map +1 -1
- package/dist/value-objects/time/Hour.js +30 -31
- package/dist/value-objects/time/Hour.js.map +1 -1
- package/dist/value-objects/time/Timestamp.d.ts +3 -1
- package/dist/value-objects/time/Timestamp.d.ts.map +1 -1
- package/dist/value-objects/time/Timestamp.js +50 -9
- package/dist/value-objects/time/Timestamp.js.map +1 -1
- package/dist/value-objects/time/TimestampInterval.d.ts +2 -4
- package/dist/value-objects/time/TimestampInterval.d.ts.map +1 -1
- package/dist/value-objects/time/TimestampInterval.js +0 -10
- package/dist/value-objects/time/TimestampInterval.js.map +1 -1
- package/package.json +50 -33
- package/dist/errors/InvalidKeyError.d.ts +0 -5
- package/dist/errors/InvalidKeyError.d.ts.map +0 -1
- package/dist/errors/InvalidKeyError.js +0 -11
- package/dist/errors/InvalidKeyError.js.map +0 -1
- package/dist/errors/InvalidSignatureError.d.ts +0 -5
- package/dist/errors/InvalidSignatureError.d.ts.map +0 -1
- package/dist/errors/InvalidSignatureError.js +0 -11
- package/dist/errors/InvalidSignatureError.js.map +0 -1
- package/dist/value-objects/crypto/CryptoAdapter.d.ts +0 -30
- package/dist/value-objects/crypto/CryptoAdapter.d.ts.map +0 -1
- package/dist/value-objects/crypto/CryptoAdapter.js +0 -96
- package/dist/value-objects/crypto/CryptoAdapter.js.map +0 -1
- package/dist/value-objects/crypto/CryptoPayload.d.ts +0 -5
- package/dist/value-objects/crypto/CryptoPayload.d.ts.map +0 -1
- package/dist/value-objects/crypto/CryptoPayload.js +0 -3
- package/dist/value-objects/crypto/CryptoPayload.js.map +0 -1
- package/dist/value-objects/crypto/EncryptedKeyPair.d.ts +0 -25
- package/dist/value-objects/crypto/EncryptedKeyPair.d.ts.map +0 -1
- package/dist/value-objects/crypto/EncryptedKeyPair.js +0 -42
- package/dist/value-objects/crypto/EncryptedKeyPair.js.map +0 -1
- package/dist/value-objects/crypto/EncryptedPayload.d.ts +0 -4
- package/dist/value-objects/crypto/EncryptedPayload.d.ts.map +0 -1
- package/dist/value-objects/crypto/EncryptedPayload.js +0 -8
- package/dist/value-objects/crypto/EncryptedPayload.js.map +0 -1
- package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts +0 -11
- package/dist/value-objects/crypto/EncryptedPrivateKey.d.ts.map +0 -1
- package/dist/value-objects/crypto/EncryptedPrivateKey.js +0 -37
- package/dist/value-objects/crypto/EncryptedPrivateKey.js.map +0 -1
- package/dist/value-objects/crypto/Key.d.ts +0 -4
- package/dist/value-objects/crypto/Key.d.ts.map +0 -1
- package/dist/value-objects/crypto/Key.js +0 -8
- package/dist/value-objects/crypto/Key.js.map +0 -1
- package/dist/value-objects/crypto/KeyPair.d.ts +0 -26
- package/dist/value-objects/crypto/KeyPair.d.ts.map +0 -1
- package/dist/value-objects/crypto/KeyPair.js +0 -45
- package/dist/value-objects/crypto/KeyPair.js.map +0 -1
- package/dist/value-objects/crypto/PrivateKey.d.ts +0 -19
- package/dist/value-objects/crypto/PrivateKey.d.ts.map +0 -1
- package/dist/value-objects/crypto/PrivateKey.js +0 -56
- package/dist/value-objects/crypto/PrivateKey.js.map +0 -1
- package/dist/value-objects/crypto/PublicKey.d.ts +0 -15
- package/dist/value-objects/crypto/PublicKey.d.ts.map +0 -1
- package/dist/value-objects/crypto/PublicKey.js +0 -54
- package/dist/value-objects/crypto/PublicKey.js.map +0 -1
- package/dist/value-objects/crypto/Signature.d.ts +0 -11
- package/dist/value-objects/crypto/Signature.d.ts.map +0 -1
- package/dist/value-objects/crypto/Signature.js +0 -26
- package/dist/value-objects/crypto/Signature.js.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts +0 -21
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.d.ts.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js +0 -56
- package/dist/value-objects/crypto/encrypted-private-key/CryptoDerivation.js.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts +0 -14
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.d.ts.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js +0 -33
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyLegacy.js.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts +0 -20
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.d.ts.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js +0 -69
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyV2.js.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts +0 -8
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.d.ts.map +0 -1
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js +0 -10
- package/dist/value-objects/crypto/encrypted-private-key/EncryptedPrivateKeyVersion.js.map +0 -1
- package/dist/value-objects/crypto/index.d.ts +0 -9
- package/dist/value-objects/crypto/index.d.ts.map +0 -1
- package/dist/value-objects/crypto/index.js +0 -12
- package/dist/value-objects/crypto/index.js.map +0 -1
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CryptoAdapter = void 0;
|
|
4
|
-
const aes_js_1 = require("@noble/ciphers/aes.js");
|
|
5
|
-
const ed25519_js_1 = require("@noble/curves/ed25519.js");
|
|
6
|
-
const legacy_js_1 = require("@noble/hashes/legacy.js");
|
|
7
|
-
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
8
|
-
const utils_js_1 = require("@noble/hashes/utils.js");
|
|
9
|
-
const buffer_1 = require("buffer");
|
|
10
|
-
const privateKeyDerPrefix = (0, utils_js_1.hexToBytes)('302e020100300506032b657004220420');
|
|
11
|
-
const publicKeyDerPrefix = (0, utils_js_1.hexToBytes)('302a300506032b6570032100');
|
|
12
|
-
const gcmTagLength = 16;
|
|
13
|
-
class CryptoAdapter {
|
|
14
|
-
static pemToDer(pem) {
|
|
15
|
-
const base64 = pem
|
|
16
|
-
.replace(/-----BEGIN (?:PRIVATE|PUBLIC) KEY-----/, '')
|
|
17
|
-
.replace(/-----END (?:PRIVATE|PUBLIC) KEY-----/, '')
|
|
18
|
-
.replace(/\s/g, '');
|
|
19
|
-
return buffer_1.Buffer.from(base64, 'base64');
|
|
20
|
-
}
|
|
21
|
-
static wrapPem(label, der) {
|
|
22
|
-
return `-----BEGIN ${label}-----\n${buffer_1.Buffer.from(der).toString('base64')}\n-----END ${label}-----\n`;
|
|
23
|
-
}
|
|
24
|
-
static decryptAes256Gcm(key, iv, cipherText, tag) {
|
|
25
|
-
return buffer_1.Buffer.from((0, aes_js_1.gcm)(key, iv).decrypt((0, utils_js_1.concatBytes)(cipherText, tag)));
|
|
26
|
-
}
|
|
27
|
-
static deriveEncryptionKey(sharedSecret, ephemeralPublicKey) {
|
|
28
|
-
return (0, sha2_js_1.sha256)((0, utils_js_1.concatBytes)(sharedSecret, ephemeralPublicKey));
|
|
29
|
-
}
|
|
30
|
-
static encryptAes256Gcm(key, iv, message) {
|
|
31
|
-
const encrypted = (0, aes_js_1.gcm)(key, iv).encrypt(message);
|
|
32
|
-
return {
|
|
33
|
-
cipherText: encrypted.subarray(0, -gcmTagLength),
|
|
34
|
-
tag: encrypted.subarray(-gcmTagLength),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
static getPublicKey(privateKeyPem) {
|
|
38
|
-
return this.publicKeyToPem(ed25519_js_1.ed25519.getPublicKey(this.privateKeyToSeed(privateKeyPem)));
|
|
39
|
-
}
|
|
40
|
-
static hash(algorithm, value) {
|
|
41
|
-
const bytes = this.toBytes(value);
|
|
42
|
-
const hash = {
|
|
43
|
-
md5: legacy_js_1.md5,
|
|
44
|
-
sha256: sha2_js_1.sha256,
|
|
45
|
-
sha512: sha2_js_1.sha512,
|
|
46
|
-
}[algorithm];
|
|
47
|
-
return (0, utils_js_1.bytesToHex)(hash(bytes));
|
|
48
|
-
}
|
|
49
|
-
static privateKeyToPem(seed) {
|
|
50
|
-
return this.wrapPem('PRIVATE KEY', (0, utils_js_1.concatBytes)(privateKeyDerPrefix, seed));
|
|
51
|
-
}
|
|
52
|
-
static privateKeyToSeed(privateKeyPem) {
|
|
53
|
-
return this.pemToDer(privateKeyPem).subarray(privateKeyDerPrefix.length);
|
|
54
|
-
}
|
|
55
|
-
static privateKeyToX25519(privateKeyPem) {
|
|
56
|
-
return ed25519_js_1.ed25519.utils.toMontgomerySecret(this.privateKeyToSeed(privateKeyPem));
|
|
57
|
-
}
|
|
58
|
-
static publicKeyToPem(publicKey) {
|
|
59
|
-
return this.wrapPem('PUBLIC KEY', (0, utils_js_1.concatBytes)(publicKeyDerPrefix, publicKey));
|
|
60
|
-
}
|
|
61
|
-
static publicKeyToX25519(publicKeyPem) {
|
|
62
|
-
return ed25519_js_1.ed25519.utils.toMontgomery(this.publicKeyToBytes(publicKeyPem));
|
|
63
|
-
}
|
|
64
|
-
static publicKeyToBytes(publicKeyPem) {
|
|
65
|
-
return this.pemToDer(publicKeyPem).subarray(publicKeyDerPrefix.length);
|
|
66
|
-
}
|
|
67
|
-
static randomBytes(size) {
|
|
68
|
-
return buffer_1.Buffer.from((0, utils_js_1.randomBytes)(size));
|
|
69
|
-
}
|
|
70
|
-
static randomPrivateKeyPem() {
|
|
71
|
-
return this.privateKeyToPem(ed25519_js_1.ed25519.utils.randomSecretKey());
|
|
72
|
-
}
|
|
73
|
-
static sign(message, privateKeyPem) {
|
|
74
|
-
return buffer_1.Buffer.from(ed25519_js_1.ed25519.sign(message, this.privateKeyToSeed(privateKeyPem)));
|
|
75
|
-
}
|
|
76
|
-
static toBytes(value) {
|
|
77
|
-
if (value instanceof Uint8Array) {
|
|
78
|
-
return value;
|
|
79
|
-
}
|
|
80
|
-
return buffer_1.Buffer.from(value);
|
|
81
|
-
}
|
|
82
|
-
static verify(signature, message, publicKeyPem) {
|
|
83
|
-
return ed25519_js_1.ed25519.verify(signature, message, this.publicKeyToBytes(publicKeyPem));
|
|
84
|
-
}
|
|
85
|
-
static x25519PublicKey(privateKey) {
|
|
86
|
-
return ed25519_js_1.x25519.getPublicKey(privateKey);
|
|
87
|
-
}
|
|
88
|
-
static x25519SharedSecret(privateKey, publicKey) {
|
|
89
|
-
return ed25519_js_1.x25519.getSharedSecret(privateKey, publicKey);
|
|
90
|
-
}
|
|
91
|
-
static x25519RandomPrivateKey() {
|
|
92
|
-
return ed25519_js_1.x25519.utils.randomSecretKey();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
exports.CryptoAdapter = CryptoAdapter;
|
|
96
|
-
//# sourceMappingURL=CryptoAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoAdapter.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoPayload.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,KAAK,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoPayload.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/CryptoPayload.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Buffer } from 'buffer';
|
|
2
|
-
import { PrimitiveOf } from '../../interfaces';
|
|
3
|
-
import { StringValueObject } from '../StringValueObject';
|
|
4
|
-
import { CryptoPayload } from './CryptoPayload';
|
|
5
|
-
import { EncryptedPayload } from './EncryptedPayload';
|
|
6
|
-
import { EncryptedPrivateKey } from './EncryptedPrivateKey';
|
|
7
|
-
import { PrivateKey } from './PrivateKey';
|
|
8
|
-
import { PublicKey } from './PublicKey';
|
|
9
|
-
import { Signature } from './Signature';
|
|
10
|
-
export declare class EncryptedKeyPair {
|
|
11
|
-
private readonly publicKey;
|
|
12
|
-
private readonly encryptedPrivateKey;
|
|
13
|
-
static encryptKeyPair(publicKey: PublicKey, privateKey: PrivateKey, password: string | StringValueObject): Promise<EncryptedKeyPair>;
|
|
14
|
-
static fromPrimitives(primitives: PrimitiveOf<EncryptedKeyPair>): EncryptedKeyPair;
|
|
15
|
-
constructor(publicKey: PublicKey, encryptedPrivateKey: EncryptedPrivateKey);
|
|
16
|
-
isValidSignature(payload: CryptoPayload, signature: Signature): boolean;
|
|
17
|
-
sign(payload: CryptoPayload, password: string | StringValueObject): Promise<Signature>;
|
|
18
|
-
toPrimitives(): {
|
|
19
|
-
encryptedPrivateKey: string;
|
|
20
|
-
publicKey: string;
|
|
21
|
-
};
|
|
22
|
-
encrypt(payload: CryptoPayload): EncryptedPayload;
|
|
23
|
-
decrypt(encryptedPayload: EncryptedPayload, password: string | StringValueObject): Promise<Buffer>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=EncryptedKeyPair.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EncryptedKeyPair = void 0;
|
|
4
|
-
const EncryptedPrivateKey_1 = require("./EncryptedPrivateKey");
|
|
5
|
-
const PublicKey_1 = require("./PublicKey");
|
|
6
|
-
class EncryptedKeyPair {
|
|
7
|
-
publicKey;
|
|
8
|
-
encryptedPrivateKey;
|
|
9
|
-
static async encryptKeyPair(publicKey, privateKey, password) {
|
|
10
|
-
const encryptedPrivateKey = await EncryptedPrivateKey_1.EncryptedPrivateKey.create(privateKey, password);
|
|
11
|
-
return new EncryptedKeyPair(publicKey, encryptedPrivateKey);
|
|
12
|
-
}
|
|
13
|
-
static fromPrimitives(primitives) {
|
|
14
|
-
return new EncryptedKeyPair(new PublicKey_1.PublicKey(primitives.publicKey), new EncryptedPrivateKey_1.EncryptedPrivateKey(primitives.encryptedPrivateKey));
|
|
15
|
-
}
|
|
16
|
-
constructor(publicKey, encryptedPrivateKey) {
|
|
17
|
-
this.publicKey = publicKey;
|
|
18
|
-
this.encryptedPrivateKey = encryptedPrivateKey;
|
|
19
|
-
}
|
|
20
|
-
isValidSignature(payload, signature) {
|
|
21
|
-
return this.publicKey.isValidSignature(payload, signature);
|
|
22
|
-
}
|
|
23
|
-
async sign(payload, password) {
|
|
24
|
-
const privateKey = await this.encryptedPrivateKey.decrypt(password);
|
|
25
|
-
return privateKey.sign(payload);
|
|
26
|
-
}
|
|
27
|
-
toPrimitives() {
|
|
28
|
-
return {
|
|
29
|
-
encryptedPrivateKey: this.encryptedPrivateKey.valueOf(),
|
|
30
|
-
publicKey: this.publicKey.valueOf(),
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
encrypt(payload) {
|
|
34
|
-
return this.publicKey.encrypt(payload);
|
|
35
|
-
}
|
|
36
|
-
async decrypt(encryptedPayload, password) {
|
|
37
|
-
const privateKey = await this.encryptedPrivateKey.decrypt(password);
|
|
38
|
-
return privateKey.decrypt(encryptedPayload);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.EncryptedKeyPair = EncryptedKeyPair;
|
|
42
|
-
//# sourceMappingURL=EncryptedKeyPair.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EncryptedPayload = void 0;
|
|
4
|
-
const ValueObject_1 = require("../ValueObject");
|
|
5
|
-
class EncryptedPayload extends ValueObject_1.ValueObject {
|
|
6
|
-
}
|
|
7
|
-
exports.EncryptedPayload = EncryptedPayload;
|
|
8
|
-
//# sourceMappingURL=EncryptedPayload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,11 +0,0 @@
|
|
|
1
|
-
import { StringValueObject } from '../StringValueObject';
|
|
2
|
-
import { ValueObject } from '../ValueObject';
|
|
3
|
-
import { PrivateKey } from './PrivateKey';
|
|
4
|
-
export declare class EncryptedPrivateKey extends ValueObject<string> {
|
|
5
|
-
private static readonly versions;
|
|
6
|
-
static create(privateKey: PrivateKey, password: string | StringValueObject): Promise<EncryptedPrivateKey>;
|
|
7
|
-
constructor(encryptedPrivateKey: string | StringValueObject);
|
|
8
|
-
decrypt(password: string | StringValueObject): Promise<PrivateKey>;
|
|
9
|
-
needsReEncryption(): boolean;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=EncryptedPrivateKey.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EncryptedPrivateKey = void 0;
|
|
4
|
-
const ValueObject_1 = require("../ValueObject");
|
|
5
|
-
const EncryptedPrivateKeyLegacy_1 = require("./encrypted-private-key/EncryptedPrivateKeyLegacy");
|
|
6
|
-
const EncryptedPrivateKeyV2_1 = require("./encrypted-private-key/EncryptedPrivateKeyV2");
|
|
7
|
-
class EncryptedPrivateKey extends ValueObject_1.ValueObject {
|
|
8
|
-
static versions = [
|
|
9
|
-
new EncryptedPrivateKeyLegacy_1.EncryptedPrivateKeyLegacy(),
|
|
10
|
-
new EncryptedPrivateKeyV2_1.EncryptedPrivateKeyV2(),
|
|
11
|
-
];
|
|
12
|
-
static async create(privateKey, password) {
|
|
13
|
-
const encryptedPrivateKey = await EncryptedPrivateKeyV2_1.EncryptedPrivateKeyV2.encrypt(privateKey, password);
|
|
14
|
-
return new EncryptedPrivateKey(encryptedPrivateKey);
|
|
15
|
-
}
|
|
16
|
-
constructor(encryptedPrivateKey) {
|
|
17
|
-
super(encryptedPrivateKey?.valueOf());
|
|
18
|
-
}
|
|
19
|
-
async decrypt(password) {
|
|
20
|
-
const parts = this.valueOf().split('.');
|
|
21
|
-
const version = EncryptedPrivateKey.versions.find((handler) => handler.matches(parts));
|
|
22
|
-
if (!version) {
|
|
23
|
-
throw new Error('Invalid encrypted private key format');
|
|
24
|
-
}
|
|
25
|
-
return version.decrypt(parts, password);
|
|
26
|
-
}
|
|
27
|
-
needsReEncryption() {
|
|
28
|
-
const parts = this.valueOf().split('.');
|
|
29
|
-
const version = EncryptedPrivateKey.versions.find((handler) => handler.matches(parts));
|
|
30
|
-
if (!version) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return version.needsReEncryption();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.EncryptedPrivateKey = EncryptedPrivateKey;
|
|
37
|
-
//# sourceMappingURL=EncryptedPrivateKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/Key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,8BAAsB,GAAI,SAAQ,WAAW,CAAC,MAAM,CAAC;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/Key.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAE7C,MAAsB,GAAI,SAAQ,yBAAmB;CAAG;AAAxD,kBAAwD"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { Buffer } from 'buffer';
|
|
2
|
-
import { PrimitiveOf } from '../../interfaces';
|
|
3
|
-
import { StringValueObject } from '../StringValueObject';
|
|
4
|
-
import { CryptoPayload } from './CryptoPayload';
|
|
5
|
-
import { EncryptedKeyPair } from './EncryptedKeyPair';
|
|
6
|
-
import { EncryptedPayload } from './EncryptedPayload';
|
|
7
|
-
import { PrivateKey } from './PrivateKey';
|
|
8
|
-
import { PublicKey } from './PublicKey';
|
|
9
|
-
import { Signature } from './Signature';
|
|
10
|
-
export declare class KeyPair {
|
|
11
|
-
private readonly publicKey;
|
|
12
|
-
private readonly privateKey;
|
|
13
|
-
static generate(): Promise<KeyPair>;
|
|
14
|
-
static fromPrimitives(primitives: PrimitiveOf<KeyPair>): KeyPair;
|
|
15
|
-
constructor(publicKey: PublicKey, privateKey: PrivateKey);
|
|
16
|
-
encryptKeyPair(password: string | StringValueObject): Promise<EncryptedKeyPair>;
|
|
17
|
-
isValidSignature(payload: CryptoPayload, signature: Signature): boolean;
|
|
18
|
-
sign(payload: CryptoPayload): Signature;
|
|
19
|
-
toPrimitives(): {
|
|
20
|
-
privateKey: string;
|
|
21
|
-
publicKey: string;
|
|
22
|
-
};
|
|
23
|
-
encrypt(payload: CryptoPayload): EncryptedPayload;
|
|
24
|
-
decrypt(encryptedPayload: EncryptedPayload): Buffer;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=KeyPair.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KeyPair = void 0;
|
|
4
|
-
const EncryptedKeyPair_1 = require("./EncryptedKeyPair");
|
|
5
|
-
const PrivateKey_1 = require("./PrivateKey");
|
|
6
|
-
const PublicKey_1 = require("./PublicKey");
|
|
7
|
-
class KeyPair {
|
|
8
|
-
publicKey;
|
|
9
|
-
privateKey;
|
|
10
|
-
static generate() {
|
|
11
|
-
const privateKey = PrivateKey_1.PrivateKey.generate();
|
|
12
|
-
const publicKey = privateKey.getPublicKey();
|
|
13
|
-
return Promise.resolve(new KeyPair(publicKey, privateKey));
|
|
14
|
-
}
|
|
15
|
-
static fromPrimitives(primitives) {
|
|
16
|
-
return new KeyPair(new PublicKey_1.PublicKey(primitives.publicKey), new PrivateKey_1.PrivateKey(primitives.privateKey));
|
|
17
|
-
}
|
|
18
|
-
constructor(publicKey, privateKey) {
|
|
19
|
-
this.publicKey = publicKey;
|
|
20
|
-
this.privateKey = privateKey;
|
|
21
|
-
}
|
|
22
|
-
async encryptKeyPair(password) {
|
|
23
|
-
return await EncryptedKeyPair_1.EncryptedKeyPair.encryptKeyPair(this.publicKey, this.privateKey, password.valueOf());
|
|
24
|
-
}
|
|
25
|
-
isValidSignature(payload, signature) {
|
|
26
|
-
return this.publicKey.isValidSignature(payload, signature);
|
|
27
|
-
}
|
|
28
|
-
sign(payload) {
|
|
29
|
-
return this.privateKey.sign(payload);
|
|
30
|
-
}
|
|
31
|
-
toPrimitives() {
|
|
32
|
-
return {
|
|
33
|
-
privateKey: this.privateKey.valueOf(),
|
|
34
|
-
publicKey: this.publicKey.valueOf(),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
encrypt(payload) {
|
|
38
|
-
return this.publicKey.encrypt(payload);
|
|
39
|
-
}
|
|
40
|
-
decrypt(encryptedPayload) {
|
|
41
|
-
return this.privateKey.decrypt(encryptedPayload);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.KeyPair = KeyPair;
|
|
45
|
-
//# sourceMappingURL=KeyPair.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,19 +0,0 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
2
|
-
import { StringValueObject } from '../StringValueObject';
|
|
3
|
-
import { CryptoPayload } from './CryptoPayload';
|
|
4
|
-
import { EncryptedPayload } from './EncryptedPayload';
|
|
5
|
-
import { Key } from './Key';
|
|
6
|
-
import { PublicKey } from './PublicKey';
|
|
7
|
-
import { Signature } from './Signature';
|
|
8
|
-
export declare class PrivateKey extends Key {
|
|
9
|
-
private static readonly LENGTH;
|
|
10
|
-
private static readonly PATTERN;
|
|
11
|
-
static fromPEM(pem: string | StringValueObject): PrivateKey;
|
|
12
|
-
static generate(): PrivateKey;
|
|
13
|
-
constructor(value: string | StringValueObject);
|
|
14
|
-
private ensureIsValidPrivateKey;
|
|
15
|
-
getPublicKey(): PublicKey;
|
|
16
|
-
sign(payload: CryptoPayload): Signature;
|
|
17
|
-
decrypt(encryptedPayload: EncryptedPayload): Buffer;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=PrivateKey.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/PrivateKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,UAAW,SAAQ,GAAG;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACiD;WAElE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,UAAU;WAIpD,QAAQ,IAAI,UAAU;gBAIxB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,uBAAuB;IAQxB,YAAY,IAAI,SAAS;IAIzB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS;IAOvC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM;CAwB3D"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PrivateKey = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
6
|
-
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
7
|
-
const patterns_1 = require("../../patterns");
|
|
8
|
-
const NullObject_1 = require("../NullObject");
|
|
9
|
-
const CryptoAdapter_1 = require("./CryptoAdapter");
|
|
10
|
-
const Key_1 = require("./Key");
|
|
11
|
-
const PublicKey_1 = require("./PublicKey");
|
|
12
|
-
const Signature_1 = require("./Signature");
|
|
13
|
-
class PrivateKey extends Key_1.Key {
|
|
14
|
-
static LENGTH = 119;
|
|
15
|
-
static PATTERN = /^-----BEGIN PRIVATE KEY-----\n[A-Za-z0-9+/=]+\n-----END PRIVATE KEY-----\n$/;
|
|
16
|
-
static fromPEM(pem) {
|
|
17
|
-
return new PrivateKey(pem.valueOf());
|
|
18
|
-
}
|
|
19
|
-
static generate() {
|
|
20
|
-
return new PrivateKey(CryptoAdapter_1.CryptoAdapter.randomPrivateKeyPem());
|
|
21
|
-
}
|
|
22
|
-
constructor(value) {
|
|
23
|
-
super(value?.valueOf());
|
|
24
|
-
if (NullObject_1.NullObject.isNullObject(this)) {
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
|
-
this.ensureIsValidPrivateKey(this.value);
|
|
28
|
-
}
|
|
29
|
-
ensureIsValidPrivateKey(value) {
|
|
30
|
-
(0, patterns_1.assert)(value.length === PrivateKey.LENGTH, new InvalidLengthError_1.InvalidLengthError(value, PrivateKey.LENGTH));
|
|
31
|
-
(0, patterns_1.assert)(PrivateKey.PATTERN.test(value), new InvalidFormatError_1.InvalidFormatError(value));
|
|
32
|
-
}
|
|
33
|
-
getPublicKey() {
|
|
34
|
-
return PublicKey_1.PublicKey.fromPEM(CryptoAdapter_1.CryptoAdapter.getPublicKey(this.valueOf()));
|
|
35
|
-
}
|
|
36
|
-
sign(payload) {
|
|
37
|
-
const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
|
|
38
|
-
const signatureBuffer = CryptoAdapter_1.CryptoAdapter.sign(messageBuffer, this.valueOf());
|
|
39
|
-
return Signature_1.Signature.fromBuffer(signatureBuffer);
|
|
40
|
-
}
|
|
41
|
-
decrypt(encryptedPayload) {
|
|
42
|
-
const [ephPubB64, ivB64, cipherTextB64, tagB64] = encryptedPayload
|
|
43
|
-
.valueOf()
|
|
44
|
-
.split('.');
|
|
45
|
-
const ephemeralPub = buffer_1.Buffer.from(ephPubB64, 'base64');
|
|
46
|
-
const iv = buffer_1.Buffer.from(ivB64, 'base64');
|
|
47
|
-
const cipherText = buffer_1.Buffer.from(cipherTextB64, 'base64');
|
|
48
|
-
const tag = buffer_1.Buffer.from(tagB64, 'base64');
|
|
49
|
-
const x25519Priv = CryptoAdapter_1.CryptoAdapter.privateKeyToX25519(this.valueOf());
|
|
50
|
-
const sharedSecret = CryptoAdapter_1.CryptoAdapter.x25519SharedSecret(x25519Priv, ephemeralPub);
|
|
51
|
-
const aesKey = CryptoAdapter_1.CryptoAdapter.deriveEncryptionKey(sharedSecret, ephemeralPub);
|
|
52
|
-
return CryptoAdapter_1.CryptoAdapter.decryptAes256Gcm(aesKey, iv, cipherText, tag);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.PrivateKey = PrivateKey;
|
|
56
|
-
//# sourceMappingURL=PrivateKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PrivateKey.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,mDAAgD;AAGhD,+BAA4B;AAC5B,2CAAwC;AACxC,2CAAwC;AAExC,MAAa,UAAW,SAAQ,SAAG;IACzB,MAAM,CAAU,MAAM,GAAG,GAAG,CAAC;IAC7B,MAAM,CAAU,OAAO,GAC7B,6EAA6E,CAAC;IAEzE,MAAM,CAAC,OAAO,CAAC,GAA+B;QACnD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,UAAU,CAAC,6BAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,uBAAuB,CAAC,KAAa;QAC3C,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAClC,IAAI,uCAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CACjD,CAAC;QACF,IAAA,iBAAM,EAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,YAAY;QACjB,OAAO,qBAAS,CAAC,OAAO,CAAC,6BAAa,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,6BAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE1E,OAAO,qBAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAEM,OAAO,CAAC,gBAAkC;QAC/C,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,gBAAgB;aAC/D,OAAO,EAAE;aACT,KAAK,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,YAAY,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,eAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,eAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,eAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE1C,MAAM,UAAU,GAAG,6BAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,6BAAa,CAAC,kBAAkB,CACnD,UAAU,EACV,YAAY,CACb,CAAC;QAEF,MAAM,MAAM,GAAG,6BAAa,CAAC,mBAAmB,CAC9C,YAAY,EACZ,YAAY,CACb,CAAC;QAEF,OAAO,6BAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;;AAjEH,gCAkEC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { StringValueObject } from '../StringValueObject';
|
|
2
|
-
import { CryptoPayload } from './CryptoPayload';
|
|
3
|
-
import { EncryptedPayload } from './EncryptedPayload';
|
|
4
|
-
import { Key } from './Key';
|
|
5
|
-
import { Signature } from './Signature';
|
|
6
|
-
export declare class PublicKey extends Key {
|
|
7
|
-
private static readonly LENGTH;
|
|
8
|
-
private static readonly PATTERN;
|
|
9
|
-
static fromPEM(pem: string | StringValueObject): PublicKey;
|
|
10
|
-
constructor(value: string | StringValueObject);
|
|
11
|
-
private ensureIsValidPublicKey;
|
|
12
|
-
isValidSignature(payload: CryptoPayload, signature: Signature): boolean;
|
|
13
|
-
encrypt(payload: CryptoPayload): EncryptedPayload;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=PublicKey.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicKey.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,SAAU,SAAQ,GAAG;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAO;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAC+C;WAEhE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAIrD,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,sBAAsB;IAQvB,gBAAgB,CACrB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,SAAS,GACnB,OAAO;IAYH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;CAiCzD"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PublicKey = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
const InvalidFormatError_1 = require("../../errors/InvalidFormatError");
|
|
6
|
-
const InvalidLengthError_1 = require("../../errors/InvalidLengthError");
|
|
7
|
-
const patterns_1 = require("../../patterns");
|
|
8
|
-
const NullObject_1 = require("../NullObject");
|
|
9
|
-
const CryptoAdapter_1 = require("./CryptoAdapter");
|
|
10
|
-
const EncryptedPayload_1 = require("./EncryptedPayload");
|
|
11
|
-
const Key_1 = require("./Key");
|
|
12
|
-
class PublicKey extends Key_1.Key {
|
|
13
|
-
static LENGTH = 113;
|
|
14
|
-
static PATTERN = /^-----BEGIN PUBLIC KEY-----\n[A-Za-z0-9+/=]+\n-----END PUBLIC KEY-----\n$/;
|
|
15
|
-
static fromPEM(pem) {
|
|
16
|
-
return new PublicKey(pem.valueOf());
|
|
17
|
-
}
|
|
18
|
-
constructor(value) {
|
|
19
|
-
super(value?.valueOf());
|
|
20
|
-
if (NullObject_1.NullObject.isNullObject(this)) {
|
|
21
|
-
return this;
|
|
22
|
-
}
|
|
23
|
-
this.ensureIsValidPublicKey(this.value);
|
|
24
|
-
}
|
|
25
|
-
ensureIsValidPublicKey(value) {
|
|
26
|
-
(0, patterns_1.assert)(value.length === PublicKey.LENGTH, new InvalidLengthError_1.InvalidLengthError(value, PublicKey.LENGTH));
|
|
27
|
-
(0, patterns_1.assert)(PublicKey.PATTERN.test(value), new InvalidFormatError_1.InvalidFormatError(value));
|
|
28
|
-
}
|
|
29
|
-
isValidSignature(payload, signature) {
|
|
30
|
-
const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
|
|
31
|
-
const signatureBuffer = buffer_1.Buffer.from(signature.valueOf(), 'base64');
|
|
32
|
-
const valid = CryptoAdapter_1.CryptoAdapter.verify(signatureBuffer, messageBuffer, this.valueOf());
|
|
33
|
-
return valid;
|
|
34
|
-
}
|
|
35
|
-
encrypt(payload) {
|
|
36
|
-
const messageBuffer = buffer_1.Buffer.from(payload.valueOf());
|
|
37
|
-
const x25519Pub = CryptoAdapter_1.CryptoAdapter.publicKeyToX25519(this.valueOf());
|
|
38
|
-
const ephemeralPriv = CryptoAdapter_1.CryptoAdapter.x25519RandomPrivateKey();
|
|
39
|
-
const ephemeralPub = CryptoAdapter_1.CryptoAdapter.x25519PublicKey(ephemeralPriv);
|
|
40
|
-
const sharedSecret = CryptoAdapter_1.CryptoAdapter.x25519SharedSecret(ephemeralPriv, x25519Pub);
|
|
41
|
-
const aesKey = CryptoAdapter_1.CryptoAdapter.deriveEncryptionKey(sharedSecret, ephemeralPub);
|
|
42
|
-
const iv = CryptoAdapter_1.CryptoAdapter.randomBytes(12);
|
|
43
|
-
const { cipherText, tag } = CryptoAdapter_1.CryptoAdapter.encryptAes256Gcm(aesKey, iv, messageBuffer);
|
|
44
|
-
const result = [
|
|
45
|
-
buffer_1.Buffer.from(ephemeralPub).toString('base64'),
|
|
46
|
-
iv.toString('base64'),
|
|
47
|
-
buffer_1.Buffer.from(cipherText).toString('base64'),
|
|
48
|
-
buffer_1.Buffer.from(tag).toString('base64'),
|
|
49
|
-
].join('.');
|
|
50
|
-
return new EncryptedPayload_1.EncryptedPayload(result);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.PublicKey = PublicKey;
|
|
54
|
-
//# sourceMappingURL=PublicKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/PublicKey.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,wEAAqE;AACrE,wEAAqE;AACrE,6CAAwC;AACxC,8CAA2C;AAE3C,mDAAgD;AAEhD,yDAAsD;AACtD,+BAA4B;AAG5B,MAAa,SAAU,SAAQ,SAAG;IACxB,MAAM,CAAU,MAAM,GAAG,GAAG,CAAC;IAC7B,MAAM,CAAU,OAAO,GAC7B,2EAA2E,CAAC;IAEvE,MAAM,CAAC,OAAO,CAAC,GAA+B;QACnD,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,sBAAsB,CAAC,KAAa;QAC1C,IAAA,iBAAM,EACJ,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EACjC,IAAI,uCAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAChD,CAAC;QACF,IAAA,iBAAM,EAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,gBAAgB,CACrB,OAAsB,EACtB,SAAoB;QAEpB,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,6BAAa,CAAC,MAAM,CAChC,eAAe,EACf,aAAa,EACb,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,OAAsB;QACnC,MAAM,aAAa,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,6BAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,6BAAa,CAAC,sBAAsB,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,6BAAa,CAAC,kBAAkB,CACnD,aAAa,EACb,SAAS,CACV,CAAC;QAEF,MAAM,MAAM,GAAG,6BAAa,CAAC,mBAAmB,CAC9C,YAAY,EACZ,YAAY,CACb,CAAC;QAEF,MAAM,EAAE,GAAG,6BAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,6BAAa,CAAC,gBAAgB,CACxD,MAAM,EACN,EAAE,EACF,aAAa,CACd,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5C,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1C,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,OAAO,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;;AA1EH,8BA2EC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Buffer } from 'buffer';
|
|
2
|
-
import { StringValueObject } from '../StringValueObject';
|
|
3
|
-
import { ValueObject } from '../ValueObject';
|
|
4
|
-
export declare class Signature extends ValueObject<string> {
|
|
5
|
-
private static readonly LENGTH;
|
|
6
|
-
private static readonly PATTERN;
|
|
7
|
-
static fromBuffer(buffer: Buffer): Signature;
|
|
8
|
-
constructor(value: string | StringValueObject);
|
|
9
|
-
private hasValidFormat;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=Signature.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../../src/value-objects/crypto/Signature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,SAAU,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAM;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAA2B;WAE5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;gBAIvC,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAU7C,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Signature = void 0;
|
|
4
|
-
const InvalidSignatureError_1 = require("../../errors/InvalidSignatureError");
|
|
5
|
-
const patterns_1 = require("../../patterns");
|
|
6
|
-
const NullObject_1 = require("../NullObject");
|
|
7
|
-
const ValueObject_1 = require("../ValueObject");
|
|
8
|
-
class Signature extends ValueObject_1.ValueObject {
|
|
9
|
-
static LENGTH = 88;
|
|
10
|
-
static PATTERN = /^[A-Za-z0-9+/]{86}==$/;
|
|
11
|
-
static fromBuffer(buffer) {
|
|
12
|
-
return new Signature(buffer.toString('base64'));
|
|
13
|
-
}
|
|
14
|
-
constructor(value) {
|
|
15
|
-
super(value?.valueOf());
|
|
16
|
-
if (NullObject_1.NullObject.isNullObject(this)) {
|
|
17
|
-
return this;
|
|
18
|
-
}
|
|
19
|
-
(0, patterns_1.assert)(this.hasValidFormat(), new InvalidSignatureError_1.InvalidSignatureError(Signature.LENGTH));
|
|
20
|
-
}
|
|
21
|
-
hasValidFormat() {
|
|
22
|
-
return Signature.PATTERN.test(this.value);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.Signature = Signature;
|
|
26
|
-
//# sourceMappingURL=Signature.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../src/value-objects/crypto/Signature.ts"],"names":[],"mappings":";;;AAEA,8EAA2E;AAC3E,6CAAwC;AACxC,8CAA2C;AAE3C,gDAA6C;AAE7C,MAAa,SAAU,SAAQ,yBAAmB;IACxC,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,OAAO,GAAG,uBAAuB,CAAC;IAEnD,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAExB,IAAI,uBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAA,iBAAM,EAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,6CAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,cAAc;QACpB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;;AApBH,8BAqBC"}
|