UNPKG

@shadow-dev/core

Version:

A modular core framework for Discord bot development, providing commands, buttons, menus, middleware, and more.

25 lines (24 loc) 1.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateSecureToken = generateSecureToken; exports.generateApiKey = generateApiKey; exports.signHMAC = signHMAC; exports.verifyHMAC = verifyHMAC; const crypto_1 = __importDefault(require("crypto")); function generateSecureToken(length = 48) { return crypto_1.default.randomBytes(length).toString("hex"); } function generateApiKey(prefix = "sck", byteLength = 32) { const raw = crypto_1.default.randomBytes(byteLength).toString("base64url"); return `${prefix}_${raw}`; } function signHMAC(data, secret) { return crypto_1.default.createHmac("sha256", secret).update(data).digest("hex"); } function verifyHMAC(data, secret, signature) { const expected = signHMAC(data, secret); return crypto_1.default.timingSafeEqual(Buffer.from(expected), Buffer.from(signature)); }