Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove boringssl interop testing #416

Closed
baentsch opened this issue Dec 16, 2022 · 6 comments · Fixed by #417
Closed

Remove boringssl interop testing #416

baentsch opened this issue Dec 16, 2022 · 6 comments · Fixed by #417

Comments

@baentsch
Copy link
Member

Given (oqs-)boringssl apparently does not receive the same level of "care and attention" as oqs-openssl111 would it be reasonable to remove the interop-test with it? It always breaks when algorithms get changed in liboqs without prior proper downstream preparation.

@christianpaquin
Copy link

Where does it run, in the openssl's porject CI?

@baentsch
Copy link
Member Author

Yes:

ubuntu_boringssl_interop:
description: A job that tests interoperability between OQS-OpenSSL and OQS-BoringSSL on a x64 Ubuntu Bionic Docker VM
docker:
- image: openquantumsafe/ci-ubuntu-focal-x86_64:latest
# Re-enable iff docker enforces rate limitations without auth:
# auth:
# username: $DOCKER_LOGIN
# password: $DOCKER_PASSWORD
steps:
- checkout # change this from "checkout" to "*localCheckout" when running CircleCI locally
- run:
name: Clone liboqs and BoringSSL
command: ./oqs-scripts/clone_liboqs.sh && ./oqs-scripts/clone_boringssl.sh
- run:
name: Build liboqs
command: env LIBOQS_USE_OPENSSL=OFF ./oqs-scripts/build_liboqs.sh
- run:
name: Build BoringSSL
command: ./oqs-scripts/build_boringssl.sh
- run:
name: Build OpenSSL
command: ./Configure linux-x86_64 no-shared no-tests && make -j15
- run:
name: Test BoringSSL client against OpenSSL server
command: python3 -m pytest --numprocesses=auto oqs-interop-test/test_full.py --client-type=bssl
- run:
name: Test OpenSSL client against BoringSSL server
command: python3 -m pytest --numprocesses=auto oqs-interop-test/test_full.py --client-type=ossl

@dstebila
Copy link
Member

Do we do the reverse direction of testing? I.e., BoringSSL's CI runs an OpenSSL interop? If so then I think that would suffice.

@baentsch baentsch changed the title Reconsider boringssl interop testing Remove boringssl interop testing Dec 19, 2022
@baentsch
Copy link
Member Author

Do we do the reverse direction of testing? I.e., BoringSSL's CI runs an OpenSSL interop?

No. This highlights the issue: BoringSSL's CI and interop testing is not at the same level as that of OQS-OpenSSL/oqsprovider. We (also therefore) once decided to "demote" it from "OQS-supported" status, but now seem to have reverted that decision in the interest of retaining Chromium demo-only support. This means a "second class/demo-only" BoringSSL can hold back (a whole chain of supported) OpenSSL use cases.

So I'd suggest we either decide to "promote" BoringSSL again to "fully supported" (but then need to first do PRs for that before merging "breaking" liboqs changes) OR move the "onus of interop testing" to the "second class citizen" BoringSSL: If interop issues happen then, it only breaks CI for BoringSSL and someone may (or may not :) care.

My personal opinion is clear: Do (BoringSSL/OpenSSL) interop testing only in BoringSSL.

@christianpaquin
Copy link

My personal opinion is clear: Do (BoringSSL/OpenSSL) interop testing only in BoringSSL.

I think that makes sense

@dstebila
Copy link
Member

I agree, we are treating BoringSSL as a second-tier project for now, and we don't want its limitations to negatively impact first-tier projects like OpenSSL. So it also makes sense to put the onus of interop testing in BoringSSL.

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 a pull request may close this issue.

3 participants