mirror of
https://github.com/YGGverse/agate.git
synced 2026-04-08 20:45:29 +00:00
WIP: Add SSL config
This commit is contained in:
parent
f89d2179a9
commit
bbd0035eb4
6 changed files with 120 additions and 9 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
|
@ -6,6 +6,7 @@ version = "1.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"async-tls",
|
"async-tls",
|
||||||
|
"rustls",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ edition = "2018"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-tls = "0.7.0"
|
async-tls = "0.7.0"
|
||||||
async-std = "1.5"
|
async-std = "1.5"
|
||||||
|
rustls = "0.17.0"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
use {
|
|
||||||
std::{
|
|
||||||
error::Error,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
pub type Result<T=()> = std::result::Result<T, Box<dyn Error>>;
|
|
||||||
36
src/main.rs
36
src/main.rs
|
|
@ -1,5 +1,39 @@
|
||||||
use agate::Result;
|
use {
|
||||||
|
async_std::{
|
||||||
|
net::TcpListener,
|
||||||
|
prelude::*,
|
||||||
|
task::block_on,
|
||||||
|
},
|
||||||
|
rustls::{
|
||||||
|
internal::pemfile::{certs, rsa_private_keys},
|
||||||
|
},
|
||||||
|
std::{
|
||||||
|
error::Error,
|
||||||
|
fs::File,
|
||||||
|
io::BufReader,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
pub type Result<T=()> = std::result::Result<T, Box<dyn Error>>;
|
||||||
|
|
||||||
fn main() -> Result {
|
fn main() -> Result {
|
||||||
|
let certs = certs(&mut BufReader::new(File::open("tests/cert.pem")?))
|
||||||
|
.expect("Error reading certificate file");
|
||||||
|
let mut keys = rsa_private_keys(&mut BufReader::new(File::open("tests/key.pem")?))
|
||||||
|
.expect("Error reading private key file");
|
||||||
|
|
||||||
|
let mut config = rustls::ServerConfig::new(rustls::NoClientAuth::new());
|
||||||
|
config.set_single_cert(certs, keys.remove(0))?;
|
||||||
|
|
||||||
|
let addr = "0.0.0.0:1965";
|
||||||
|
|
||||||
|
block_on(async {
|
||||||
|
let listener = TcpListener::bind(addr).await?;
|
||||||
|
let mut incoming = listener.incoming();
|
||||||
|
|
||||||
|
while let Some(stream) = incoming.next().await {
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
30
tests/cert.pem
Normal file
30
tests/cert.pem
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
52
tests/key.pem
Normal file
52
tests/key.pem
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
xaJIiFfR55tTOf5rMJA4NmeL8rdrTt8=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
Loading…
Add table
Add a link
Reference in a new issue