Auto merge of #25736 - Darkspirit:ossl, r=jdm

Add OpenSSL 1.1.1 build check, Update HSTS Preload list

* This variant also works with cross-compilation. PR should fail in CI on Android at first:
  The net crate successfully compiled after switching to OpenSSL 1.1.1 on Android. It seemed openssl.sh doesn't need any changes.(?)
* Updated HSTS preload list and public suffix list.
* Configured OpenSSL [SECLEVEL=2](https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_security_level.html) like [Debian](https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1) Stable:
  > As a result RSA, DSA and DH keys shorter than [2048 bits](16a5a9bb78/docs/BR.md (6153-subscriber-certificates)) and ECC keys shorter than 224 bits are prohibited.
* Although all other crates compile I generally get a `libscript-fe019dd3e0a4e06d.rlib: bad extended name index at 8` error on simpleservo_jniapi, I guess Debian Testing is too new and I just haven't found the right steps so far.
./mach build -d --android
```
  = note: /home/darkspirit/github/servo/android-toolchains/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: /home/darkspirit/github/servo/target/android/armv7-linux-androideabi/debug/deps/libscript-fe019dd3e0a4e06d.rlib: bad extended name index at 8
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          toolchain: /home/darkspirit/github/servo/android-toolchains/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin
          libs dir: /home/darkspirit/github/servo/android-toolchains/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a
          sysroot: /home/darkspirit/github/servo/android-toolchains/ndk/platforms/android-21/arch-arm
          targetdir: /home/darkspirit/github/servo/target/android/armv7-linux-androideabi/debug/build/simpleservo_jniapi-26ef18debb5b3630/out/../../..
```

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #25708, fix #25619.
This commit is contained in:
bors-servo 2020-02-14 12:57:22 -05:00 committed by GitHub
commit cdd5dc17aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 33831 additions and 15333 deletions

1
Cargo.lock generated
View file

@ -3664,6 +3664,7 @@ dependencies = [
"msg", "msg",
"net_traits", "net_traits",
"openssl", "openssl",
"openssl-sys",
"percent-encoding", "percent-encoding",
"pixels", "pixels",
"profile_traits", "profile_traits",

View file

@ -6,6 +6,7 @@ license = "MPL-2.0"
edition = "2018" edition = "2018"
publish = false publish = false
autotests = false # Inhibit lookup for tests/*.rs without [[test]] sections autotests = false # Inhibit lookup for tests/*.rs without [[test]] sections
build = "build.rs"
[lib] [lib]
name = "net" name = "net"
@ -43,6 +44,7 @@ mime_guess = "2.0.0-alpha.6"
msg = {path = "../msg"} msg = {path = "../msg"}
net_traits = {path = "../net_traits"} net_traits = {path = "../net_traits"}
openssl = "0.10" openssl = "0.10"
openssl-sys = "0.9"
percent-encoding = "2.0" percent-encoding = "2.0"
pixels = {path = "../pixels"} pixels = {path = "../pixels"}
profile_traits = {path = "../profile_traits"} profile_traits = {path = "../profile_traits"}

16
components/net/build.rs Normal file
View file

@ -0,0 +1,16 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
fn main() {
let version =
std::env::var("DEP_OPENSSL_VERSION_NUMBER").expect("missing DEP_OPENSSL_VERSION_NUMBER");
let actual = u64::from_str_radix(&version, 16).unwrap();
let minimum = 0x10101000;
if actual < minimum {
panic!(
"Your OpenSSL version is older than 1.1.1 ({:x}), you have: {:x}",
minimum, actual
);
}
}

View file

@ -21,7 +21,7 @@ const TLS1_2_CIPHERSUITES: &'static str = concat!(
"ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:", "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:",
"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:", "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:",
"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:", "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:",
"ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA" "ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA@SECLEVEL=2"
); );
const SIGNATURE_ALGORITHMS: &'static str = concat!( const SIGNATURE_ALGORITHMS: &'static str = concat!(
"ed448:ed25519:", "ed448:ed25519:",

View file

@ -32,6 +32,7 @@ allowed_symbols = frozenset([
b'sigemptyset', b'sigemptyset',
b'AHardwareBuffer_allocate', b'AHardwareBuffer_allocate',
b'AHardwareBuffer_release', b'AHardwareBuffer_release',
b'getentropy',
]) ])
actual_symbols = set() actual_symbols = set()

