From 067eb2c3480f783808a9b76143f19502553d6ba8 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 20 Nov 2022 12:37:27 +0800 Subject: [PATCH] center: support node18 crypto --- packages/center/index.ts | 13 +++++++------ packages/center/package.json | 5 ++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/center/index.ts b/packages/center/index.ts index b211bf669..54e56c2cc 100644 --- a/packages/center/index.ts +++ b/packages/center/index.ts @@ -1,15 +1,15 @@ import assert from 'assert'; -import crypto from 'crypto'; +import crypto from 'crypto-js'; import { db, definePlugin, ForbiddenError, Handler, post, Types, yaml, } from 'hydrooj'; function decrypt(encrypted: string) { - if (!encrypted) throw new Error(); - const decipher = crypto.createDecipheriv('des-ecb', 'hydro-oj', ''); - let decrypted = decipher.update(encrypted, 'hex', 'utf8'); - decrypted += decipher.final('utf8'); - return decrypted; + return crypto.DES.decrypt( + { ciphertext: crypto.enc.Hex.parse(encrypted) }, + crypto.enc.Utf8.parse('hydro-oj'), + { mode: crypto.mode.ECB }, + ).toString(crypto.enc.Utf8); } declare module 'hydrooj' { @@ -38,6 +38,7 @@ class DataReportHandler extends Handler { try { assert(typeof payload.url === 'string'); } catch (e) { + console.log(payload); throw new ForbiddenError(); } const old = await coll.findOne({ _id: installId }); diff --git a/packages/center/package.json b/packages/center/package.json index da0ba57f5..d1dc42bff 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/center", - "version": "0.2.0", + "version": "0.2.1", "main": "index.ts", "repository": "https://github.com/hydro-dev/Hydro.git", "author": "undefined ", @@ -8,5 +8,8 @@ "preferUnplugged": true, "peerDependencies": { "hydrooj": "*" + }, + "dependencies": { + "crypto-js": "^4.1.1" } }