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

OpenSSL1.1.0 #14203

Closed
doronw399 opened this issue Nov 14, 2016 · 18 comments
Closed

OpenSSL1.1.0 #14203

doronw399 opened this issue Nov 14, 2016 · 18 comments
Assignees
Labels

Comments

@doronw399
Copy link

@doronw399 doronw399 commented Nov 14, 2016

I am using Debian Sid which now comes with OpenSSL 1.1.0. In this version makes many breaking changes to the API which caused the build to fail. To get things to work, I needed to run:

apt-get install libssl1.0-dev

This forces my system to use the old OpenSSL version.

When I look at Cargo.lock in components/servo, I see we are using the rust crate

openssl 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)

The latest version (as of this writing) is 0.9.1 which builds with OpenSSL1.1.0

The problem though is that many other packages like hyper and cookie depend on the old crate for rust openssl so upgrading is not straight forward.

So is there any plan to upgrade to the latest OpenSSL?

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Nov 14, 2016

This is probably blocked on hyperium/hyper#907

@frewsxcv frewsxcv added the A-security label Nov 14, 2016
@lygstate
Copy link

@lygstate lygstate commented Nov 14, 2016

How about using https://github.com/briansmith/ring instead of OpenSSL.

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Nov 14, 2016

OpenSSL is essentially two libraries:

  • Cryptographic primitives (utility functions used to construct different protocols)
  • A TLS implementation using the cryptographic primitives above

ring is a Rust library containing just the cryptographic primitives and does not contain a TLS implementation. There are a few TLS implementations being built that build on top of ring, most notably rustls. As of right now, Hyper does not support any Rust implementation of TLS (including rustls), so one would have to start there. I can't find it now, but there was a (very long) thread on the mailing list a month or so ago talking about TLS decisions for Servo, and from what I remember, it seemed like the Servo team was going to eventually move to NSS, but it might still be an open question.

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Dec 5, 2016

Regarding OpenSSL 1.1.0 support, I'm working on a patch right now.

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Dec 5, 2016

My branch is here: https://github.com/servo/servo/compare/master...frewsxcv:openssl-1.1.0?expand=1

@mbrubeck You said you couldn't get Servo working with OpenSSL 1.1.0. Can you try checking out that branch and see how things look?

@pjenvey
Copy link

@pjenvey pjenvey commented Dec 8, 2016

@frewsxcv
Copy link
Member

@frewsxcv frewsxcv commented Dec 29, 2016

Relevant PR: hyperium/hyper#975

@avadacatavra avadacatavra self-assigned this Jan 13, 2017
@avadacatavra
Copy link
Contributor

@avadacatavra avadacatavra commented Jan 13, 2017

I've been working off @frewsxcv's branch to rebase and resubmit the pr with a few customizations servo needs

@julienw
Copy link
Contributor

@julienw julienw commented Jan 20, 2017

Should the README be changed in the mean time, to mention libssl1.0-dev for developers on Debian stretch and sid ?

@Darkspirit
Copy link
Contributor

@Darkspirit Darkspirit commented Apr 25, 2017

Downloaded https://download.servo.org/nightly/linux/servo-latest.tar.gz on Debian Testing (Stretch)

./servo: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

Overview: https://packages.debian.org/search?lang=de&suite=stretch&searchon=names&keywords=libssl
Debien Jessie: libssl.so.1.0.0 https://packages.debian.org/de/jessie-backports/amd64/libssl1.0.0/filelist
Debian Stretch: libssl.so.1.0.2
https://packages.debian.org/de/stretch/amd64/libssl1.0.2/filelist

There is no 1.0.0 on Debian testing (stretch), only libssl.so, libssl.so.1.0.2 and libssl.so.1.1.

No solution:

sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0

because

./servo
./servo: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./servo)
./servo: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: version `OPENSSL_1.0.1d' not found (required by ./servo)
./servo: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./servo)
./servo: /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./servo)
./servo: /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./servo)

Could you please allow 1.0.2 (#16605) or 1.1?

@nox
Copy link
Member

@nox nox commented Oct 7, 2017

@avadacatavra What's the status on this?

@mayfield
Copy link

@mayfield mayfield commented Jan 6, 2018

This affects Fedora platforms too (F27 at least). Static linking these libs in the nightly would suffice for my needs.

@LifeIsStrange
Copy link

@LifeIsStrange LifeIsStrange commented Jan 24, 2018

I can confirm it affect Fedora 26 too

@romulasry
Copy link

@romulasry romulasry commented Apr 26, 2018

Would be nice to have this updated.

@avadacatavra
Copy link
Contributor

@avadacatavra avadacatavra commented Apr 30, 2018

@romulasry openssl updates also require updates in a lot of other dependencies, some of which are non-trivial. we'd like to get this done. last time i looked at this, i think there was a problem with the hyper dependency. i'll take another look at this and hopefully we can make progress

@romulasry
Copy link

@romulasry romulasry commented Oct 17, 2018

Update?

@atouchet
Copy link
Contributor

@atouchet atouchet commented Oct 17, 2018

@romulasry upgrading openssl is being worked on in #21644.

@Eijebong
Copy link
Member

@Eijebong Eijebong commented Nov 1, 2018

Done now :)

@Eijebong Eijebong closed this Nov 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.