kochab/examples/certificates.rs

32 lines
812 B
Rust
Raw Normal View History

use anyhow::Result;
2020-11-14 02:56:50 +00:00
use log::LevelFilter;
2020-11-13 19:20:59 +00:00
use kochab::{Request, Response, Server};
2020-11-13 19:20:59 +00:00
#[tokio::main]
async fn main() -> Result<()> {
2020-11-14 02:56:50 +00:00
env_logger::builder()
.filter_module("kochab", LevelFilter::Debug)
2020-11-14 02:56:50 +00:00
.init();
Server::new()
.add_route("/", handle_request)
.serve_ip("localhost:1965")
2020-11-13 19:20:59 +00:00
.await
}
async fn handle_request(request: Request) -> Result<Response> {
if let Some(fingerprint) = request.fingerprint() {
let message = format!(
"You connected with a certificate with a fingerprint of:\n{}",
fingerprint,
);
Ok(Response::success_plain(message))
} else {
// The user didn't provide a certificate
Ok(Response::client_certificate_required("You didn't provide a client certificate"))
}
2020-11-13 19:20:59 +00:00
}