// Jose.$encrypt 任意明文字符串(不做JSON包装). 用于 form-encode payload. // CLI: node tools/jose_encrypt_raw.js '' -> stdout: base64 verifyParam const { makeBox, primeBox } = require("./jose_encrypt.js"); const vm = require("vm"); const plaintext = process.argv[2]; if (plaintext === undefined) { console.error("usage: jose_encrypt_raw.js ''"); process.exit(2); } const box = makeBox(); primeBox(box); box.__done = null; box.__out = null; vm.runInContext(`__enc(${JSON.stringify(plaintext)});`, box); const t0 = Date.now(); const iv = setInterval(() => { if (box.__done !== null || Date.now() - t0 > 5000) { clearInterval(iv); if (box.__done !== "ok") { console.error(box.__out || "ERR:timeout"); process.exit(1); } process.stdout.write(box.__out || ""); } }, 5);