Please read Google's instructions carefully, then complete every step before Setting up the build.
The rest of the instructions will use %CHROMIUM_ROOT% to refer to the root directory of the Chromium source code.
You may set CHROMIUM_ROOT
variable by running set CHROMIUM_ROOT=/path/to/the/Chromium/source
in Command Prompt.
In Command Prompt, run following commands:
cd %CHROMIUM_ROOT%
git checkout tags/117.0.5863.0
gclient sync
In Command Prompt, run following commands:
cd %CHROMIUM_ROOT%/third_party/boringssl/src
git remote add oqs-bssl https://github.com/open-quantum-safe/boringssl
git fetch oqs-bssl
git checkout -b oqs-bssl-master 1ca41b49e9198f510991fb4f350b4a5fd4c1d5ff
Choose a directory to store the liboqs source code and use the cd
command to move to that directory. We will use msbuild instead of ninja to build liboqs.
Start x64 Native Tools Command Prompt for VS 2022 (usually it's in C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022\Visual Studio Tools\VC) and run following commands:
git clone https://github.com/open-quantum-safe/liboqs.git --branch 0.8.0 --single-branch
cd liboqs && mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=%CHROMIUM_ROOT%/third_party/boringssl/src/oqs -DOQS_USE_OPENSSL=OFF
msbuild ALL_BUILD.vcxproj
msbuild INSTALL.vcxproj
Download the oqs-changes.patch and save it at %CHROMIUM_ROOT%, then apply the patch by running
git apply oqs-changes.patch
Open %CHROMIUM_ROOT%/third_party/boringssl/BUILD.gn and find libs = [ "//third_party/boringssl/src/oqs/lib/liboqs.a" ]
, then replace it with
public = all_headers
friend = [ ":*" ]
-libs = [ "//third_party/boringssl/src/oqs/lib/liboqs.a" ]
+libs = [ "//third_party/boringssl/src/oqs/lib/oqs.lib" ]
deps = [ "//third_party/boringssl/src/third_party/fiat:fiat_license" ]
In Command Prompt, run following commands:
cd %CHROMIUM_ROOT%/third_party/boringssl
python src/util/generate_build_files.py gn
In Command Prompt, run following commands:
cd %CHROMIUM_ROOT%
gn args out/Default
Then append following lines to the configuration file opened in editor:
is_debug = false
symbol_level = 0
enable_nacl = false
blink_symbol_level = 0
target_cpu = "x64"
target_os = "win"
Save and close the configuration file. Last, run autoninja -C out/Default chrome
in Command Prompt.
If the build completes successfully, it will create chrome.exe in %CHROMIUM_ROOT%/out/Default.
- BIKE key exchange will crash Chromium.
- This guide was initially published on July 1, 2023, and may be outdated.
- A certificate chain that includes quantum-safe signatures can only be validated if it terminates with a root certificate that is in the Chrome Root Store.
- These instructions have been tested on 64-bit Windows 10 Enterprise with Visual Studio 2022 Community, Go 1.20.5, and ActiveState Perl 5.36.