[webkit-changes] [WebKit/WebKit] 08e4dc: Improve clarity of cryptographically random number...

Darin Adler noreply at github.com
Thu Nov 10 16:32:14 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 08e4dc175b88c43782fd9d8f1f3f73166a090ff8
      https://github.com/WebKit/WebKit/commit/08e4dc175b88c43782fd9d8f1f3f73166a090ff8
  Author: Darin Adler <darin at apple.com>
  Date:   2022-11-10 (Thu, 10 Nov 2022)

  Changed paths:
    M Source/JavaScriptCore/assembler/AbstractMacroAssembler.cpp
    M Source/JavaScriptCore/assembler/AbstractMacroAssembler.h
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/HeapInlines.h
    M Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp
    M Source/JavaScriptCore/jit/ExecutableAllocator.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/VM.cpp
    M Source/WTF/WTF.xcodeproj/project.pbxproj
    M Source/WTF/wtf/CMakeLists.txt
    M Source/WTF/wtf/CryptographicallyRandomNumber.cpp
    M Source/WTF/wtf/CryptographicallyRandomNumber.h
    M Source/WTF/wtf/FileSystem.cpp
    M Source/WTF/wtf/HashTable.h
    M Source/WTF/wtf/LoggerHelper.h
    R Source/WTF/wtf/RandomNumber.cpp
    R Source/WTF/wtf/RandomNumber.h
    R Source/WTF/wtf/RandomNumberSeed.h
    M Source/WTF/wtf/RobinHoodHashTable.h
    M Source/WTF/wtf/Threading.cpp
    M Source/WTF/wtf/WeakRandom.h
    A Source/WTF/wtf/WeakRandomNumber.cpp
    A Source/WTF/wtf/WeakRandomNumber.h
    M Source/WebCore/Modules/cache/CacheStorageConnection.cpp
    M Source/WebCore/Modules/mediasession/MediaSession.cpp
    M Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp
    M Source/WebCore/Modules/mediastream/MediaDevices.cpp
    M Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
    M Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/loader/PrivateClickMeasurement.cpp
    M Source/WebCore/page/DOMTimer.cpp
    M Source/WebCore/page/DiagnosticLoggingClient.h
    M Source/WebCore/platform/graphics/TrackBuffer.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mediastream/RealtimeOutgoingAudioSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp
    M Source/WebCore/platform/network/FormDataBuilder.cpp
    M Source/WebCore/style/RuleSetBuilder.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkSocketStream.cpp
    M Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheData.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp
    M Source/WebKit/Platform/IPC/win/ConnectionWin.cpp
    M Source/WebKit/Platform/unix/SharedMemoryUnix.cpp
    M Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm
    M Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp
    M Source/WebKit/UIProcess/DeviceIdHashSaltStorage.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidDriver.cpp
    M Tools/Scripts/do-webcore-rename
    M Tools/TestWebKitAPI/Tests/WTF/BloomFilter.cpp
    M Tools/TestWebKitAPI/Tests/WTF/StdLibExtras.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm
    M Tools/WebKitTestRunner/TestController.cpp

  Log Message:
  -----------
  Improve clarity of cryptographically random number functions
https://bugs.webkit.org/show_bug.cgi?id=247581
rdar://problem/102057413

Reviewed by Don Olmstead.

* Source/JavaScriptCore/assembler/AbstractMacroAssembler.cpp:
(JSC::AbstractMacroAssemblerBase::initializeRandom): Use cryptographicallyRandomNumber<uint32_t>.

* Source/JavaScriptCore/assembler/AbstractMacroAssembler.h: Remove unneeded include.

* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::runBeginPhase): Use cryptographicallyRandomNumber<uint32_t>.

* Source/JavaScriptCore/heap/HeapInlines.h: Remove unneeded include.

* Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:
(Inspector::RemoteInspectorSocketEndpoint::generateConnectionID): Use
cryptographicallyRandomNumber<ConnectionID>. Also fix mistake where this was checking for the
empty value, but not the deleted value.

* Source/JavaScriptCore/jit/ExecutableAllocator.cpp: Use cryptographicallyRandomNumber<uint32_t>.

* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject): Use cryptographicallyRandomNumber<uint32_t>.
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::VM): Ditto.

* Source/WTF/WTF.xcodeproj/project.pbxproj: Rename RandomNumber.cpp/h to WeakRandomNumber.cpp/h.
Remove RandomNumberSeed.h.
* Source/WTF/wtf/CMakeLists.txt: Ditto.

* Source/WTF/wtf/CryptographicallyRandomNumber.cpp:
(WTF::cryptographicallyRandomNumber<uint32_t>): Renamed from cryptographicallyRandomNumber.
(WTF::cryptographicallyRandomNumber<uint64_t>): Added. Moved here from RandomNumber.cpp.
(WTF::cryptographicallyRandomUnitInterval): Added. Moved here from RandomNumber.cpp.

* Source/WTF/wtf/CryptographicallyRandomNumber.h: Moved all the cryptographically random
functions here from RandomNumber.h. Use template argument for the return type of
cryptographicallyRandomNumber.

