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

WIP tls: add feature to build against OpenSSL #126

Closed
wants to merge 1 commit into from
Closed

Conversation

ghedo
Copy link
Member

@ghedo ghedo commented Aug 17, 2019

This adds a new feature "openssl" to build against OpenSSL instead of
BoringSSL. We need this because the OpenSSL and BoringSSL APIs are not
fully compatible (e.g. some "functions" are actually macros wrapping
SSL_ctrl()).

To build OpenSSL do:

 % git clone --branch=master-quic-support https://github.com/akamai/openssl/
 % cd openssl
 % export OPENSSL_INSTALL_PATH=$PWD/build
 % ./config enable-tls1_3 --prefix=$OPENSSL_INSTALL_PATH
 % make -j$(nproc)
 % make install_sw

To build quiche using the above OpenSSL build do:

 % export PKG_CONFIG_PATH=$OPENSSL_INSTALL_PATH/lib/pkgconfig
 % export LD_LIBRARY_PATH=$OPENSSL_INSTALL_PATH/lib
 % cargo test --features openssl

Depends on #125 and openssl/openssl#8797 but note that this doesn't actually work yet (handshake fails), so will need to debug further.

@ghedo ghedo added the hold Do not merge label Aug 17, 2019
@ghedo ghedo requested a review from a team as a code owner August 17, 2019 16:09
@ghedo ghedo changed the base branch from boringssl-vendored to master August 17, 2019 19:33
@ghedo ghedo force-pushed the openssl branch 3 times, most recently from 951c599 to f7df2fb Compare August 18, 2019 17:21
@ghedo ghedo changed the title tls: add feature to build against OpenSSL WIP tls: add feature to build against OpenSSL Sep 11, 2019
This adds a new feature "openssl" to build against OpenSSL instead of
BoringSSL. We need this because the OpenSSL and BoringSSL APIs are not
fully compatible (e.g. some "functions" are actually macros wrapping
SSL_ctrl()).

To build OpenSSL do:

```
 % git clone --branch=master-quic-support https://github.com/akamai/openssl/
 % cd openssl
 % export OPENSSL_INSTALL_PATH=$PWD/build
 % ./config enable-tls1_3 --prefix=$OPENSSL_INSTALL_PATH
 % make -j$(nproc)
 % make install_sw
```

To build quiche using the above OpenSSL build do:

```
 % export PKG_CONFIG_PATH=$OPENSSL_INSTALL_PATH/lib/pkgconfig
 % export LD_LIBRARY_PATH=$OPENSSL_INSTALL_PATH/lib
 % cargo test --features openssl
```
@@ -173,6 +173,14 @@ fn main() {
println!("cargo:rustc-link-lib=static=ssl");
}

if cfg!(feature = "openssl") {
#[cfg(feature = "openssl")]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order of libcrypto and libssl below should be swapped. I failed to build quiche with unresolved symbols because the linker command line had -lcrypto -lssl in that order. Swapping the two here fixed it.

@VMatrix1900
Copy link
Contributor

Can we add the rustls and ring option? #129

@splitice
Copy link

Any update on openssl support?

@ghedo
Copy link
Member Author

ghedo commented Jan 30, 2020

@splitice not really. The upstream OpenSSL PR is still open with no end in sight.

@jsgf
Copy link

jsgf commented Feb 1, 2020

@ghedo

The upstream OpenSSL PR is still open with no end in sight.

What is it blocked on?

@splitice
Copy link

perhaps target https://github.com/akamai/openssl/tree/OpenSSL_1_1_1d-quic ?

@ghedo
Copy link
Member Author

ghedo commented Oct 16, 2021

The OpenSSL project decided they will implement the full QUIC protocol, rather than provide an API for other QUIC implementations to use https://www.mail-archive.com/[email protected]/msg02585.html so supporting OpenSSL in quiche will not be possible going forward. Closing this.

@ghedo ghedo closed this Oct 16, 2021
@ghedo ghedo deleted the openssl branch October 18, 2021 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hold Do not merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants