LibWeb: Use Crypto::fill_with_secure_random instead of PRNG

This commit is contained in:
rmg-x 2024-12-20 10:34:14 -06:00 committed by Ali Mohammad Pur
commit ceb7f5f017
Notes: github-actions[bot] 2024-12-24 16:55:54 +00:00
2 changed files with 5 additions and 4 deletions

View file

@ -7,6 +7,7 @@
#include <AK/Random.h>
#include <AK/StringBuilder.h>
#include <LibCrypto/SecureRandom.h>
#include <LibJS/Runtime/TypedArray.h>
#include <LibWeb/Bindings/CryptoPrototype.h>
#include <LibWeb/Bindings/ExceptionOrUtils.h>
@ -67,7 +68,7 @@ WebIDL::ExceptionOr<GC::Root<WebIDL::ArrayBufferView>> Crypto::get_random_values
// FIXME: Handle SharedArrayBuffers
// 3. Overwrite all elements of array with cryptographically strong random values of the appropriate type.
fill_with_random(array->viewed_array_buffer()->buffer().bytes().slice(array->byte_offset(), array->byte_length()));
::Crypto::fill_with_secure_random(array->viewed_array_buffer()->buffer().bytes().slice(array->byte_offset(), array->byte_length()));
// 4. Return array.
return array;
@ -94,7 +95,7 @@ ErrorOr<String> generate_random_uuid()
u8 bytes[16];
// 2. Fill bytes with cryptographically secure random bytes.
fill_with_random(bytes);
::Crypto::fill_with_secure_random(bytes);
// 3. Set the 4 most significant bits of bytes[6], which represent the UUID version, to 0100.
bytes[6] &= ~(1 << 7);