* Source/WTF/wtf/FileSystem.cpp:
(WTF::FileSystemImpl::makeSalt): Use cryptographicallyRandomValues.

* Source/WTF/wtf/HashTable.h: Use weakRandomNumber<uint32_t>.

* Source/WTF/wtf/LoggerHelper.h: Use cryptographicallyRandomNumber<uint64_t>.

* Source/WTF/wtf/RandomNumberSeed.h: Removed.

* Source/WTF/wtf/RobinHoodHashTable.h:
(WTF::RobinHoodHashTable::random): Use weakRandomNumber<uint32_t>.

* Source/WTF/wtf/Threading.cpp:
(WTF::initialize): Removed call to initializeRandomNumberGenerator, since we don't use either of
the random number generators in WebKit any more that require initialization.

* Source/WTF/wtf/WeakRandom.h: Use cryptographicallyRandomNumber<unsigned>.

* Source/WTF/wtf/WeakRandomNumber.cpp: Renamed from RandomNumber.cpp.
(WTF::weakRandomNumber<unsigned>): Renamed from weakRandomUint32.
(WTF::cryptographicallyRandomUnitInterval): Deleted. Moved to
CryptographicallyRandomNumber.cpp.
(WTF::cryptographicallyRandomUint32): Ditto.
(WTF::cryptographicallyRandomUint64): Ditto.

* Source/WTF/wtf/WeakRandomNumber.h: Renamed from RandomNumber.h.
Removed other functions. Renamed weakRandomUint32 to weakRandomNumber<uint32_t> to match the name
of the cryptographicallyRandomNumber function.

* Source/WebCore/Modules/cache/CacheStorageConnection.cpp: Updated include.

* Source/WebCore/Modules/mediasession/MediaSession.cpp:
(WebCore::nextLogIdentifier): Use cryptographicallyRandomNumber<uint32_t>().
* Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::nextCoordinatorLogIdentifier): Ditto.

* Source/WebCore/Modules/mediastream/MediaDevices.cpp: Updated include.

* Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection): Use LoggerHelper::uniqueLogIdentifier
instead of replicating what it does here.

* Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:
(WebCore::nextLogIdentifier): Use cryptographicallyRandomNumber<uint32_t>.

* Source/WebCore/dom/Document.cpp:
(WebCore::sharedLoggerOwner): Use cryptographicallyRandomNumber<uint32_t>.

* Source/WebCore/loader/PrivateClickMeasurement.cpp: Updated include.
* Source/WebCore/page/DOMTimer.cpp: Ditto.
* Source/WebCore/page/DiagnosticLoggingClient.h: Ditto.

* Source/WebCore/platform/graphics/TrackBuffer.cpp:
(WebCore::TrackBuffer::setLogger): Use cryptographicallyRandomNumber<uint32_t>.

* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp: Removed unneeded include.
* Source/WebCore/platform/mediastream/RealtimeOutgoingAudioSource.cpp: Ditto.

* Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:
(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource): Use
weakRandomNumber<uint32_t>.

* Source/WebCore/platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::generateUniqueBoundaryString): Use
cryptographicallyRandomNumber<unsigned>.

* Source/WebCore/style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::pushCascadeLayer): Use cryptographicallyRandomNumber<uint64_t>.

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::randomClosedPortDelay): Use cryptographicallyRandomUnitInterval.

* Source/WebKit/NetworkProcess/NetworkSocketStream.cpp: Removed unneeded include.

* Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::randomlyBetweenFifteenAndThirtyMinutes const):
Use cryptographicallyRandomNumber<uint32_t>.

* Source/WebKit/NetworkProcess/cache/NetworkCacheData.cpp: Removed unneeded include.

* Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp: Updated include.

* Source/WebKit/Platform/IPC/win/ConnectionWin.cpp: Use cryptographicallyRandomNumber<unsigned>.
* Source/WebKit/Platform/unix/SharedMemoryUnix.cpp: Ditto.

* Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm: Removed unneeded include.

* Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::nextLogIdentifier): Use cryptographicallyRandomNumber<uint32_t>.

* Source/WebKit/UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::completeDeviceIdHashSaltForOriginCall): Removed unneeded type
cast from call to cryptographicallyRandomValues.

* Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidDriver.cpp:
(WebKit::CtapHidDriver::transact): Use weakRandomNumber<uint32_t>.

* Tools/Scripts/do-webcore-rename: Use to rename the files.

* Tools/TestWebKitAPI/Tests/WTF/BloomFilter.cpp:
(TestWebKitAPI::generateRandomHashes): Use cryptographicallyRandomNumber<uint32_t>.

* Tools/TestWebKitAPI/Tests/WTF/StdLibExtras.cpp: Updated include.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]):
Use weakRandomNumber<uint32_t>.

* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories): Use
cryptographicallyRandomNumber<uint32_t>.

Canonical link: https://commits.webkit.org/256555@main




More information about the webkit-changes mailing list