View file

@ -331,7 +331,7 @@ class MachCommands(CommandBase):
android_arch = self.config["android"]["arch"] android_arch = self.config["android"]["arch"]
# Build OpenSSL for android # Build OpenSSL for android
env["OPENSSL_VERSION"] = "1.0.2k" env["OPENSSL_VERSION"] = "1.1.1d"
make_cmd = ["make"] make_cmd = ["make"]
if jobs is not None: if jobs is not None:
make_cmd += ["-j" + jobs] make_cmd += ["-j" + jobs]
@ -580,7 +580,7 @@ class MachCommands(CommandBase):
# The Open SSL configuration # The Open SSL configuration
env.setdefault("OPENSSL_DIR", path.join(target_path, target, "native", "openssl")) env.setdefault("OPENSSL_DIR", path.join(target_path, target, "native", "openssl"))
env.setdefault("OPENSSL_VERSION", "1.0.2k") env.setdefault("OPENSSL_VERSION", "1.1.1d")
env.setdefault("OPENSSL_STATIC", "1") env.setdefault("OPENSSL_STATIC", "1")
# GStreamer configuration # GStreamer configuration

File diff suppressed because it is too large Load diff

View file

@ -188,7 +188,6 @@ vic.au
wa.au wa.au
act.edu.au act.edu.au
catholic.edu.au catholic.edu.au
eq.edu.au
nsw.edu.au nsw.edu.au
nt.edu.au nt.edu.au
qld.edu.au qld.edu.au
@ -5320,12 +5319,6 @@ gov.rs
in.rs in.rs
org.rs org.rs
ru ru
ac.ru
edu.ru
gov.ru
int.ru
mil.ru
test.ru
rw rw
ac.rw ac.rw
co.rw co.rw
@ -6184,6 +6177,7 @@ allstate
ally ally
alsace alsace
alstom alstom
amazon
americanexpress americanexpress
americanfamily americanfamily
amex amex
@ -6314,7 +6308,6 @@ care
career career
careers careers
cars cars
cartier
casa casa
case case
caseih caseih
@ -6341,7 +6334,6 @@ cheap
chintai chintai
christmas christmas
chrome chrome
chrysler
church church
cipriani cipriani
circle circle
@ -6435,7 +6427,6 @@ diy
dnp dnp
docs docs
doctor doctor
dodge
dog dog
domains domains
dot dot
@ -6471,7 +6462,6 @@ etisalat
eurovision eurovision
eus eus
events events
everbank
exchange exchange
expert expert
exposed exposed
@ -6700,12 +6690,10 @@ kred
kuokgroup kuokgroup
kyoto kyoto
lacaixa lacaixa
ladbrokes
lamborghini lamborghini
lamer lamer
lancaster lancaster
lancia lancia
lancome
land land
landrover landrover
lanxess lanxess
@ -6723,7 +6711,6 @@ legal
lego lego
lexus lexus
lgbt lgbt
liaison
lidl lidl
life life
lifeinsurance lifeinsurance
@ -6805,7 +6792,6 @@ mom
monash monash
money money
monster monster
mopar
mormon mormon
mortgage mortgage
moscow moscow
@ -6813,7 +6799,6 @@ moto
motorcycles motorcycles
mov mov
movie movie
movistar
msd msd
mtn mtn
mtr mtr
@ -6900,7 +6885,6 @@ photo
photography photography
photos photos
physio physio
piaget
pics pics
pictet pictet
pictures pictures
@ -7071,7 +7055,6 @@ sport
spot spot
spreadbetting spreadbetting
srl srl
srt
stada stada
staples staples
star star
@ -7114,7 +7097,6 @@ tdk
team team
tech tech
technology technology
telefonica
temasek temasek
tennis tennis
teva teva
@ -7159,7 +7141,6 @@ tushu
tvs tvs
ubank ubank
ubs ubs
uconnect
unicom unicom
university university
uno uno
@ -7200,7 +7181,6 @@ walmart
walter walter
wang wang
wanggou wanggou
warman
watch watch
watches watches
weather weather
@ -7264,6 +7244,7 @@ xn--bck1b9a5dre4c
xn--c1avg xn--c1avg
xn--c2br7g xn--c2br7g
xn--cck2b3b xn--cck2b3b
xn--cckwcxetd
xn--cg4bki xn--cg4bki
xn--czr694b xn--czr694b
xn--czrs0t xn--czrs0t
@ -7287,6 +7268,7 @@ xn--i1b6b1a6a2e
xn--imr513n xn--imr513n
xn--io0a7i xn--io0a7i
xn--j1aef xn--j1aef
xn--jlq480n2rg
xn--jlq61u9w7b xn--jlq61u9w7b
xn--jvr189m xn--jvr189m
xn--kcrx77d1x4a xn--kcrx77d1x4a
@ -7348,6 +7330,9 @@ zuerich
cc.ua cc.ua
inf.ua inf.ua
ltd.ua ltd.ua
adobeaemcloud.com
adobeaemcloud.net
*.dev.adobeaemcloud.com
beep.pl beep.pl
barsy.ca barsy.ca
*.compute.estate *.compute.estate
@ -7435,6 +7420,7 @@ s3-website.eu-central-1.amazonaws.com
s3-website.eu-west-2.amazonaws.com s3-website.eu-west-2.amazonaws.com
s3-website.eu-west-3.amazonaws.com s3-website.eu-west-3.amazonaws.com
s3-website.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com
amsw.nl
t3l3p0rt.net t3l3p0rt.net
tele.amune.org tele.amune.org
apigee.io apigee.io
@ -7510,6 +7496,7 @@ c.la
certmgr.org certmgr.org
xenapponazure.com xenapponazure.com
discourse.group discourse.group
discourse.team
virtueeldomein.nl virtueeldomein.nl
cleverapps.io cleverapps.io
*.lcl.dev *.lcl.dev
@ -7553,6 +7540,12 @@ co.nl
co.no co.no
webhosting.be webhosting.be
hosting-cluster.nl hosting-cluster.nl
ac.ru
edu.ru
gov.ru
int.ru
mil.ru
test.ru
dyn.cosidns.de dyn.cosidns.de
dynamisches-dns.de dynamisches-dns.de
dnsupdater.de dnsupdater.de
@ -7565,6 +7558,10 @@ static-access.net
realm.cz realm.cz
*.cryptonomic.net *.cryptonomic.net
cupcake.is cupcake.is
*.customer-oci.com
*.oci.customer-oci.com
*.ocp.customer-oci.com
*.ocs.customer-oci.com
cyon.link cyon.link
cyon.site cyon.site
daplie.me daplie.me
@ -7582,6 +7579,8 @@ reg.dk
store.dk store.dk
*.dapps.earth *.dapps.earth
*.bzz.dapps.earth *.bzz.dapps.earth
builtwithdark.com
edgestack.me
debian.net debian.net
dedyn.io dedyn.io
dnshome.de dnshome.de
@ -7905,6 +7904,7 @@ myddns.rocks
blogsite.xyz blogsite.xyz
dynv6.net dynv6.net
e4.cz e4.cz
en-root.fr
mytuleap.com mytuleap.com
onred.one onred.one
staging.onred.one staging.onred.one
@ -8053,6 +8053,7 @@ vladikavkaz.su
vladimir.su vladimir.su
vologda.su vologda.su
channelsdvr.net channelsdvr.net
u.channelsdvr.net
fastly-terrarium.com fastly-terrarium.com
fastlylb.net fastlylb.net
map.fastlylb.net map.fastlylb.net
@ -8082,6 +8083,7 @@ filegear-sg.me
firebaseapp.com firebaseapp.com
flynnhub.com flynnhub.com
flynnhosting.net flynnhosting.net
0e.vc
freebox-os.com freebox-os.com
freeboxos.com freeboxos.com
fbx-os.fr fbx-os.fr
@ -8100,6 +8102,7 @@ futuremailing.at
service.gov.uk service.gov.uk
gehirn.ne.jp gehirn.ne.jp
usercontent.jp usercontent.jp
gentapps.com
lab.ms lab.ms
github.io github.io
githubusercontent.com githubusercontent.com
@ -8117,6 +8120,7 @@ a.run.app
web.app web.app
*.0emm.com *.0emm.com
appspot.com appspot.com
*.r.appspot.com
blogspot.ae blogspot.ae
blogspot.al blogspot.al
blogspot.am blogspot.am
@ -8200,6 +8204,7 @@ pagespeedmobilizer.com
publishproxy.com publishproxy.com
withgoogle.com withgoogle.com
withyoutube.com withyoutube.com
awsmppl.com
fin.ci fin.ci
free.hr free.hr
caa.li caa.li
@ -8227,6 +8232,7 @@ col.ng
firm.ng firm.ng
gen.ng gen.ng
ltd.ng ltd.ng
ngo.ng
ng.school ng.school
sch.so sch.so
xn--hkkinen-5wa.fi xn--hkkinen-5wa.fi
@ -8293,6 +8299,7 @@ keymachine.de
kinghost.net kinghost.net
uni5.net uni5.net
knightpoint.systems knightpoint.systems
oya.to
co.krd co.krd
edu.krd edu.krd
git-repos.de git-repos.de
@ -8563,11 +8570,13 @@ nom.ug
nom.uy nom.uy
nom.vc nom.vc
nom.vg nom.vg
static.observableusercontent.com
cya.gg cya.gg
cloudycluster.net cloudycluster.net
nid.io nid.io
opencraft.hosting opencraft.hosting
operaunite.com operaunite.com
skygearapp.com
outsystemscloud.com outsystemscloud.com
ownprovider.com ownprovider.com
own.pm own.pm
@ -8584,6 +8593,7 @@ zakopane.pl
pantheonsite.io pantheonsite.io
gotpantheon.com gotpantheon.com
mypep.link mypep.link
perspecta.cloud
on-web.fr on-web.fr
*.platform.sh *.platform.sh
*.platformsh.site *.platformsh.site
@ -8598,9 +8608,12 @@ chirurgiens-dentistes-en-france.fr
byen.site byen.site
pubtls.org pubtls.org
qualifioapp.com qualifioapp.com
qbuser.com
instantcloud.cn instantcloud.cn
ras.ru ras.ru
qa2.com qa2.com
qcx.io
*.sys.qcx.io
dev-myqnapcloud.com dev-myqnapcloud.com
alpha-myqnapcloud.com alpha-myqnapcloud.com
myqnapcloud.com myqnapcloud.com
@ -8609,6 +8622,7 @@ vapor.cloud
vaporcloud.io vaporcloud.io
rackmaze.com rackmaze.com
rackmaze.net rackmaze.net
*.on-k3s.io
*.on-rancher.cloud *.on-rancher.cloud
*.on-rio.io *.on-rio.io
readthedocs.io readthedocs.io
@ -8628,6 +8642,7 @@ sandcats.io
logoip.de logoip.de
logoip.com logoip.com
schokokeks.net schokokeks.net
gov.scot
scrysec.com scrysec.com
firewall-gateway.com firewall-gateway.com
firewall-gateway.de firewall-gateway.de
@ -8639,6 +8654,7 @@ firewall-gateway.net
my-firewall.org my-firewall.org
myfirewall.org myfirewall.org
spdns.org spdns.org
senseering.net
biz.ua biz.ua
co.ua co.ua
pp.ua pp.ua
@ -8758,6 +8774,7 @@ lib.de.us
router.management router.management
v-info.info v-info.info
voorloper.cloud voorloper.cloud
v.ua
wafflecell.com wafflecell.com
*.webhare.dev *.webhare.dev
wedeploy.io wedeploy.io
@ -8765,6 +8782,11 @@ wedeploy.me
wedeploy.sh wedeploy.sh
remotewd.com remotewd.com
wmflabs.org wmflabs.org
myforum.community
community-pro.de
diskussionsbereich.de
community-pro.net
meinforum.net
half.host half.host
xnbay.com xnbay.com
u2.xnbay.com u2.xnbay.com