From 34300aaaa4e7c813df0e50ce75c90d06c508288a Mon Sep 17 00:00:00 2001 From: Gerhard Stoebich Date: Tue, 26 Jun 2018 23:49:47 +0200 Subject: [PATCH] doc: correct crypto.randomFill() and randomFillSync() Correct return type of `crypto.randomFillSync()` which is of same type as passed as `buffer` argument. Correct samples for `randomFill()` and `randomFillSync()` using a `TypeArray` or `DataView` as these types don't support `.toString(encoding)`. PR-URL: https://github.com/nodejs/node/pull/21550 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- doc/api/crypto.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/doc/api/crypto.md b/doc/api/crypto.md index 87f26716af3230..ea718bd1db2e6e 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -2044,7 +2044,7 @@ changes: * `buffer` {Buffer|TypedArray|DataView} Must be supplied. * `offset` {number} **Default:** `0` * `size` {number} **Default:** `buffer.length - offset` -* Returns: {Buffer} +* Returns: {Buffer|TypedArray|DataView} The object passed as `buffer` argument. Synchronous version of [`crypto.randomFill()`][]. @@ -2064,13 +2064,16 @@ Any `TypedArray` or `DataView` instance may be passed as `buffer`. ```js const a = new Uint32Array(10); -console.log(crypto.randomFillSync(a).toString('hex')); +console.log(Buffer.from(crypto.randomFillSync(a).buffer, + a.byteOffset, a.byteLength).toString('hex')); const b = new Float64Array(10); -console.log(crypto.randomFillSync(b).toString('hex')); +console.log(Buffer.from(crypto.randomFillSync(b).buffer, + b.byteOffset, b.byteLength).toString('hex')); const c = new DataView(new ArrayBuffer(10)); -console.log(crypto.randomFillSync(c).toString('hex')); +console.log(Buffer.from(crypto.randomFillSync(c).buffer, + c.byteOffset, c.byteLength).toString('hex')); ``` ### crypto.randomFill(buffer[, offset][, size], callback) @@ -2118,19 +2121,22 @@ Any `TypedArray` or `DataView` instance may be passed as `buffer`. const a = new Uint32Array(10); crypto.randomFill(a, (err, buf) => { if (err) throw err; - console.log(buf.toString('hex')); + console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + .toString('hex')); }); const b = new Float64Array(10); crypto.randomFill(b, (err, buf) => { if (err) throw err; - console.log(buf.toString('hex')); + console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + .toString('hex')); }); const c = new DataView(new ArrayBuffer(10)); crypto.randomFill(c, (err, buf) => { if (err) throw err; - console.log(buf.toString('hex')); + console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + .toString('hex')); }); ```