feat: update random

This commit is contained in:
2025-09-19 00:07:57 +08:00
parent ca09d56fe4
commit 6f07f2e37a
2 changed files with 11 additions and 9 deletions

View File

@@ -89,12 +89,12 @@
}, },
"random.ts": { "random.ts": {
"script_name": "random.ts", "script_name": "random.ts",
"script_length": 780, "script_length": 872,
"script_sha256": "71a282b63f97e0f6d0c5dd93bf1e71a395233e73ece741ec59b5f559ce9e82b1", "script_sha256": "0b101da5dd9a5dfceaa3bafd856a1dee98070d9a675c4d554ebd53f3e66d9549",
"script_full_url": "https://git.hatter.ink/hatter/ts-scripts/raw/branch/main/single-scripts/random.ts", "script_full_url": "https://git.hatter.ink/hatter/ts-scripts/raw/branch/main/single-scripts/random.ts",
"single_script_file": true, "single_script_file": true,
"publish_time": 1758211365931, "publish_time": 1758211365931,
"update_time": 1758211365931 "update_time": 1758211655417
}, },
"sigstore-verify.ts": { "sigstore-verify.ts": {
"script_name": "sigstore-verify.ts", "script_name": "sigstore-verify.ts",

View File

@@ -3,23 +3,25 @@
import { parseArgs } from "jsr:@std/cli/parse-args"; import { parseArgs } from "jsr:@std/cli/parse-args";
const flags = parseArgs(Deno.args, { const flags = parseArgs(Deno.args, {
boolean: ["help"], boolean: ["help", "secure-random"],
string: ["length"], string: ["length"],
}); });
if (flags.help) { if (flags.help) {
console.log("random.ts [--post-message] [--length <length>]"); console.log("random.ts [--secure-random] [--length <length>]");
Deno.exit(0); Deno.exit(0);
} }
const len = parseInt(flags.length || "12", 10); const len = parseInt(flags.length || "12", 10);
const randDevice = flags["secure-random"]? "/dev/random": "/dev/urandom";
const buffer = new Uint8Array(len); const buffer = new Uint8Array(len);
const file = await Deno.open("/dev/random", { read: true }); const file = await Deno.open(randDevice, { read: true });
try { try {
const nread = await file.read(buffer); const nread = await file.read(buffer);
if (nread == null) { if (nread == null) {
throw "Read from /dev/random failed"; throw `Read from ${randDevice} failed`;
} }
} finally { } finally {
file.close(); file.close();
@@ -27,5 +29,5 @@ try {
Deno.stdout.write(buffer); Deno.stdout.write(buffer);
// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.20250919T000056+08:00.MEUCIQD0uwOh8xr+8Oog7x6s // @SCRIPT-SIGNATURE-V1: yk-r1.ES256.20250919T000646+08:00.MEYCIQC4rLURXnLhxeA870Wv
// cUutQYrO4oFkS+SU1mZogTFuwAIgE7PWbiDvzAKFUSCc0byrdwWkXrcJp+7CDWr3+e83Zy4= // O9OFCHPUcepoqOMgVxT1sDgV7gIhAM5SoaS2EWjqDMngyPTufuwaqv4Gza8CXzddrKq68DTD