Skip to content

22.8.13 BoringSSL FIPS mode#235

Merged
Enmk merged 18 commits into
releases/22.8.13-fipsfrom
22.8.13-fips-go1.19-boringssl
Mar 5, 2023
Merged

22.8.13 BoringSSL FIPS mode#235
Enmk merged 18 commits into
releases/22.8.13-fipsfrom
22.8.13-fips-go1.19-boringssl

Conversation

@Enmk

@Enmk Enmk commented Feb 27, 2023

Copy link
Copy Markdown
Member

Building CH, BoringSSL, and Poco in FIPS mode.

There is a main option FIPS_CLICKHOUSE that turns on special build rules for BoringSSL and some other minor adjustments.

BoringSSL is built using recipes of go1.19, that is:

  • We download 3 files from golang repo (branch go1.19)
    • src/crypto/internal/boring/Dockerfile - build environment
    • src/crypto/internal/boring/build.sh - build and test script
    • src/crypto/internal/boring/goboringcrypto.h - required for producing golangs syso (whuch we do not need), but build will fail without it.

There are some minor modifications to ClickHouse code:

  • Logging "Stating in FIPS mode, KAT test result: " on startup if CH was built in FIPS mode
  • couple of const_cast<X509 *>s to match API of BoringSSL version
  • configure-time patching of /contrib/krb5/src/lib/crypto/openssl/enc_provider/aes.c since it includes missing header.

Rebased #217 on top of v22.8.13.21.altinitystable

arthurpassos and others added 16 commits December 15, 2022 19:32
add comment and rename github robot token
add clickhouse instance password parameter
use Altinity's s3 bucket
Use altinityinfra dockerhub images and minor adjustments (#135)
Allow CI to be triggered on PR
Proper error reporting during docker pull and lowercase version name
allow `altinitystable` git tags
Download specific MinIO version instead of latest - same as upstream master
remove stale chmod
More stable CI/CD builds:
- Rebuilding all docker images
- Reduced number of docker images
- Rerunning functional tests even if those were already executed in previous run
Added missing dependencies for stateful tests
Re-generating _pb2 files on each test run
Changed hardcoded docker images name prefixes from `clickhouse/` to `altinityinfra/`
Pushing images as :latest too to avoid some test failures
reverted back to use clickhouse/jdbc-bridge
Fixed how version is generated: taking into account VERSION_TWEAK and VERSION_FLAVOUR
Pushing checks events data to "gh-data" instead of "default"
etc.
22.8.11-FIPS Make builds possible on Altinity infrastructure
Build both Poco and BoringSSL in FIPS mode.
For BoringSSL that means build according to the golang 1.19 process, borrowing some code from golang sourcecode
Patching /contrib/krb5/src/lib/crypto/openssl/enc_provider/aes.c to be compatible with used version of BoringSSL
Not setting OPENSSL_FIPS - causes Poco to choose old TLSv1
Using BoringSSL's FIPS_mode() to determine if in FIPS mode.
This is required for break-hash tests
Symbols that are explicitly kept:
 * BORINGSSL_bcm_rodata_start
 * BORINGSSL_bcm_rodata_end
 * BORINGSSL_bcm_text_start
 * BORINGSSL_bcm_text_end
Disabled doing performance tests, as we don't need it and it causes troubles
@Enmk Enmk force-pushed the 22.8.13-fips-go1.19-boringssl branch from 0d8fb20 to 8b8b650 Compare February 27, 2023 19:10
@Enmk Enmk force-pushed the 22.8.13-fips-go1.19-boringssl branch from 8b8b650 to c2b96d8 Compare February 27, 2023 19:10
@Enmk Enmk merged commit 02d3010 into releases/22.8.13-fips Mar 5, 2023
@Enmk Enmk mentioned this pull request Mar 7, 2023
Enmk added a commit that referenced this pull request Apr 18, 2023
@Enmk Enmk mentioned this pull request Apr 18, 2023
Enmk added a commit that referenced this pull request Jun 30, 2023
Enmk added a commit that referenced this pull request Jul 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants