Skip to content
File

Blob: samples/nodejs-compat-crypto/worker.js

javascript43 lines
1import {
2 randomFill,
3 randomFillSync,
4 randomBytes,
5 randomInt,
6 randomUUID,
7 scryptSync,
8} from 'node:crypto';
9 
10import { promisify } from 'node:util';
11 
12export default {
13 async fetch() {
14 
15 // Random bytes, numbers, and UUIDs
16 const buf = new Uint8Array(10);
17 randomFillSync(buf);
18 console.log(buf);
19 await promisify(randomFill)(buf);
20 console.log(buf);
21 console.log(randomBytes(10));
22 console.log(await promisify(randomBytes)(10));
23 console.log(randomInt(0, 10));
24 console.log(randomInt(10));
25 console.log(await promisify(randomInt)(10));
26 console.log(randomUUID());
27 
28 // Scrypt
29 const password = 'password';
30 const salt = 'salt';
31 const keylen = 64;
32 const options = {
33 N: 16384,
34 r: 8,
35 p: 1,
36 maxmem: 32 << 20,
37 };
38 console.log(scryptSync(password, salt, keylen, options));
39 
40 return new Response("ok");
41 }
42};