From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- netwerk/base/nsIRandomGenerator.idl | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 netwerk/base/nsIRandomGenerator.idl (limited to 'netwerk/base/nsIRandomGenerator.idl') diff --git a/netwerk/base/nsIRandomGenerator.idl b/netwerk/base/nsIRandomGenerator.idl new file mode 100644 index 0000000000..576483b549 --- /dev/null +++ b/netwerk/base/nsIRandomGenerator.idl @@ -0,0 +1,46 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +%{C++ +#include +%} + +/** + * Interface used to generate random data. + * + * @threadsafe + */ +[scriptable, uuid(2362d97a-747a-4576-8863-697667309209)] +interface nsIRandomGenerator : nsISupports { + /** + * Generates the specified amount of random bytes. + * + * @param aLength + * The length of the data to generate. + * @param aBuffer + * A buffer that contains random bytes of size aLength. + */ + void generateRandomBytes(in unsigned long aLength, + [retval, array, size_is(aLength)] out octet aBuffer); + + /** + * Fills aBuffer with random bytes. + * + * @param aBuffer + * A buffer to fill with random bytes. + * @param aLength + * Length of aBuffer. + */ + void generateRandomBytesInto([array, size_is(aLength)] in octet aBuffer, + in unsigned long aLength); + +%{C++ + template + std::enable_if_t, nsresult> GenerateRandomBytesInto(T& aResult) { + return GenerateRandomBytesInto(reinterpret_cast(&aResult), sizeof(T)); + } +%} +}; -- cgit v1.2.3