Skip to content

Latest commit

 

History

History
99 lines (71 loc) · 3.51 KB

README-Windows.md

File metadata and controls

99 lines (71 loc) · 3.51 KB

Instructions for Building Chromium on Windows

1. Obtain the Chromium Source Code

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

2. Install Go and Perl

3. Switch to the OQS-BoringSSL

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

4. Clone and Build liboqs

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

5. Enable Quantum-Safe Crypto

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" ]

6. Generate BoringSSL Build Files for Chromium

In Command Prompt, run following commands:

cd %CHROMIUM_ROOT%/third_party/boringssl
python src/util/generate_build_files.py gn

7. Build

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.

8. Miscellaneous

  • 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.