diff --git a/src/lib/joinscript.js b/src/lib/joinscript.js index c1e6a77..2926f46 100644 --- a/src/lib/joinscript.js +++ b/src/lib/joinscript.js @@ -49,9 +49,9 @@ export default function (id, username, ip, port, membership) { script.ServerPort = Number(port); script.MembershipType = membership; - let joinscriptText = JSON.stringify(joinscript, null, null); + let joinscriptText = "\n" + JSON.stringify(joinscript); let sig = signer(joinscriptText); - joinscript = `--rbxsig%${sig}%\n${joinscriptText}`; + joinscript = `--rbxsig%${sig}%${joinscriptText}`; return joinscript; } diff --git a/src/lib/signer.js b/src/lib/signer.js index 4e5edee..155542f 100644 --- a/src/lib/signer.js +++ b/src/lib/signer.js @@ -1,11 +1,14 @@ import crypto from "crypto"; import { readFileSync } from "fs"; -export default function (input) { - const sign = crypto.createSign("sha1"); - sign.write(input); - sign.end(); +const key = readFileSync(process.cwd() + "/src/lib/PrivateKey.pem"); + +export default function (input) { + let sha1 = crypto.createHash("sha1"); + sha1.update(input); + + let hash = sha1.digest(); + let signature = crypto.privateEncrypt({ key, padding: crypto.constants.RSA_PKCS1_PADDING }, hash); - const signature = sign.sign(readFileSync(process.cwd() + "/src/lib/PrivateKey.pem")); return signature.toString("base64"); }