qs_core/
utils.rs

1use rustls::pki_types::{CertificateDer, PrivateKeyDer};
2
3use crate::common::FileSendRecvTree;
4/// Generate a self signed certificate and private key
5pub fn self_signed_cert() -> Result<(CertificateDer<'static>, PrivateKeyDer<'static>), rcgen::Error>
6{
7    let cert_key = rcgen::generate_simple_self_signed(vec!["localhost".to_string()])?;
8    let cert = cert_key.cert.der();
9    let key = cert_key.key_pair.serialize_der();
10
11    Ok((cert.to_owned(), key.try_into().unwrap()))
12}
13
14pub fn hash_files(files: FileSendRecvTree) -> u64 {
15    use std::collections::hash_map::DefaultHasher;
16    use std::hash::{Hash, Hasher};
17
18    let mut hasher = DefaultHasher::new();
19    files.hash(&mut hasher);
20    hasher.finish()
21}