cipher-kit 1.0.1 → 2.0.0-beta.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 +123 -1
- package/dist/chunk-4IOWANDJ.cjs +376 -0
- package/dist/chunk-4IOWANDJ.cjs.map +1 -0
- package/dist/chunk-D656BYPA.cjs +133 -0
- package/dist/chunk-D656BYPA.cjs.map +1 -0
- package/dist/chunk-IYMK2O3K.cjs +473 -0
- package/dist/chunk-IYMK2O3K.cjs.map +1 -0
- package/dist/chunk-J5YHHXDC.js +108 -0
- package/dist/chunk-J5YHHXDC.js.map +1 -0
- package/dist/chunk-M7V4HSRH.js +347 -0
- package/dist/chunk-M7V4HSRH.js.map +1 -0
- package/dist/chunk-N2ZI2CIT.js +448 -0
- package/dist/chunk-N2ZI2CIT.js.map +1 -0
- package/dist/export-Bh49U7Yf.d.ts +254 -0
- package/dist/export-CrT_Y2Cy.d.cts +254 -0
- package/dist/export-VUQLKGvM.d.ts +255 -0
- package/dist/export-VtQvdOuA.d.cts +255 -0
- package/dist/index.cjs +86 -38
- package/dist/index.d.cts +3 -22
- package/dist/index.d.ts +3 -22
- package/dist/index.js +3 -3
- package/dist/node.cjs +84 -28
- package/dist/node.d.cts +3 -22
- package/dist/node.d.ts +3 -22
- package/dist/node.js +2 -2
- package/dist/validate-CPWPEEAt.d.cts +86 -0
- package/dist/validate-CPWPEEAt.d.ts +86 -0
- package/dist/web-api.cjs +84 -28
- package/dist/web-api.d.cts +2 -21
- package/dist/web-api.d.ts +2 -21
- package/dist/web-api.js +2 -2
- package/package.json +6 -4
- package/dist/chunk-5MYBXP4A.cjs +0 -228
- package/dist/chunk-5MYBXP4A.cjs.map +0 -1
- package/dist/chunk-DC4WFPHL.js +0 -141
- package/dist/chunk-DC4WFPHL.js.map +0 -1
- package/dist/chunk-NGVIYM6K.js +0 -217
- package/dist/chunk-NGVIYM6K.js.map +0 -1
- package/dist/chunk-SBXDW4MY.cjs +0 -99
- package/dist/chunk-SBXDW4MY.cjs.map +0 -1
- package/dist/chunk-THMEBIZB.js +0 -79
- package/dist/chunk-THMEBIZB.js.map +0 -1
- package/dist/chunk-XTA6TKBQ.cjs +0 -156
- package/dist/chunk-XTA6TKBQ.cjs.map +0 -1
- package/dist/utils-Bryp07ny.d.cts +0 -48
- package/dist/utils-Bryp07ny.d.ts +0 -48
package/dist/web-api.cjs
CHANGED
|
@@ -1,73 +1,129 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkIYMK2O3K_cjs = require('./chunk-IYMK2O3K.cjs');
|
|
4
|
+
var chunkD656BYPA_cjs = require('./chunk-D656BYPA.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "convertBytesToStr", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkIYMK2O3K_cjs.convertBytesToStr; }
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "convertFormat", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkIYMK2O3K_cjs.convertFormat; }
|
|
15
15
|
});
|
|
16
|
-
Object.defineProperty(exports, "
|
|
16
|
+
Object.defineProperty(exports, "convertStrToBytes", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkIYMK2O3K_cjs.convertStrToBytes; }
|
|
19
19
|
});
|
|
20
|
-
Object.defineProperty(exports, "
|
|
20
|
+
Object.defineProperty(exports, "createSecretKey", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkIYMK2O3K_cjs.createSecretKey; }
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "decrypt", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkIYMK2O3K_cjs.decrypt; }
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "decryptObj", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return chunkIYMK2O3K_cjs.decryptObj; }
|
|
27
31
|
});
|
|
28
32
|
Object.defineProperty(exports, "encrypt", {
|
|
29
33
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkIYMK2O3K_cjs.encrypt; }
|
|
31
35
|
});
|
|
32
36
|
Object.defineProperty(exports, "encryptObj", {
|
|
33
37
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunkIYMK2O3K_cjs.encryptObj; }
|
|
35
39
|
});
|
|
36
40
|
Object.defineProperty(exports, "generateUuid", {
|
|
37
41
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkIYMK2O3K_cjs.generateUuid; }
|
|
39
43
|
});
|
|
40
44
|
Object.defineProperty(exports, "hash", {
|
|
41
45
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunkIYMK2O3K_cjs.hash; }
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "hashPassword", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () { return chunkIYMK2O3K_cjs.hashPassword; }
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(exports, "tryConvertBytesToStr", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
get: function () { return chunkIYMK2O3K_cjs.tryConvertBytesToStr; }
|
|
55
|
+
});
|
|
56
|
+
Object.defineProperty(exports, "tryConvertFormat", {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
get: function () { return chunkIYMK2O3K_cjs.tryConvertFormat; }
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "tryConvertStrToBytes", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () { return chunkIYMK2O3K_cjs.tryConvertStrToBytes; }
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(exports, "tryCreateSecretKey", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get: function () { return chunkIYMK2O3K_cjs.tryCreateSecretKey; }
|
|
67
|
+
});
|
|
68
|
+
Object.defineProperty(exports, "tryDecrypt", {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
get: function () { return chunkIYMK2O3K_cjs.tryDecrypt; }
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "tryDecryptObj", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () { return chunkIYMK2O3K_cjs.tryDecryptObj; }
|
|
75
|
+
});
|
|
76
|
+
Object.defineProperty(exports, "tryEncrypt", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function () { return chunkIYMK2O3K_cjs.tryEncrypt; }
|
|
79
|
+
});
|
|
80
|
+
Object.defineProperty(exports, "tryEncryptObj", {
|
|
81
|
+
enumerable: true,
|
|
82
|
+
get: function () { return chunkIYMK2O3K_cjs.tryEncryptObj; }
|
|
43
83
|
});
|
|
44
|
-
Object.defineProperty(exports, "
|
|
84
|
+
Object.defineProperty(exports, "tryGenerateUuid", {
|
|
45
85
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
86
|
+
get: function () { return chunkIYMK2O3K_cjs.tryGenerateUuid; }
|
|
47
87
|
});
|
|
48
|
-
Object.defineProperty(exports, "
|
|
88
|
+
Object.defineProperty(exports, "tryHash", {
|
|
49
89
|
enumerable: true,
|
|
50
|
-
get: function () { return
|
|
90
|
+
get: function () { return chunkIYMK2O3K_cjs.tryHash; }
|
|
51
91
|
});
|
|
52
|
-
Object.defineProperty(exports, "
|
|
92
|
+
Object.defineProperty(exports, "tryHashPassword", {
|
|
53
93
|
enumerable: true,
|
|
54
|
-
get: function () { return
|
|
94
|
+
get: function () { return chunkIYMK2O3K_cjs.tryHashPassword; }
|
|
55
95
|
});
|
|
56
|
-
Object.defineProperty(exports, "
|
|
96
|
+
Object.defineProperty(exports, "verifyPassword", {
|
|
57
97
|
enumerable: true,
|
|
58
|
-
get: function () { return
|
|
98
|
+
get: function () { return chunkIYMK2O3K_cjs.verifyPassword; }
|
|
59
99
|
});
|
|
60
|
-
Object.defineProperty(exports, "
|
|
100
|
+
Object.defineProperty(exports, "ENCRYPTED_REGEX", {
|
|
61
101
|
enumerable: true,
|
|
62
|
-
get: function () { return
|
|
102
|
+
get: function () { return chunkD656BYPA_cjs.ENCRYPTED_REGEX; }
|
|
103
|
+
});
|
|
104
|
+
Object.defineProperty(exports, "isWebSecretKey", {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get: function () { return chunkD656BYPA_cjs.isWebSecretKey; }
|
|
107
|
+
});
|
|
108
|
+
Object.defineProperty(exports, "matchPattern", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function () { return chunkD656BYPA_cjs.matchPattern; }
|
|
63
111
|
});
|
|
64
112
|
Object.defineProperty(exports, "parseToObj", {
|
|
65
113
|
enumerable: true,
|
|
66
|
-
get: function () { return
|
|
114
|
+
get: function () { return chunkD656BYPA_cjs.parseToObj; }
|
|
67
115
|
});
|
|
68
116
|
Object.defineProperty(exports, "stringifyObj", {
|
|
69
117
|
enumerable: true,
|
|
70
|
-
get: function () { return
|
|
118
|
+
get: function () { return chunkD656BYPA_cjs.stringifyObj; }
|
|
119
|
+
});
|
|
120
|
+
Object.defineProperty(exports, "tryParseToObj", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () { return chunkD656BYPA_cjs.tryParseToObj; }
|
|
123
|
+
});
|
|
124
|
+
Object.defineProperty(exports, "tryStringifyObj", {
|
|
125
|
+
enumerable: true,
|
|
126
|
+
get: function () { return chunkD656BYPA_cjs.tryStringifyObj; }
|
|
71
127
|
});
|
|
72
128
|
//# sourceMappingURL=web-api.cjs.map
|
|
73
129
|
//# sourceMappingURL=web-api.cjs.map
|
package/dist/web-api.d.cts
CHANGED
|
@@ -1,22 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
1
|
+
export { E as ENCRYPTED_REGEX, W as WebSecretKey, b as isWebSecretKey, m as matchPattern, p as parseToObj, s as stringifyObj, t as tryParseToObj, a as tryStringifyObj } from './validate-CPWPEEAt.cjs';
|
|
2
|
+
export { u as convertBytesToStr, x as convertFormat, r as convertStrToBytes, c as createSecretKey, f as decrypt, l as decryptObj, e as encrypt, i as encryptObj, g as generateUuid, n as hash, p as hashPassword, s as tryConvertBytesToStr, w as tryConvertFormat, q as tryConvertStrToBytes, a as tryCreateSecretKey, d as tryDecrypt, j as tryDecryptObj, b as tryEncrypt, h as tryEncryptObj, t as tryGenerateUuid, m as tryHash, o as tryHashPassword, v as verifyPassword } from './export-CrT_Y2Cy.cjs';
|
|
3
3
|
import 'node:crypto';
|
|
4
|
-
|
|
5
|
-
declare function encode(data: string, format?: EncodingFormat): Result<{
|
|
6
|
-
bytes: Uint8Array;
|
|
7
|
-
}>;
|
|
8
|
-
declare function decode(data: ArrayBuffer | Uint8Array, format?: EncodingFormat): Result<string>;
|
|
9
|
-
|
|
10
|
-
declare function generateUuid(): Result<string>;
|
|
11
|
-
declare function hash(data: string): Promise<Result<string>>;
|
|
12
|
-
declare function createSecretKey(key: string | WebApiKey): Promise<Result<{
|
|
13
|
-
secretKey: WebApiKey;
|
|
14
|
-
}>>;
|
|
15
|
-
declare function encrypt(data: string, secretKey: WebApiKey): Promise<Result<string>>;
|
|
16
|
-
declare function decrypt(encrypted: string, secretKey: WebApiKey): Promise<Result<string>>;
|
|
17
|
-
declare function encryptObj(data: Record<string, unknown>, secretKey: WebApiKey): Promise<Result<string>>;
|
|
18
|
-
declare function decryptObj(encrypted: string, secretKey: WebApiKey): Promise<Result<{
|
|
19
|
-
result: Record<string, unknown>;
|
|
20
|
-
}>>;
|
|
21
|
-
|
|
22
|
-
export { WebApiKey, createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash };
|
package/dist/web-api.d.ts
CHANGED
|
@@ -1,22 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
1
|
+
export { E as ENCRYPTED_REGEX, W as WebSecretKey, b as isWebSecretKey, m as matchPattern, p as parseToObj, s as stringifyObj, t as tryParseToObj, a as tryStringifyObj } from './validate-CPWPEEAt.js';
|
|
2
|
+
export { u as convertBytesToStr, x as convertFormat, r as convertStrToBytes, c as createSecretKey, f as decrypt, l as decryptObj, e as encrypt, i as encryptObj, g as generateUuid, n as hash, p as hashPassword, s as tryConvertBytesToStr, w as tryConvertFormat, q as tryConvertStrToBytes, a as tryCreateSecretKey, d as tryDecrypt, j as tryDecryptObj, b as tryEncrypt, h as tryEncryptObj, t as tryGenerateUuid, m as tryHash, o as tryHashPassword, v as verifyPassword } from './export-Bh49U7Yf.js';
|
|
3
3
|
import 'node:crypto';
|
|
4
|
-
|
|
5
|
-
declare function encode(data: string, format?: EncodingFormat): Result<{
|
|
6
|
-
bytes: Uint8Array;
|
|
7
|
-
}>;
|
|
8
|
-
declare function decode(data: ArrayBuffer | Uint8Array, format?: EncodingFormat): Result<string>;
|
|
9
|
-
|
|
10
|
-
declare function generateUuid(): Result<string>;
|
|
11
|
-
declare function hash(data: string): Promise<Result<string>>;
|
|
12
|
-
declare function createSecretKey(key: string | WebApiKey): Promise<Result<{
|
|
13
|
-
secretKey: WebApiKey;
|
|
14
|
-
}>>;
|
|
15
|
-
declare function encrypt(data: string, secretKey: WebApiKey): Promise<Result<string>>;
|
|
16
|
-
declare function decrypt(encrypted: string, secretKey: WebApiKey): Promise<Result<string>>;
|
|
17
|
-
declare function encryptObj(data: Record<string, unknown>, secretKey: WebApiKey): Promise<Result<string>>;
|
|
18
|
-
declare function decryptObj(encrypted: string, secretKey: WebApiKey): Promise<Result<{
|
|
19
|
-
result: Record<string, unknown>;
|
|
20
|
-
}>>;
|
|
21
|
-
|
|
22
|
-
export { WebApiKey, createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, generateUuid, hash };
|
package/dist/web-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { convertBytesToStr, convertFormat, convertStrToBytes, createSecretKey, decrypt, decryptObj, encrypt, encryptObj, generateUuid, hash, hashPassword, tryConvertBytesToStr, tryConvertFormat, tryConvertStrToBytes, tryCreateSecretKey, tryDecrypt, tryDecryptObj, tryEncrypt, tryEncryptObj, tryGenerateUuid, tryHash, tryHashPassword, verifyPassword } from './chunk-N2ZI2CIT.js';
|
|
2
|
+
export { ENCRYPTED_REGEX, isWebSecretKey, matchPattern, parseToObj, stringifyObj, tryParseToObj, tryStringifyObj } from './chunk-J5YHHXDC.js';
|
|
3
3
|
//# sourceMappingURL=web-api.js.map
|
|
4
4
|
//# sourceMappingURL=web-api.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cipher-kit",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "🔐 Secure, Lightweight, and Cross-Platform Encryption
|
|
3
|
+
"version": "2.0.0-beta.0",
|
|
4
|
+
"description": "🔐 Secure, Lightweight, and Cross-Platform Encryption, Decryption, and Hashing for Web, Node.js, Deno, Bun, and Cloudflare Workers",
|
|
5
5
|
"homepage": "https://github.com/WolfieLeader/npm/tree/main/packages/cipher-kit#readme",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"test": "vitest"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@types/node": "^24.2
|
|
71
|
+
"@types/node": "^24.5.2",
|
|
72
72
|
"tsup": "^8.5.0",
|
|
73
73
|
"typescript": "^5.9.2",
|
|
74
74
|
"vitest": "^3.2.4"
|
|
@@ -85,6 +85,8 @@
|
|
|
85
85
|
"web",
|
|
86
86
|
"node",
|
|
87
87
|
"deno",
|
|
88
|
-
"bun"
|
|
88
|
+
"bun",
|
|
89
|
+
"cloudflare",
|
|
90
|
+
"workers"
|
|
89
91
|
]
|
|
90
92
|
}
|
package/dist/chunk-5MYBXP4A.cjs
DELETED
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkSBXDW4MY_cjs = require('./chunk-SBXDW4MY.cjs');
|
|
4
|
-
|
|
5
|
-
// src/web/encode.ts
|
|
6
|
-
var textEncoder = new TextEncoder();
|
|
7
|
-
var textDecoder = new TextDecoder();
|
|
8
|
-
function encode(data, format = "utf8") {
|
|
9
|
-
try {
|
|
10
|
-
switch (format) {
|
|
11
|
-
case "base64":
|
|
12
|
-
return chunkSBXDW4MY_cjs.$ok({ bytes: $fromBase64(data) });
|
|
13
|
-
case "base64url":
|
|
14
|
-
return chunkSBXDW4MY_cjs.$ok({ bytes: $fromBase64Url(data) });
|
|
15
|
-
case "hex":
|
|
16
|
-
return chunkSBXDW4MY_cjs.$ok({ bytes: $fromHex(data) });
|
|
17
|
-
case "utf8":
|
|
18
|
-
return chunkSBXDW4MY_cjs.$ok({ bytes: textEncoder.encode(data) });
|
|
19
|
-
default:
|
|
20
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
21
|
-
msg: `Crypto Web API: Unsupported encode format: ${format}`,
|
|
22
|
-
desc: "Use base64, base64url, hex, or utf8"
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
} catch (error) {
|
|
26
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to encode data", desc: chunkSBXDW4MY_cjs.$stringifyError(error) });
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function decode(data, format = "utf8") {
|
|
30
|
-
try {
|
|
31
|
-
const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
|
|
32
|
-
switch (format) {
|
|
33
|
-
case "base64":
|
|
34
|
-
return chunkSBXDW4MY_cjs.$ok($toBase64(bytes));
|
|
35
|
-
case "base64url":
|
|
36
|
-
return chunkSBXDW4MY_cjs.$ok($toBase64Url(bytes));
|
|
37
|
-
case "hex":
|
|
38
|
-
return chunkSBXDW4MY_cjs.$ok($toHex(bytes));
|
|
39
|
-
case "utf8":
|
|
40
|
-
return chunkSBXDW4MY_cjs.$ok(textDecoder.decode(bytes));
|
|
41
|
-
default:
|
|
42
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
43
|
-
msg: `Crypto Web API: Unsupported decode format: ${format}`,
|
|
44
|
-
desc: "Use base64, base64url, hex, or utf8"
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
} catch (error) {
|
|
48
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to decode data", desc: chunkSBXDW4MY_cjs.$stringifyError(error) });
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function $toBase64(bytes) {
|
|
52
|
-
let binary = "";
|
|
53
|
-
const chunkSize = 32768;
|
|
54
|
-
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
55
|
-
binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));
|
|
56
|
-
}
|
|
57
|
-
return btoa(binary);
|
|
58
|
-
}
|
|
59
|
-
function $fromBase64(data) {
|
|
60
|
-
const binary = atob(data);
|
|
61
|
-
const len = binary.length;
|
|
62
|
-
const bytes = new Uint8Array(len);
|
|
63
|
-
for (let i = 0; i < len; i++) {
|
|
64
|
-
bytes[i] = binary.charCodeAt(i);
|
|
65
|
-
}
|
|
66
|
-
return bytes;
|
|
67
|
-
}
|
|
68
|
-
function $toBase64Url(bytes) {
|
|
69
|
-
return $toBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
70
|
-
}
|
|
71
|
-
function $fromBase64Url(data) {
|
|
72
|
-
let b64 = data.replace(/-/g, "+").replace(/_/g, "/");
|
|
73
|
-
const padLen = (4 - b64.length % 4) % 4;
|
|
74
|
-
b64 += "=".repeat(padLen);
|
|
75
|
-
return $fromBase64(b64);
|
|
76
|
-
}
|
|
77
|
-
function $toHex(bytes) {
|
|
78
|
-
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
79
|
-
}
|
|
80
|
-
function $fromHex(data) {
|
|
81
|
-
const clean = data.startsWith("0x") ? data.slice(2) : data;
|
|
82
|
-
if (clean.length % 2 !== 0) throw new Error("Invalid hex string");
|
|
83
|
-
const out = new Uint8Array(clean.length / 2);
|
|
84
|
-
for (let i = 0; i < out.length; i++) {
|
|
85
|
-
out[i] = Number.parseInt(clean.slice(i * 2, i * 2 + 2), 16);
|
|
86
|
-
}
|
|
87
|
-
return out;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// src/web/encrypt.ts
|
|
91
|
-
function generateUuid() {
|
|
92
|
-
try {
|
|
93
|
-
return chunkSBXDW4MY_cjs.$ok(crypto.randomUUID());
|
|
94
|
-
} catch (error) {
|
|
95
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to generate UUID", desc: chunkSBXDW4MY_cjs.$stringifyError(error) });
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
async function hash(data) {
|
|
99
|
-
if (!chunkSBXDW4MY_cjs.$isStr(data, 0)) {
|
|
100
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Empty data for hashing", desc: "Data must be a non-empty string" });
|
|
101
|
-
}
|
|
102
|
-
const { bytes, error } = encode(data, "utf8");
|
|
103
|
-
if (error) return chunkSBXDW4MY_cjs.$err(error);
|
|
104
|
-
try {
|
|
105
|
-
const hashed = await crypto.subtle.digest("SHA-256", bytes);
|
|
106
|
-
return decode(hashed, "base64url");
|
|
107
|
-
} catch (error2) {
|
|
108
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to hash data", desc: chunkSBXDW4MY_cjs.$stringifyError(error2) });
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
async function createSecretKey(key) {
|
|
112
|
-
if (typeof key === "string") {
|
|
113
|
-
try {
|
|
114
|
-
if (!chunkSBXDW4MY_cjs.$isStr(key)) return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Empty key", desc: "Key must be a non-empty string" });
|
|
115
|
-
const { bytes, error } = encode(key, "utf8");
|
|
116
|
-
if (error) return chunkSBXDW4MY_cjs.$err(error);
|
|
117
|
-
const hashedKey = await crypto.subtle.digest("SHA-256", bytes);
|
|
118
|
-
const secretKey = await crypto.subtle.importKey("raw", hashedKey, { name: chunkSBXDW4MY_cjs.WEB_API_ALGORITHM }, true, [
|
|
119
|
-
"encrypt",
|
|
120
|
-
"decrypt"
|
|
121
|
-
]);
|
|
122
|
-
return chunkSBXDW4MY_cjs.$ok({ secretKey });
|
|
123
|
-
} catch (error) {
|
|
124
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to create secret key", desc: chunkSBXDW4MY_cjs.$stringifyError(error) });
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (!chunkSBXDW4MY_cjs.isWebApiKey(key)) {
|
|
128
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Invalid secret key", desc: "Expected a WebApiKey (webcrypto.CryptoKey)" });
|
|
129
|
-
}
|
|
130
|
-
return chunkSBXDW4MY_cjs.$ok({ secretKey: key });
|
|
131
|
-
}
|
|
132
|
-
async function encrypt(data, secretKey) {
|
|
133
|
-
try {
|
|
134
|
-
if (!chunkSBXDW4MY_cjs.$isStr(data)) {
|
|
135
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Empty data for encryption", desc: "Data must be a non-empty string" });
|
|
136
|
-
}
|
|
137
|
-
if (!chunkSBXDW4MY_cjs.isWebApiKey(secretKey)) {
|
|
138
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
139
|
-
msg: "Crypto Web API: Invalid encryption key",
|
|
140
|
-
desc: "Expected a WebApiKey (webcrypto.CryptoKey)"
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
const { bytes, error } = encode(data, "utf8");
|
|
144
|
-
if (error) return chunkSBXDW4MY_cjs.$err(error);
|
|
145
|
-
const iv = crypto.getRandomValues(new Uint8Array(12));
|
|
146
|
-
const encrypted = await crypto.subtle.encrypt({ name: chunkSBXDW4MY_cjs.WEB_API_ALGORITHM, iv }, secretKey, bytes);
|
|
147
|
-
const { result: decodedIv, error: ivError } = decode(iv, "base64url");
|
|
148
|
-
const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, "base64url");
|
|
149
|
-
if (ivError || encryptedError) {
|
|
150
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
151
|
-
msg: "Crypto Web API: Failed to convert IV or encrypted data",
|
|
152
|
-
desc: `Conversion error: ${ivError || encryptedError}`
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
return chunkSBXDW4MY_cjs.$ok(`${decodedIv}.${decodedEncrypted}.`);
|
|
156
|
-
} catch (error) {
|
|
157
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to encrypt data", desc: chunkSBXDW4MY_cjs.$stringifyError(error) });
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
async function decrypt(encrypted, secretKey) {
|
|
161
|
-
if (chunkSBXDW4MY_cjs.isInWebApiEncryptionFormat(encrypted) === false) {
|
|
162
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
163
|
-
msg: "Crypto Web API: Invalid encrypted data format",
|
|
164
|
-
desc: 'Encrypted data must be in the format "iv.encryptedData."'
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
const [iv, encryptedWithTag] = encrypted.split(".", 3);
|
|
168
|
-
if (!chunkSBXDW4MY_cjs.$isStr(iv) || !chunkSBXDW4MY_cjs.$isStr(encryptedWithTag)) {
|
|
169
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
170
|
-
msg: "Crypto Web API: Invalid encrypted data",
|
|
171
|
-
desc: "Encrypted data must contain valid IV, encrypted and tag components"
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
if (!chunkSBXDW4MY_cjs.isWebApiKey(secretKey)) {
|
|
175
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Invalid decryption key", desc: "Expected a WebApiKey (webcrypto.CryptoKey)" });
|
|
176
|
-
}
|
|
177
|
-
const { bytes: ivBytes, error: ivError } = encode(iv, "base64url");
|
|
178
|
-
const { bytes: encryptedBytes, error: encryptedError } = encode(encryptedWithTag, "base64url");
|
|
179
|
-
if (ivError || encryptedError) {
|
|
180
|
-
return chunkSBXDW4MY_cjs.$err({
|
|
181
|
-
msg: "Crypto Web API: Failed to convert IV or encrypted data",
|
|
182
|
-
desc: `Conversion error: ${ivError || encryptedError}`
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
try {
|
|
186
|
-
const decrypted = await crypto.subtle.decrypt({ name: chunkSBXDW4MY_cjs.WEB_API_ALGORITHM, iv: ivBytes }, secretKey, encryptedBytes);
|
|
187
|
-
return decode(decrypted, "utf8");
|
|
188
|
-
} catch (error) {
|
|
189
|
-
return chunkSBXDW4MY_cjs.$err({ msg: "Crypto Web API: Failed to decrypt data", desc: chunkSBXDW4MY_cjs.$stringifyError(error) });
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
async function encryptObj(data, secretKey) {
|
|
193
|
-
const { result, error } = chunkSBXDW4MY_cjs.stringifyObj(data);
|
|
194
|
-
if (error) return chunkSBXDW4MY_cjs.$err(error);
|
|
195
|
-
return await encrypt(result, secretKey);
|
|
196
|
-
}
|
|
197
|
-
async function decryptObj(encrypted, secretKey) {
|
|
198
|
-
const { result, error } = await decrypt(encrypted, secretKey);
|
|
199
|
-
if (error) return chunkSBXDW4MY_cjs.$err(error);
|
|
200
|
-
return chunkSBXDW4MY_cjs.parseToObj(result);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// src/web/export.ts
|
|
204
|
-
var export_exports = {};
|
|
205
|
-
chunkSBXDW4MY_cjs.__export(export_exports, {
|
|
206
|
-
createSecretKey: () => createSecretKey,
|
|
207
|
-
decode: () => decode,
|
|
208
|
-
decrypt: () => decrypt,
|
|
209
|
-
decryptObj: () => decryptObj,
|
|
210
|
-
encode: () => encode,
|
|
211
|
-
encrypt: () => encrypt,
|
|
212
|
-
encryptObj: () => encryptObj,
|
|
213
|
-
generateUuid: () => generateUuid,
|
|
214
|
-
hash: () => hash
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
exports.createSecretKey = createSecretKey;
|
|
218
|
-
exports.decode = decode;
|
|
219
|
-
exports.decrypt = decrypt;
|
|
220
|
-
exports.decryptObj = decryptObj;
|
|
221
|
-
exports.encode = encode;
|
|
222
|
-
exports.encrypt = encrypt;
|
|
223
|
-
exports.encryptObj = encryptObj;
|
|
224
|
-
exports.export_exports = export_exports;
|
|
225
|
-
exports.generateUuid = generateUuid;
|
|
226
|
-
exports.hash = hash;
|
|
227
|
-
//# sourceMappingURL=chunk-5MYBXP4A.cjs.map
|
|
228
|
-
//# sourceMappingURL=chunk-5MYBXP4A.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/web/encode.ts","../src/web/encrypt.ts","../src/web/export.ts"],"names":["$ok","$err","$stringifyError","$isStr","error","WEB_API_ALGORITHM","isWebApiKey","isInWebApiEncryptionFormat","stringifyObj","parseToObj","__export"],"mappings":"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","file":"chunk-5MYBXP4A.cjs","sourcesContent":["import { $err, $ok, $stringifyError, type Result } from '~/error';\r\nimport type { EncodingFormat } from '~/types';\r\n\r\nconst textEncoder = new TextEncoder();\r\nconst textDecoder = new TextDecoder();\r\n\r\nexport function encode(data: string, format: EncodingFormat = 'utf8'): Result<{ bytes: Uint8Array }> {\r\n try {\r\n switch (format) {\r\n case 'base64':\r\n return $ok({ bytes: $fromBase64(data) });\r\n case 'base64url':\r\n return $ok({ bytes: $fromBase64Url(data) });\r\n case 'hex':\r\n return $ok({ bytes: $fromHex(data) });\r\n case 'utf8':\r\n return $ok({ bytes: textEncoder.encode(data) });\r\n default:\r\n return $err({\r\n msg: `Crypto Web API: Unsupported encode format: ${format}`,\r\n desc: 'Use base64, base64url, hex, or utf8',\r\n });\r\n }\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to encode data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport function decode(data: ArrayBuffer | Uint8Array, format: EncodingFormat = 'utf8'): Result<string> {\r\n try {\r\n const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);\r\n switch (format) {\r\n case 'base64':\r\n return $ok($toBase64(bytes));\r\n case 'base64url':\r\n return $ok($toBase64Url(bytes));\r\n case 'hex':\r\n return $ok($toHex(bytes));\r\n case 'utf8':\r\n return $ok(textDecoder.decode(bytes));\r\n default:\r\n return $err({\r\n msg: `Crypto Web API: Unsupported decode format: ${format}`,\r\n desc: 'Use base64, base64url, hex, or utf8',\r\n });\r\n }\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to decode data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nfunction $toBase64(bytes: Uint8Array): string {\r\n let binary = '';\r\n const chunkSize = 0x8000; // 32KB per chunk\r\n for (let i = 0; i < bytes.length; i += chunkSize) {\r\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));\r\n }\r\n return btoa(binary);\r\n}\r\n\r\nfunction $fromBase64(data: string): Uint8Array {\r\n const binary = atob(data);\r\n const len = binary.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binary.charCodeAt(i);\r\n }\r\n return bytes;\r\n}\r\n\r\nfunction $toBase64Url(bytes: Uint8Array): string {\r\n return $toBase64(bytes).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\r\n}\r\n\r\nfunction $fromBase64Url(data: string): Uint8Array {\r\n let b64 = data.replace(/-/g, '+').replace(/_/g, '/');\r\n const padLen = (4 - (b64.length % 4)) % 4;\r\n b64 += '='.repeat(padLen);\r\n return $fromBase64(b64);\r\n}\r\n\r\nfunction $toHex(bytes: Uint8Array): string {\r\n return Array.from(bytes)\r\n .map((b) => b.toString(16).padStart(2, '0'))\r\n .join('');\r\n}\r\n\r\nfunction $fromHex(data: string): Uint8Array {\r\n const clean = data.startsWith('0x') ? data.slice(2) : data;\r\n if (clean.length % 2 !== 0) throw new Error('Invalid hex string');\r\n const out = new Uint8Array(clean.length / 2);\r\n for (let i = 0; i < out.length; i++) {\r\n out[i] = Number.parseInt(clean.slice(i * 2, i * 2 + 2), 16);\r\n }\r\n return out;\r\n}\r\n","import { $err, $ok, $stringifyError, type Result } from '~/error';\r\nimport type { WebApiKey } from '~/types';\r\nimport { $isStr, isInWebApiEncryptionFormat, isWebApiKey, parseToObj, stringifyObj, WEB_API_ALGORITHM } from '~/utils';\r\nimport { decode, encode } from './encode';\r\n\r\nexport function generateUuid(): Result<string> {\r\n try {\r\n return $ok(crypto.randomUUID());\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to generate UUID', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function hash(data: string): Promise<Result<string>> {\r\n if (!$isStr(data, 0)) {\r\n return $err({ msg: 'Crypto Web API: Empty data for hashing', desc: 'Data must be a non-empty string' });\r\n }\r\n\r\n const { bytes, error } = encode(data, 'utf8');\r\n if (error) return $err(error);\r\n\r\n try {\r\n const hashed = await crypto.subtle.digest('SHA-256', bytes);\r\n return decode(hashed, 'base64url');\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to hash data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function createSecretKey(key: string | WebApiKey): Promise<Result<{ secretKey: WebApiKey }>> {\r\n if (typeof key === 'string') {\r\n try {\r\n if (!$isStr(key)) return $err({ msg: 'Crypto Web API: Empty key', desc: 'Key must be a non-empty string' });\r\n const { bytes, error } = encode(key, 'utf8');\r\n if (error) return $err(error);\r\n\r\n const hashedKey = await crypto.subtle.digest('SHA-256', bytes);\r\n const secretKey = await crypto.subtle.importKey('raw', hashedKey, { name: WEB_API_ALGORITHM }, true, [\r\n 'encrypt',\r\n 'decrypt',\r\n ]);\r\n return $ok({ secretKey });\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to create secret key', desc: $stringifyError(error) });\r\n }\r\n }\r\n\r\n if (!isWebApiKey(key)) {\r\n return $err({ msg: 'Crypto Web API: Invalid secret key', desc: 'Expected a WebApiKey (webcrypto.CryptoKey)' });\r\n }\r\n\r\n return $ok({ secretKey: key });\r\n}\r\n\r\nexport async function encrypt(data: string, secretKey: WebApiKey): Promise<Result<string>> {\r\n try {\r\n if (!$isStr(data)) {\r\n return $err({ msg: 'Crypto Web API: Empty data for encryption', desc: 'Data must be a non-empty string' });\r\n }\r\n\r\n if (!isWebApiKey(secretKey)) {\r\n return $err({\r\n msg: 'Crypto Web API: Invalid encryption key',\r\n desc: 'Expected a WebApiKey (webcrypto.CryptoKey)',\r\n });\r\n }\r\n\r\n const { bytes, error } = encode(data, 'utf8');\r\n if (error) return $err(error);\r\n\r\n const iv = crypto.getRandomValues(new Uint8Array(12));\r\n const encrypted = await crypto.subtle.encrypt({ name: WEB_API_ALGORITHM, iv: iv }, secretKey, bytes);\r\n\r\n const { result: decodedIv, error: ivError } = decode(iv, 'base64url');\r\n const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, 'base64url');\r\n\r\n if (ivError || encryptedError) {\r\n return $err({\r\n msg: 'Crypto Web API: Failed to convert IV or encrypted data',\r\n desc: `Conversion error: ${ivError || encryptedError}`,\r\n });\r\n }\r\n\r\n return $ok(`${decodedIv}.${decodedEncrypted}.`);\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to encrypt data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function decrypt(encrypted: string, secretKey: WebApiKey): Promise<Result<string>> {\r\n if (isInWebApiEncryptionFormat(encrypted) === false) {\r\n return $err({\r\n msg: 'Crypto Web API: Invalid encrypted data format',\r\n desc: 'Encrypted data must be in the format \"iv.encryptedData.\"',\r\n });\r\n }\r\n\r\n const [iv, encryptedWithTag] = encrypted.split('.', 3);\r\n if (!$isStr(iv) || !$isStr(encryptedWithTag)) {\r\n return $err({\r\n msg: 'Crypto Web API: Invalid encrypted data',\r\n desc: 'Encrypted data must contain valid IV, encrypted and tag components',\r\n });\r\n }\r\n\r\n if (!isWebApiKey(secretKey)) {\r\n return $err({ msg: 'Crypto Web API: Invalid decryption key', desc: 'Expected a WebApiKey (webcrypto.CryptoKey)' });\r\n }\r\n\r\n const { bytes: ivBytes, error: ivError } = encode(iv, 'base64url');\r\n const { bytes: encryptedBytes, error: encryptedError } = encode(encryptedWithTag, 'base64url');\r\n if (ivError || encryptedError) {\r\n return $err({\r\n msg: 'Crypto Web API: Failed to convert IV or encrypted data',\r\n desc: `Conversion error: ${ivError || encryptedError}`,\r\n });\r\n }\r\n\r\n try {\r\n const decrypted = await crypto.subtle.decrypt({ name: WEB_API_ALGORITHM, iv: ivBytes }, secretKey, encryptedBytes);\r\n return decode(decrypted, 'utf8');\r\n } catch (error) {\r\n return $err({ msg: 'Crypto Web API: Failed to decrypt data', desc: $stringifyError(error) });\r\n }\r\n}\r\n\r\nexport async function encryptObj(data: Record<string, unknown>, secretKey: WebApiKey): Promise<Result<string>> {\r\n const { result, error } = stringifyObj(data);\r\n if (error) return $err(error);\r\n return await encrypt(result, secretKey);\r\n}\r\n\r\nexport async function decryptObj(\r\n encrypted: string,\r\n secretKey: WebApiKey,\r\n): Promise<Result<{ result: Record<string, unknown> }>> {\r\n const { result, error } = await decrypt(encrypted, secretKey);\r\n if (error) return $err(error);\r\n return parseToObj(result);\r\n}\r\n","export { decode, encode } from './encode';\r\nexport { createSecretKey, decrypt, decryptObj, encrypt, encryptObj, generateUuid, hash } from './encrypt';\r\n"]}
|
package/dist/chunk-DC4WFPHL.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { __export, $isStr, $err, $stringifyError, $ok, stringifyObj, isNodeKey, NODE_ALGORITHM, parseToObj, isInNodeEncryptionFormat } from './chunk-THMEBIZB.js';
|
|
2
|
-
import { Buffer } from 'buffer';
|
|
3
|
-
import nodeCrypto from 'crypto';
|
|
4
|
-
|
|
5
|
-
function encode(data, format = "utf8") {
|
|
6
|
-
try {
|
|
7
|
-
return $ok({ bytes: Buffer.from(data, format) });
|
|
8
|
-
} catch (error) {
|
|
9
|
-
return $err({ msg: "Crypto NodeJS: Failed to encode data", desc: $stringifyError(error) });
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
function decode(data, format = "utf8") {
|
|
13
|
-
try {
|
|
14
|
-
return $ok(Buffer.from(data).toString(format));
|
|
15
|
-
} catch (error) {
|
|
16
|
-
return $err({ msg: "Crypto NodeJS: Failed to decode data", desc: $stringifyError(error) });
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function generateUuid() {
|
|
20
|
-
try {
|
|
21
|
-
return $ok(nodeCrypto.randomUUID());
|
|
22
|
-
} catch (error) {
|
|
23
|
-
return $err({ msg: "Crypto NodeJS: Failed to generate UUID", desc: $stringifyError(error) });
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function hash(data) {
|
|
27
|
-
if (!$isStr(data, 0)) {
|
|
28
|
-
return $err({ msg: "Crypto NodeJS: Empty data for hashing", desc: "Data must be a non-empty string" });
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
const hashed = nodeCrypto.createHash("sha256").update(data).digest();
|
|
32
|
-
return decode(hashed, "base64url");
|
|
33
|
-
} catch (error) {
|
|
34
|
-
return $err({ msg: "Crypto NodeJS: Failed to hash data with Crypto NodeJS", desc: $stringifyError(error) });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function createSecretKey(key) {
|
|
38
|
-
if (typeof key === "string") {
|
|
39
|
-
try {
|
|
40
|
-
if (!$isStr(key)) return $err({ msg: "Crypto NodeJS: Empty key", desc: "Key must be a non-empty string" });
|
|
41
|
-
const hashedKey = nodeCrypto.createHash("sha256").update(key).digest();
|
|
42
|
-
const secretKey = nodeCrypto.createSecretKey(hashedKey);
|
|
43
|
-
return $ok({ secretKey });
|
|
44
|
-
} catch (error) {
|
|
45
|
-
return $err({ msg: "Crypto NodeJS: Failed to create secret key", desc: $stringifyError(error) });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (!isNodeKey(key)) {
|
|
49
|
-
return $err({ msg: "Crypto NodeJS: Invalid secret key", desc: "Expected a NodeKey (crypto.KeyObject)" });
|
|
50
|
-
}
|
|
51
|
-
return $ok({ secretKey: key });
|
|
52
|
-
}
|
|
53
|
-
function encrypt(data, secretKey) {
|
|
54
|
-
try {
|
|
55
|
-
if (!$isStr(data)) {
|
|
56
|
-
return $err({ msg: "Crypto NodeJS: Empty data for encryption", desc: "Data must be a non-empty string" });
|
|
57
|
-
}
|
|
58
|
-
if (!isNodeKey(secretKey)) {
|
|
59
|
-
return $err({ msg: "Crypto NodeJS: Invalid encryption key", desc: "Expected a NodeKey (crypto.KeyObject)" });
|
|
60
|
-
}
|
|
61
|
-
const iv = nodeCrypto.randomBytes(12);
|
|
62
|
-
const cipher = nodeCrypto.createCipheriv(NODE_ALGORITHM, secretKey, iv);
|
|
63
|
-
const encrypted = Buffer.concat([cipher.update(data, "utf8"), cipher.final()]);
|
|
64
|
-
const tag = cipher.getAuthTag();
|
|
65
|
-
const { result: decodedIv, error: ivError } = decode(iv, "base64url");
|
|
66
|
-
const { result: decodedEncrypted, error: encryptedError } = decode(encrypted, "base64url");
|
|
67
|
-
const { result: decodedTag, error: tagError } = decode(tag, "base64url");
|
|
68
|
-
if (ivError || encryptedError || tagError) {
|
|
69
|
-
return $err({
|
|
70
|
-
msg: "Crypto NodeJS: Failed to convert IV or encrypted data or tag",
|
|
71
|
-
desc: `Conversion error: ${ivError || encryptedError || tagError}`
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
return $ok(`${decodedIv}.${decodedEncrypted}.${decodedTag}.`);
|
|
75
|
-
} catch (error) {
|
|
76
|
-
return $err({ msg: "Crypto NodeJS: Failed to encrypt data", desc: $stringifyError(error) });
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function decrypt(encrypted, secretKey) {
|
|
80
|
-
if (isInNodeEncryptionFormat(encrypted) === false) {
|
|
81
|
-
return $err({
|
|
82
|
-
msg: "Crypto NodeJS: Invalid encrypted data format",
|
|
83
|
-
desc: 'Encrypted data must be in the format "iv.encryptedData.tag."'
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
const [iv, encryptedData, tag] = encrypted.split(".", 4);
|
|
87
|
-
if (!$isStr(iv) || !$isStr(encryptedData) || !$isStr(tag)) {
|
|
88
|
-
return $err({
|
|
89
|
-
msg: "Crypto NodeJS: Invalid encrypted data",
|
|
90
|
-
desc: "Encrypted data must contain valid IV, encrypted data, and tag components"
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
if (!isNodeKey(secretKey)) {
|
|
94
|
-
return $err({ msg: "Crypto NodeJS: Invalid decryption key", desc: "Expected a NodeKey (crypto.KeyObject)" });
|
|
95
|
-
}
|
|
96
|
-
const { bytes: ivBytes, error: ivError } = encode(iv, "base64url");
|
|
97
|
-
const { bytes: encryptedBytes, error: encryptedError } = encode(encryptedData, "base64url");
|
|
98
|
-
const { bytes: tagBytes, error: tagError } = encode(tag, "base64url");
|
|
99
|
-
if (ivError || encryptedError || tagError) {
|
|
100
|
-
return $err({
|
|
101
|
-
msg: "Crypto NodeJS: Failed to convert IV or encrypted data or tag",
|
|
102
|
-
desc: `Conversion error: ${ivError || encryptedError || tagError}`
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
try {
|
|
106
|
-
const decipher = nodeCrypto.createDecipheriv(NODE_ALGORITHM, secretKey, ivBytes);
|
|
107
|
-
decipher.setAuthTag(tagBytes);
|
|
108
|
-
const decrypted = Buffer.concat([decipher.update(encryptedBytes), decipher.final()]);
|
|
109
|
-
return decode(decrypted, "utf8");
|
|
110
|
-
} catch (error) {
|
|
111
|
-
return $err({ msg: "Crypto NodeJS: Failed to decrypt data", desc: $stringifyError(error) });
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
function encryptObj(data, secretKey) {
|
|
115
|
-
const { result, error } = stringifyObj(data);
|
|
116
|
-
if (error) return $err(error);
|
|
117
|
-
return encrypt(result, secretKey);
|
|
118
|
-
}
|
|
119
|
-
function decryptObj(encrypted, secretKey) {
|
|
120
|
-
const { result, error } = decrypt(encrypted, secretKey);
|
|
121
|
-
if (error) return $err(error);
|
|
122
|
-
return parseToObj(result);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
// src/node/export.ts
|
|
126
|
-
var export_exports = {};
|
|
127
|
-
__export(export_exports, {
|
|
128
|
-
createSecretKey: () => createSecretKey,
|
|
129
|
-
decode: () => decode,
|
|
130
|
-
decrypt: () => decrypt,
|
|
131
|
-
decryptObj: () => decryptObj,
|
|
132
|
-
encode: () => encode,
|
|
133
|
-
encrypt: () => encrypt,
|
|
134
|
-
encryptObj: () => encryptObj,
|
|
135
|
-
generateUuid: () => generateUuid,
|
|
136
|
-
hash: () => hash
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
export { createSecretKey, decode, decrypt, decryptObj, encode, encrypt, encryptObj, export_exports, generateUuid, hash };
|
|
140
|
-
//# sourceMappingURL=chunk-DC4WFPHL.js.map
|
|
141
|
-
//# sourceMappingURL=chunk-DC4WFPHL.js.map
|