Skip to content

Commit bbc43e1

Browse files
committed
fix: 修复配置多种登录方式时,可能导致验证码解密失败的bug
1 parent 7f20297 commit bbc43e1

62 files changed

Lines changed: 2014 additions & 1800 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/index.mjs

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,13 @@ __export(crypto_exports, {
122122
encryptBackupFile: () => encryptBackupFile,
123123
encryptData: () => encryptData,
124124
encryptWithRSAPublicKey: () => encryptWithRSAPublicKey,
125+
generateAllDeviceKeys: () => generateAllDeviceKeys,
125126
generateDeviceKey: () => generateDeviceKey,
126127
generatePKCE: () => generatePKCE,
127128
generateSecureJWT: () => generateSecureJWT,
128129
getDerivedEncryptionKey: () => getDerivedEncryptionKey,
129130
getDerivedLicenseKey: () => getDerivedLicenseKey,
131+
getSingleTenantId: () => getSingleTenantId,
130132
initializeEnv: () => initializeEnv,
131133
normalizeSecret: () => normalizeSecret,
132134
verifySecureJWT: () => verifySecureJWT
@@ -428,6 +430,27 @@ async function encryptWithRSAPublicKey(data, publicKeyBase64) {
428430
return data;
429431
}
430432
}
433+
function getSingleTenantId(allowedUsersStr) {
434+
if (!allowedUsersStr) return "nodeauth_single_tenant";
435+
const firstUser = allowedUsersStr.split(",")[0].trim();
436+
return firstUser || "nodeauth_single_tenant";
437+
}
438+
async function generateAllDeviceKeys(allowedUsersStr, secret) {
439+
const tenants = ["nodeauth_single_tenant"];
440+
if (allowedUsersStr) {
441+
const users = allowedUsersStr.split(",").map((u) => u.trim()).filter((u) => !!u);
442+
for (const u of users) {
443+
if (!tenants.includes(u)) {
444+
tenants.push(u);
445+
}
446+
}
447+
}
448+
const keys = [];
449+
for (const t2 of tenants) {
450+
keys.push(await generateDeviceKey(t2, secret));
451+
}
452+
return keys.join(",");
453+
}
431454
var CRYPTO_CONFIG, derivedKeyCache;
432455
var init_crypto = __esm({
433456
"src/shared/utils/crypto.ts"() {
@@ -62479,7 +62502,7 @@ var AuthService = class {
6247962502
this.verifyWhitelist(userInfo, provider.whitelistFields);
6248062503
const sessionId = await this.sessionService.createSession(userInfo.email || userInfo.id, userAgent, clientIp, deviceId, providerName);
6248162504
const token = await this.generateSystemToken(userInfo, sessionId);
62482-
const deviceKey = await generateDeviceKey(userInfo.email || userInfo.id, this.env.JWT_SECRET || "");
62505+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6248362506
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6248462507
const needsEmergency = !isEmergencyConfirmed;
6248562508
return {
@@ -66190,7 +66213,7 @@ var WebAuthnService = class {
6619066213
email: userEmail.includes("@") ? userEmail : void 0,
6619166214
provider: "passkey"
6619266215
}, sessionId);
66193-
const deviceKey = await generateDeviceKey(userEmail, this.env.JWT_SECRET || "");
66216+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6619466217
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6619566218
const needsEmergency = !isEmergencyConfirmed;
6619666219
return {
@@ -73817,7 +73840,7 @@ var Web3WalletAuthService = class {
7381773840
this.verifyWhitelist(normalizedAddress);
7381873841
const sessionId = await this.sessionService.createSession(normalizedAddress, userAgent, clientIp, deviceId, "web3");
7381973842
const token = await this.generateSystemToken(normalizedAddress, sessionId);
73820-
const deviceKey = await generateDeviceKey(normalizedAddress, this.env.JWT_SECRET || "");
73843+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
7382173844
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
7382273845
const needsEmergency = !isEmergencyConfirmed;
7382373846
return {
@@ -74005,12 +74028,14 @@ auth.get("/me", authMiddleware, async (c) => {
7400574028
const isEmergencyConfirmed = await repository.isEmergencyConfirmed();
7400674029
const encryptionKey = !isEmergencyConfirmed ? c.env.ENCRYPTION_KEY : void 0;
7400774030
const license = !isEmergencyConfirmed ? c.env.NODEAUTH_LICENSE : void 0;
74008-
const { generateDeviceKey: generateDeviceKey3, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
74009-
const deviceKey = await generateDeviceKey3(user.email || user.id, c.env.JWT_SECRET || "");
74031+
const { generateDeviceKey: generateDeviceKey6, generateAllDeviceKeys: generateAllDeviceKeys2, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
74032+
const deviceKey = await generateAllDeviceKeys2(c.env.OAUTH_ALLOWED_USERS, c.env.JWT_SECRET || "");
7401074033
const publicKey = c.req.header("X-Public-Key");
7401174034
let finalDeviceKey = deviceKey;
7401274035
if (publicKey && deviceKey) {
74013-
finalDeviceKey = await encryptWithRSAPublicKey2(deviceKey, publicKey);
74036+
const chunks = deviceKey.match(/.{1,150}/g) || [];
74037+
const encryptedChunks = await Promise.all(chunks.map((chunk) => encryptWithRSAPublicKey2(chunk, publicKey)));
74038+
finalDeviceKey = encryptedChunks.join(".");
7401474039
}
7401574040
return c.json({
7401674041
success: true,

api/index.mjs.map

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

backend/dist/docker/server.js

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,11 +1476,13 @@ __export(crypto_exports, {
14761476
encryptBackupFile: () => encryptBackupFile,
14771477
encryptData: () => encryptData,
14781478
encryptWithRSAPublicKey: () => encryptWithRSAPublicKey,
1479+
generateAllDeviceKeys: () => generateAllDeviceKeys,
14791480
generateDeviceKey: () => generateDeviceKey,
14801481
generatePKCE: () => generatePKCE,
14811482
generateSecureJWT: () => generateSecureJWT,
14821483
getDerivedEncryptionKey: () => getDerivedEncryptionKey,
14831484
getDerivedLicenseKey: () => getDerivedLicenseKey,
1485+
getSingleTenantId: () => getSingleTenantId,
14841486
initializeEnv: () => initializeEnv,
14851487
normalizeSecret: () => normalizeSecret,
14861488
verifySecureJWT: () => verifySecureJWT
@@ -1782,6 +1784,27 @@ async function encryptWithRSAPublicKey(data, publicKeyBase64) {
17821784
return data;
17831785
}
17841786
}
1787+
function getSingleTenantId(allowedUsersStr) {
1788+
if (!allowedUsersStr) return "nodeauth_single_tenant";
1789+
const firstUser = allowedUsersStr.split(",")[0].trim();
1790+
return firstUser || "nodeauth_single_tenant";
1791+
}
1792+
async function generateAllDeviceKeys(allowedUsersStr, secret) {
1793+
const tenants = ["nodeauth_single_tenant"];
1794+
if (allowedUsersStr) {
1795+
const users = allowedUsersStr.split(",").map((u) => u.trim()).filter((u) => !!u);
1796+
for (const u of users) {
1797+
if (!tenants.includes(u)) {
1798+
tenants.push(u);
1799+
}
1800+
}
1801+
}
1802+
const keys = [];
1803+
for (const t2 of tenants) {
1804+
keys.push(await generateDeviceKey(t2, secret));
1805+
}
1806+
return keys.join(",");
1807+
}
17851808
var CRYPTO_CONFIG, derivedKeyCache;
17861809
var init_crypto = __esm({
17871810
"src/shared/utils/crypto.ts"() {
@@ -52706,7 +52729,7 @@ var AuthService = class {
5270652729
this.verifyWhitelist(userInfo, provider.whitelistFields);
5270752730
const sessionId = await this.sessionService.createSession(userInfo.email || userInfo.id, userAgent, clientIp, deviceId, providerName);
5270852731
const token = await this.generateSystemToken(userInfo, sessionId);
52709-
const deviceKey = await generateDeviceKey(userInfo.email || userInfo.id, this.env.JWT_SECRET || "");
52732+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
5271052733
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
5271152734
const needsEmergency = !isEmergencyConfirmed;
5271252735
return {
@@ -56417,7 +56440,7 @@ var WebAuthnService = class {
5641756440
email: userEmail.includes("@") ? userEmail : void 0,
5641856441
provider: "passkey"
5641956442
}, sessionId);
56420-
const deviceKey = await generateDeviceKey(userEmail, this.env.JWT_SECRET || "");
56443+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
5642156444
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
5642256445
const needsEmergency = !isEmergencyConfirmed;
5642356446
return {
@@ -64044,7 +64067,7 @@ var Web3WalletAuthService = class {
6404464067
this.verifyWhitelist(normalizedAddress);
6404564068
const sessionId = await this.sessionService.createSession(normalizedAddress, userAgent, clientIp, deviceId, "web3");
6404664069
const token = await this.generateSystemToken(normalizedAddress, sessionId);
64047-
const deviceKey = await generateDeviceKey(normalizedAddress, this.env.JWT_SECRET || "");
64070+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6404864071
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6404964072
const needsEmergency = !isEmergencyConfirmed;
6405064073
return {
@@ -64232,12 +64255,14 @@ auth.get("/me", authMiddleware, async (c) => {
6423264255
const isEmergencyConfirmed = await repository.isEmergencyConfirmed();
6423364256
const encryptionKey = !isEmergencyConfirmed ? c.env.ENCRYPTION_KEY : void 0;
6423464257
const license = !isEmergencyConfirmed ? c.env.NODEAUTH_LICENSE : void 0;
64235-
const { generateDeviceKey: generateDeviceKey3, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
64236-
const deviceKey = await generateDeviceKey3(user.email || user.id, c.env.JWT_SECRET || "");
64258+
const { generateDeviceKey: generateDeviceKey6, generateAllDeviceKeys: generateAllDeviceKeys2, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
64259+
const deviceKey = await generateAllDeviceKeys2(c.env.OAUTH_ALLOWED_USERS, c.env.JWT_SECRET || "");
6423764260
const publicKey = c.req.header("X-Public-Key");
6423864261
let finalDeviceKey = deviceKey;
6423964262
if (publicKey && deviceKey) {
64240-
finalDeviceKey = await encryptWithRSAPublicKey2(deviceKey, publicKey);
64263+
const chunks = deviceKey.match(/.{1,150}/g) || [];
64264+
const encryptedChunks = await Promise.all(chunks.map((chunk) => encryptWithRSAPublicKey2(chunk, publicKey)));
64265+
finalDeviceKey = encryptedChunks.join(".");
6424164266
}
6424264267
return c.json({
6424364268
success: true,

backend/dist/docker/server.js.map

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/dist/edgeone/index.js

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,13 @@ __export(crypto_exports, {
122122
encryptBackupFile: () => encryptBackupFile,
123123
encryptData: () => encryptData,
124124
encryptWithRSAPublicKey: () => encryptWithRSAPublicKey,
125+
generateAllDeviceKeys: () => generateAllDeviceKeys,
125126
generateDeviceKey: () => generateDeviceKey,
126127
generatePKCE: () => generatePKCE,
127128
generateSecureJWT: () => generateSecureJWT,
128129
getDerivedEncryptionKey: () => getDerivedEncryptionKey,
129130
getDerivedLicenseKey: () => getDerivedLicenseKey,
131+
getSingleTenantId: () => getSingleTenantId,
130132
initializeEnv: () => initializeEnv,
131133
normalizeSecret: () => normalizeSecret,
132134
verifySecureJWT: () => verifySecureJWT
@@ -428,6 +430,27 @@ async function encryptWithRSAPublicKey(data, publicKeyBase64) {
428430
return data;
429431
}
430432
}
433+
function getSingleTenantId(allowedUsersStr) {
434+
if (!allowedUsersStr) return "nodeauth_single_tenant";
435+
const firstUser = allowedUsersStr.split(",")[0].trim();
436+
return firstUser || "nodeauth_single_tenant";
437+
}
438+
async function generateAllDeviceKeys(allowedUsersStr, secret) {
439+
const tenants = ["nodeauth_single_tenant"];
440+
if (allowedUsersStr) {
441+
const users = allowedUsersStr.split(",").map((u) => u.trim()).filter((u) => !!u);
442+
for (const u of users) {
443+
if (!tenants.includes(u)) {
444+
tenants.push(u);
445+
}
446+
}
447+
}
448+
const keys = [];
449+
for (const t2 of tenants) {
450+
keys.push(await generateDeviceKey(t2, secret));
451+
}
452+
return keys.join(",");
453+
}
431454
var CRYPTO_CONFIG, derivedKeyCache;
432455
var init_crypto = __esm({
433456
"src/shared/utils/crypto.ts"() {
@@ -62479,7 +62502,7 @@ var AuthService = class {
6247962502
this.verifyWhitelist(userInfo, provider.whitelistFields);
6248062503
const sessionId = await this.sessionService.createSession(userInfo.email || userInfo.id, userAgent, clientIp, deviceId, providerName);
6248162504
const token = await this.generateSystemToken(userInfo, sessionId);
62482-
const deviceKey = await generateDeviceKey(userInfo.email || userInfo.id, this.env.JWT_SECRET || "");
62505+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6248362506
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6248462507
const needsEmergency = !isEmergencyConfirmed;
6248562508
return {
@@ -66190,7 +66213,7 @@ var WebAuthnService = class {
6619066213
email: userEmail.includes("@") ? userEmail : void 0,
6619166214
provider: "passkey"
6619266215
}, sessionId);
66193-
const deviceKey = await generateDeviceKey(userEmail, this.env.JWT_SECRET || "");
66216+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6619466217
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6619566218
const needsEmergency = !isEmergencyConfirmed;
6619666219
return {
@@ -73817,7 +73840,7 @@ var Web3WalletAuthService = class {
7381773840
this.verifyWhitelist(normalizedAddress);
7381873841
const sessionId = await this.sessionService.createSession(normalizedAddress, userAgent, clientIp, deviceId, "web3");
7381973842
const token = await this.generateSystemToken(normalizedAddress, sessionId);
73820-
const deviceKey = await generateDeviceKey(normalizedAddress, this.env.JWT_SECRET || "");
73843+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
7382173844
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
7382273845
const needsEmergency = !isEmergencyConfirmed;
7382373846
return {
@@ -74005,12 +74028,14 @@ auth.get("/me", authMiddleware, async (c) => {
7400574028
const isEmergencyConfirmed = await repository.isEmergencyConfirmed();
7400674029
const encryptionKey = !isEmergencyConfirmed ? c.env.ENCRYPTION_KEY : void 0;
7400774030
const license = !isEmergencyConfirmed ? c.env.NODEAUTH_LICENSE : void 0;
74008-
const { generateDeviceKey: generateDeviceKey3, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
74009-
const deviceKey = await generateDeviceKey3(user.email || user.id, c.env.JWT_SECRET || "");
74031+
const { generateDeviceKey: generateDeviceKey6, generateAllDeviceKeys: generateAllDeviceKeys2, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
74032+
const deviceKey = await generateAllDeviceKeys2(c.env.OAUTH_ALLOWED_USERS, c.env.JWT_SECRET || "");
7401074033
const publicKey = c.req.header("X-Public-Key");
7401174034
let finalDeviceKey = deviceKey;
7401274035
if (publicKey && deviceKey) {
74013-
finalDeviceKey = await encryptWithRSAPublicKey2(deviceKey, publicKey);
74036+
const chunks = deviceKey.match(/.{1,150}/g) || [];
74037+
const encryptedChunks = await Promise.all(chunks.map((chunk) => encryptWithRSAPublicKey2(chunk, publicKey)));
74038+
finalDeviceKey = encryptedChunks.join(".");
7401474039
}
7401574040
return c.json({
7401674041
success: true,

backend/dist/edgeone/index.js.map

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/dist/netlify/api.mjs

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,13 @@ __export(crypto_exports, {
121121
encryptBackupFile: () => encryptBackupFile,
122122
encryptData: () => encryptData,
123123
encryptWithRSAPublicKey: () => encryptWithRSAPublicKey,
124+
generateAllDeviceKeys: () => generateAllDeviceKeys,
124125
generateDeviceKey: () => generateDeviceKey,
125126
generatePKCE: () => generatePKCE,
126127
generateSecureJWT: () => generateSecureJWT,
127128
getDerivedEncryptionKey: () => getDerivedEncryptionKey,
128129
getDerivedLicenseKey: () => getDerivedLicenseKey,
130+
getSingleTenantId: () => getSingleTenantId,
129131
initializeEnv: () => initializeEnv,
130132
normalizeSecret: () => normalizeSecret,
131133
verifySecureJWT: () => verifySecureJWT
@@ -427,6 +429,27 @@ async function encryptWithRSAPublicKey(data, publicKeyBase64) {
427429
return data;
428430
}
429431
}
432+
function getSingleTenantId(allowedUsersStr) {
433+
if (!allowedUsersStr) return "nodeauth_single_tenant";
434+
const firstUser = allowedUsersStr.split(",")[0].trim();
435+
return firstUser || "nodeauth_single_tenant";
436+
}
437+
async function generateAllDeviceKeys(allowedUsersStr, secret) {
438+
const tenants = ["nodeauth_single_tenant"];
439+
if (allowedUsersStr) {
440+
const users = allowedUsersStr.split(",").map((u) => u.trim()).filter((u) => !!u);
441+
for (const u of users) {
442+
if (!tenants.includes(u)) {
443+
tenants.push(u);
444+
}
445+
}
446+
}
447+
const keys = [];
448+
for (const t2 of tenants) {
449+
keys.push(await generateDeviceKey(t2, secret));
450+
}
451+
return keys.join(",");
452+
}
430453
var CRYPTO_CONFIG, derivedKeyCache;
431454
var init_crypto = __esm({
432455
"src/shared/utils/crypto.ts"() {
@@ -62478,7 +62501,7 @@ var AuthService = class {
6247862501
this.verifyWhitelist(userInfo, provider.whitelistFields);
6247962502
const sessionId = await this.sessionService.createSession(userInfo.email || userInfo.id, userAgent, clientIp, deviceId, providerName);
6248062503
const token = await this.generateSystemToken(userInfo, sessionId);
62481-
const deviceKey = await generateDeviceKey(userInfo.email || userInfo.id, this.env.JWT_SECRET || "");
62504+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6248262505
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6248362506
const needsEmergency = !isEmergencyConfirmed;
6248462507
return {
@@ -66189,7 +66212,7 @@ var WebAuthnService = class {
6618966212
email: userEmail.includes("@") ? userEmail : void 0,
6619066213
provider: "passkey"
6619166214
}, sessionId);
66192-
const deviceKey = await generateDeviceKey(userEmail, this.env.JWT_SECRET || "");
66215+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
6619366216
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
6619466217
const needsEmergency = !isEmergencyConfirmed;
6619566218
return {
@@ -73816,7 +73839,7 @@ var Web3WalletAuthService = class {
7381673839
this.verifyWhitelist(normalizedAddress);
7381773840
const sessionId = await this.sessionService.createSession(normalizedAddress, userAgent, clientIp, deviceId, "web3");
7381873841
const token = await this.generateSystemToken(normalizedAddress, sessionId);
73819-
const deviceKey = await generateDeviceKey(normalizedAddress, this.env.JWT_SECRET || "");
73842+
const deviceKey = await generateAllDeviceKeys(this.env.OAUTH_ALLOWED_USERS, this.env.JWT_SECRET || "");
7382073843
const isEmergencyConfirmed = await this.emergencyRepository.isEmergencyConfirmed();
7382173844
const needsEmergency = !isEmergencyConfirmed;
7382273845
return {
@@ -74004,12 +74027,14 @@ auth.get("/me", authMiddleware, async (c) => {
7400474027
const isEmergencyConfirmed = await repository.isEmergencyConfirmed();
7400574028
const encryptionKey = !isEmergencyConfirmed ? c.env.ENCRYPTION_KEY : void 0;
7400674029
const license = !isEmergencyConfirmed ? c.env.NODEAUTH_LICENSE : void 0;
74007-
const { generateDeviceKey: generateDeviceKey3, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
74008-
const deviceKey = await generateDeviceKey3(user.email || user.id, c.env.JWT_SECRET || "");
74030+
const { generateDeviceKey: generateDeviceKey6, generateAllDeviceKeys: generateAllDeviceKeys2, encryptWithRSAPublicKey: encryptWithRSAPublicKey2 } = await Promise.resolve().then(() => (init_crypto(), crypto_exports));
74031+
const deviceKey = await generateAllDeviceKeys2(c.env.OAUTH_ALLOWED_USERS, c.env.JWT_SECRET || "");
7400974032
const publicKey = c.req.header("X-Public-Key");
7401074033
let finalDeviceKey = deviceKey;
7401174034
if (publicKey && deviceKey) {
74012-
finalDeviceKey = await encryptWithRSAPublicKey2(deviceKey, publicKey);
74035+
const chunks = deviceKey.match(/.{1,150}/g) || [];
74036+
const encryptedChunks = await Promise.all(chunks.map((chunk) => encryptWithRSAPublicKey2(chunk, publicKey)));
74037+
finalDeviceKey = encryptedChunks.join(".");
7401374038
}
7401474039
return c.json({
7401574040
success: true,

backend/dist/netlify/api.mjs.map

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)