mirror of https://github.com/PiyushXCoder/lupt.git
Updated gif api and using rustls for ssl&tls
This commit is contained in:
parent
ab3a31426d
commit
91fdc5576d
|
|
@ -69,10 +69,11 @@ dependencies = [
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"http",
|
"http",
|
||||||
"log",
|
"log",
|
||||||
"openssl",
|
"rustls",
|
||||||
"tokio-openssl",
|
"tokio-rustls",
|
||||||
"trust-dns-proto",
|
"trust-dns-proto",
|
||||||
"trust-dns-resolver",
|
"trust-dns-resolver",
|
||||||
|
"webpki",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -109,7 +110,7 @@ dependencies = [
|
||||||
"actix-threadpool",
|
"actix-threadpool",
|
||||||
"actix-tls",
|
"actix-tls",
|
||||||
"actix-utils",
|
"actix-utils",
|
||||||
"base64",
|
"base64 0.13.0",
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"brotli2",
|
"brotli2",
|
||||||
"bytes 0.5.6",
|
"bytes 0.5.6",
|
||||||
|
|
@ -269,8 +270,10 @@ dependencies = [
|
||||||
"actix-service",
|
"actix-service",
|
||||||
"actix-utils",
|
"actix-utils",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"openssl",
|
"rustls",
|
||||||
"tokio-openssl",
|
"tokio-rustls",
|
||||||
|
"webpki",
|
||||||
|
"webpki-roots",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -321,9 +324,9 @@ dependencies = [
|
||||||
"fxhash",
|
"fxhash",
|
||||||
"log",
|
"log",
|
||||||
"mime",
|
"mime",
|
||||||
"openssl",
|
|
||||||
"pin-project 1.0.10",
|
"pin-project 1.0.10",
|
||||||
"regex",
|
"regex",
|
||||||
|
"rustls",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_urlencoded",
|
"serde_urlencoded",
|
||||||
|
|
@ -450,16 +453,16 @@ dependencies = [
|
||||||
"actix-http",
|
"actix-http",
|
||||||
"actix-rt",
|
"actix-rt",
|
||||||
"actix-service",
|
"actix-service",
|
||||||
"base64",
|
"base64 0.13.0",
|
||||||
"bytes 0.5.6",
|
"bytes 0.5.6",
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"derive_more",
|
"derive_more",
|
||||||
"futures-core",
|
"futures-core",
|
||||||
"log",
|
"log",
|
||||||
"mime",
|
"mime",
|
||||||
"openssl",
|
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
|
"rustls",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_urlencoded",
|
"serde_urlencoded",
|
||||||
|
|
@ -496,12 +499,24 @@ version = "0.2.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
|
checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base64"
|
||||||
|
version = "0.12.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "base64"
|
name = "base64"
|
||||||
version = "0.13.0"
|
version = "0.13.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base64"
|
||||||
|
version = "0.21.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "1.3.2"
|
version = "1.3.2"
|
||||||
|
|
@ -1197,6 +1212,15 @@ version = "1.0.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
|
checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "js-sys"
|
||||||
|
version = "0.3.55"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
|
||||||
|
dependencies = [
|
||||||
|
"wasm-bindgen",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kernel32-sys"
|
name = "kernel32-sys"
|
||||||
version = "0.2.2"
|
version = "0.2.2"
|
||||||
|
|
@ -1242,9 +1266,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "log"
|
name = "log"
|
||||||
version = "0.4.14"
|
version = "0.4.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
|
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
]
|
]
|
||||||
|
|
@ -1269,12 +1293,15 @@ dependencies = [
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"actix-web-actors",
|
"actix-web-actors",
|
||||||
"actix-web-middleware-redirect-https",
|
"actix-web-middleware-redirect-https",
|
||||||
"base64",
|
"base64 0.13.0",
|
||||||
"clap",
|
"clap",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
|
"log",
|
||||||
"openssl",
|
"openssl",
|
||||||
"rand 0.8.4",
|
"rand 0.8.4",
|
||||||
|
"rustls",
|
||||||
|
"rustls-pemfile",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"sha2",
|
"sha2",
|
||||||
|
|
@ -1788,6 +1815,21 @@ dependencies = [
|
||||||
"quick-error",
|
"quick-error",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ring"
|
||||||
|
version = "0.16.20"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"once_cell",
|
||||||
|
"spin",
|
||||||
|
"untrusted",
|
||||||
|
"web-sys",
|
||||||
|
"winapi 0.3.9",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-demangle"
|
name = "rustc-demangle"
|
||||||
version = "0.1.21"
|
version = "0.1.21"
|
||||||
|
|
@ -1812,6 +1854,28 @@ dependencies = [
|
||||||
"semver 1.0.4",
|
"semver 1.0.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls"
|
||||||
|
version = "0.18.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81"
|
||||||
|
dependencies = [
|
||||||
|
"base64 0.12.3",
|
||||||
|
"log",
|
||||||
|
"ring",
|
||||||
|
"sct",
|
||||||
|
"webpki",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls-pemfile"
|
||||||
|
version = "1.0.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
|
||||||
|
dependencies = [
|
||||||
|
"base64 0.21.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ryu"
|
name = "ryu"
|
||||||
version = "1.0.9"
|
version = "1.0.9"
|
||||||
|
|
@ -1833,6 +1897,16 @@ version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sct"
|
||||||
|
version = "0.6.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
|
||||||
|
dependencies = [
|
||||||
|
"ring",
|
||||||
|
"untrusted",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "semver"
|
name = "semver"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
|
@ -1968,6 +2042,12 @@ dependencies = [
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "spin"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "standback"
|
name = "standback"
|
||||||
version = "0.2.17"
|
version = "0.2.17"
|
||||||
|
|
@ -2196,13 +2276,15 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio-openssl"
|
name = "tokio-rustls"
|
||||||
version = "0.4.0"
|
version = "0.14.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594"
|
checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"openssl",
|
"futures-core",
|
||||||
|
"rustls",
|
||||||
"tokio 0.2.25",
|
"tokio 0.2.25",
|
||||||
|
"webpki",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2355,6 +2437,12 @@ dependencies = [
|
||||||
"void",
|
"void",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "untrusted"
|
||||||
|
version = "0.7.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "url"
|
name = "url"
|
||||||
version = "2.2.2"
|
version = "2.2.2"
|
||||||
|
|
@ -2489,6 +2577,35 @@ version = "0.2.78"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
|
checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "web-sys"
|
||||||
|
version = "0.3.55"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
|
||||||
|
dependencies = [
|
||||||
|
"js-sys",
|
||||||
|
"wasm-bindgen",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "webpki"
|
||||||
|
version = "0.21.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
|
||||||
|
dependencies = [
|
||||||
|
"ring",
|
||||||
|
"untrusted",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "webpki-roots"
|
||||||
|
version = "0.20.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f"
|
||||||
|
dependencies = [
|
||||||
|
"webpki",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "widestring"
|
name = "widestring"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ keywords = ["chat", "Chatting", "Talk", "Stranger"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix = "0.10"
|
actix = "0.10"
|
||||||
actix-web = { version = "3", features = ["openssl"] }
|
actix-web = { version = "3", features = ["rustls"] }
|
||||||
actix-web-actors = "3"
|
actix-web-actors = "3"
|
||||||
actix-broker = "0.3"
|
actix-broker = "0.3"
|
||||||
actix-files = "0.5"
|
actix-files = "0.5"
|
||||||
|
|
@ -33,3 +33,6 @@ tokio = { version = "1.5", features = ['rt', 'rt-multi-thread', 'macros'] }
|
||||||
|
|
||||||
sha2 = "0.10"
|
sha2 = "0.10"
|
||||||
base64 = "0.13"
|
base64 = "0.13"
|
||||||
|
log = "0.4.17"
|
||||||
|
rustls = "0.18.0"
|
||||||
|
rustls-pemfile = "1.0.2"
|
||||||
|
|
|
||||||
54
src/main.rs
54
src/main.rs
|
|
@ -35,8 +35,10 @@ use actix_web::{
|
||||||
web, App, Error, HttpRequest, HttpResponse, HttpServer,
|
web, App, Error, HttpRequest, HttpResponse, HttpServer,
|
||||||
};
|
};
|
||||||
use actix_web_actors::ws;
|
use actix_web_actors::ws;
|
||||||
use openssl::ssl::{SslAcceptor, SslAcceptorBuilder, SslConnector, SslFiletype, SslMethod};
|
use log::error;
|
||||||
use std::sync::RwLock;
|
// use openssl::ssl::{SslAcceptor, SslAcceptorBuilder, SslConnector, SslFiletype, SslMethod};
|
||||||
|
use rustls::{Certificate, NoClientAuth, PrivateKey, ServerConfig};
|
||||||
|
use std::{fs::File, sync::RwLock};
|
||||||
use ws_sansad::WsSansad;
|
use ws_sansad::WsSansad;
|
||||||
|
|
||||||
mod broker_messages;
|
mod broker_messages;
|
||||||
|
|
@ -53,18 +55,18 @@ lazy_static! {
|
||||||
|
|
||||||
#[actix_web::main]
|
#[actix_web::main]
|
||||||
async fn main() -> std::io::Result<()> {
|
async fn main() -> std::io::Result<()> {
|
||||||
std::env::set_var("RUST_LOG", "actix_web=info");
|
std::env::set_var("RUST_LOG", "info");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
let (config, config_file) = config::generate();
|
let (config, config_file) = config::generate();
|
||||||
|
error!("Hello");
|
||||||
*SALT.write().unwrap() = config_file.salt;
|
*SALT.write().unwrap() = config_file.salt;
|
||||||
|
|
||||||
if let Some(key) = config_file.tenor_key {
|
if let Some(key) = config_file.tenor_key {
|
||||||
*TENOR_API_KEY.write().unwrap() = Some(key);
|
*TENOR_API_KEY.write().unwrap() = Some(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
let ssl_builder = if config_file.ssl_key.is_some() && config_file.ssl_cert.is_some() {
|
let rustls_server_config = if config_file.ssl_key.is_some() && config_file.ssl_cert.is_some() {
|
||||||
generate_ssl_builder(config_file.ssl_key.unwrap(), config_file.ssl_cert.unwrap())
|
gen_rustls_server_config(config_file.ssl_key.unwrap(), config_file.ssl_cert.unwrap())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
@ -92,7 +94,7 @@ async fn main() -> std::io::Result<()> {
|
||||||
app
|
app
|
||||||
});
|
});
|
||||||
|
|
||||||
if ssl_builder.is_some() && config.port_ssl.is_some() {
|
if rustls_server_config.is_some() && config.port_ssl.is_some() {
|
||||||
let port = config.port.clone();
|
let port = config.port.clone();
|
||||||
let port_ssl = config.port_ssl.clone().unwrap();
|
let port_ssl = config.port_ssl.clone().unwrap();
|
||||||
let redirect_server = HttpServer::new(move || {
|
let redirect_server = HttpServer::new(move || {
|
||||||
|
|
@ -119,11 +121,11 @@ async fn main() -> std::io::Result<()> {
|
||||||
})
|
})
|
||||||
.bind(format!("{}:{}", config.bind_address, config.port))?
|
.bind(format!("{}:{}", config.bind_address, config.port))?
|
||||||
.run();
|
.run();
|
||||||
|
let sc = rustls_server_config.unwrap();
|
||||||
let server = server
|
let server = server
|
||||||
.bind_openssl(
|
.bind_rustls(
|
||||||
format!("{}:{}", config.bind_address, config.port_ssl.unwrap()),
|
format!("{}:{}", config.bind_address, config.port_ssl.unwrap()),
|
||||||
ssl_builder.unwrap(),
|
sc,
|
||||||
)?
|
)?
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
|
|
@ -147,10 +149,9 @@ async fn gif(req: HttpRequest) -> Result<HttpResponse, Error> {
|
||||||
if pos == "_" {
|
if pos == "_" {
|
||||||
pos = ""
|
pos = ""
|
||||||
}
|
}
|
||||||
let builder = SslConnector::builder(SslMethod::tls()).unwrap();
|
|
||||||
|
|
||||||
let client = Client::builder()
|
let client = Client::builder()
|
||||||
.connector(Connector::new().ssl(builder.build()).finish())
|
.connector(Connector::new().finish())
|
||||||
.finish();
|
.finish();
|
||||||
|
|
||||||
let tenor_key = TENOR_API_KEY.read().unwrap();
|
let tenor_key = TENOR_API_KEY.read().unwrap();
|
||||||
|
|
@ -169,8 +170,7 @@ async fn gif(req: HttpRequest) -> Result<HttpResponse, Error> {
|
||||||
} else {
|
} else {
|
||||||
format!(
|
format!(
|
||||||
"https://tenor.googleapis.com/v2/featured?key={}&limit=20&media_filter=tinygif&pos={}",
|
"https://tenor.googleapis.com/v2/featured?key={}&limit=20&media_filter=tinygif&pos={}",
|
||||||
key,
|
key, pos
|
||||||
pos
|
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -187,12 +187,28 @@ async fn gif(req: HttpRequest) -> Result<HttpResponse, Error> {
|
||||||
.body(response))
|
.body(response))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn generate_ssl_builder(key: String, cert: String) -> Option<SslAcceptorBuilder> {
|
fn gen_rustls_server_config(key: String, cert: String) -> Option<ServerConfig> {
|
||||||
if key != "" && cert != "" {
|
if key != "" && cert != "" {
|
||||||
let mut builder = SslAcceptor::mozilla_intermediate(SslMethod::tls()).unwrap();
|
let mut br = std::io::BufReader::new(File::open(cert).unwrap());
|
||||||
builder.set_private_key_file(key, SslFiletype::PEM).unwrap();
|
let certs = rustls_pemfile::certs(&mut br)
|
||||||
builder.set_certificate_chain_file(cert).unwrap();
|
.unwrap()
|
||||||
Some(builder)
|
.iter()
|
||||||
|
.map(|a| Certificate(a.to_owned()))
|
||||||
|
.collect::<Vec<Certificate>>();
|
||||||
|
|
||||||
|
let mut br = std::io::BufReader::new(File::open(key).unwrap());
|
||||||
|
let private_key = rustls_pemfile::ec_private_keys(&mut br).unwrap_or(
|
||||||
|
rustls_pemfile::rsa_private_keys(&mut br)
|
||||||
|
.unwrap_or(rustls_pemfile::pkcs8_private_keys(&mut br).unwrap()),
|
||||||
|
);
|
||||||
|
|
||||||
|
let private_key = private_key.get(0).unwrap();
|
||||||
|
|
||||||
|
let private_key = PrivateKey(private_key.to_owned());
|
||||||
|
|
||||||
|
let mut config = ServerConfig::new(NoClientAuth::new());
|
||||||
|
config.set_single_cert(certs, private_key).unwrap();
|
||||||
|
Some(config)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue