mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
This change replaces OpenSSL with rustls and also the manually curated CA certs file with webpki-roots (effectively the same thing, but as a crate). Generally speaking the design of the network stack is the same. Changes: - Code around certificate overrides needed to be refactored to work with rustls so the various thread-safe list of certificates is refactored into `CertificateErrorOverrideManager` - hyper-rustls takes care of setting ALPN protocols for HTTP requests, so for WebSockets this is moved to the WebSocket code. - The safe set of cypher suites is chosen, which seem to correspond to the "Modern" configuration from [1]. This can be adjusted later. - Instead of passing a string of PEM CA certificates around, an enum is used that includes parsed Certificates (or the default which reads them from webpki-roots). - Code for starting up an SSL server for testing is cleaned up a little, due to the fact that the certificates need to be overriden explicitly now. This is due to the fact that the `webpki` crate is more stringent with self-signed certificates than SSL (CA certificates cannot used as end-entity certificates). [2] 1. https://wiki.mozilla.org/Security/Server_Side_TLS 2. https://github.com/briansmith/webpki/issues/114 Fixes #7888. Fixes #13749. Fixes #26835. Fixes #29291.
48 lines
1.1 KiB
Rust
48 lines
1.1 KiB
Rust
/* 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/. */
|
|
|
|
#![deny(unsafe_code)]
|
|
|
|
#[macro_use]
|
|
extern crate lazy_static;
|
|
#[macro_use]
|
|
extern crate log;
|
|
#[macro_use]
|
|
extern crate malloc_size_of_derive;
|
|
#[macro_use]
|
|
extern crate profile_traits;
|
|
#[macro_use]
|
|
extern crate serde;
|
|
#[macro_use]
|
|
extern crate servo_config;
|
|
|
|
pub mod connector;
|
|
pub mod cookie;
|
|
pub mod cookie_storage;
|
|
mod data_loader;
|
|
mod decoder;
|
|
pub mod filemanager_thread;
|
|
mod hosts;
|
|
pub mod hsts;
|
|
pub mod http_cache;
|
|
pub mod http_loader;
|
|
pub mod image_cache;
|
|
pub mod mime_classifier;
|
|
pub mod resource_thread;
|
|
mod storage_thread;
|
|
pub mod subresource_integrity;
|
|
mod websocket_loader;
|
|
|
|
/// An implementation of the [Fetch specification](https://fetch.spec.whatwg.org/)
|
|
pub mod fetch {
|
|
pub mod cors_cache;
|
|
pub mod headers;
|
|
pub mod methods;
|
|
}
|
|
|
|
/// A module for re-exports of items used in unit tests.
|
|
pub mod test {
|
|
pub use crate::hosts::{parse_hostsfile, replace_host_table};
|
|
pub use crate::http_loader::HttpState;
|
|
}
|