Skip to content
This repository has been archived by the owner on Jan 28, 2024. It is now read-only.

Commit

Permalink
feat(tls): use certs path from configuration file
Browse files Browse the repository at this point in the history
  • Loading branch information
Itsusinn committed Aug 13, 2022
1 parent 5cf65b8 commit f4f7bd4
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 26 deletions.
16 changes: 0 additions & 16 deletions build.rs

This file was deleted.

30 changes: 20 additions & 10 deletions src/tls.rs
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
use std::io::BufReader;
use std::io::{BufRead, BufReader};

use color_eyre::eyre::Result;

pub fn read_certs_from_file() -> Result<(Vec<rustls::Certificate>, rustls::PrivateKey)> {
let mut cert_chain_reader = BufReader::new(std::fs::File::open("./res/server-cert.pem")?);
use crate::config::CONFIG;

pub async fn read_certs_from_file() -> Result<(Vec<rustls::Certificate>, rustls::PrivateKey)> {
let cert_file = std::fs::File::open(CONFIG.tls.cert.as_str())?;
let mut cert_chain_reader = BufReader::new(cert_file);
let certs = rustls_pemfile::certs(&mut cert_chain_reader)?
.into_iter()
.map(rustls::Certificate)
.collect::<Vec<_>>();
assert!(!certs.is_empty());

let mut key_reader = BufReader::new(std::fs::File::open("./res/server-key.pem")?);
// if the file starts with "BEGIN RSA PRIVATE KEY"
// let mut keys = rustls_pemfile::rsa_private_keys(&mut key_reader)?;
// if the file starts with "BEGIN PRIVATE KEY"
let mut keys = rustls_pemfile::pkcs8_private_keys(&mut key_reader)?;
// assert!(!keys.is_empty());
let key_file = std::fs::File::open(CONFIG.tls.key.as_str())?;
let mut key_reader = BufReader::new(key_file);
let mut head = String::new();
key_reader.read_line(&mut head)?;
let key_file = std::fs::File::open(CONFIG.tls.key.as_str())?;
let mut key_reader = BufReader::new(key_file);
let mut keys = if head.contains("BEGIN RSA PRIVATE KEY") {
rustls_pemfile::rsa_private_keys(&mut key_reader)?
} else if head.contains("BEGIN PRIVATE KEY") {
rustls_pemfile::pkcs8_private_keys(&mut key_reader)?
} else {
panic!("Unknown key format")
};
assert_eq!(keys.len(), 1);
let key = rustls::PrivateKey(keys.remove(0));

Ok((certs, key))
}

#[test]
#[cfg(feature = "dev")]
fn gen() -> Result<()> {
use rcgen::generate_simple_self_signed;
let subject_alt_names = vec!["hello.world.example".to_string(), "localhost".to_string()];
Expand Down

0 comments on commit f4f7bd4

Please sign in to comment.