Adding upstream version 0.5.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
6dc19540ee
commit
19551ac12c
23 changed files with 6571 additions and 0 deletions
70
build/src_writer.rs
Normal file
70
build/src_writer.rs
Normal file
|
@ -0,0 +1,70 @@
|
|||
use std::io::Write as _;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use crate::openssh::MyPrefs;
|
||||
|
||||
pub fn write_source(prefs: MyPrefs) -> anyhow::Result<()> {
|
||||
let SrcPaths { src_dir, src_path } = src_path();
|
||||
|
||||
// create dir
|
||||
if !src_dir.exists() {
|
||||
std::fs::create_dir_all(&src_dir)?;
|
||||
}
|
||||
|
||||
// open file
|
||||
let mut file = std::fs::File::create(src_path)?;
|
||||
|
||||
writeln!(
|
||||
file,
|
||||
r#"//! This file is autogenerated at build-time when `RELOAD_SSH_ALGO` is set to environment."#
|
||||
)?;
|
||||
writeln!(file)?;
|
||||
|
||||
writeln!(file, "use crate::DefaultAlgorithms;")?;
|
||||
writeln!(file,)?;
|
||||
|
||||
writeln!(file, r#"/// Default algorithms for ssh."#)?;
|
||||
writeln!(file, r#"pub fn defaults() -> DefaultAlgorithms {{"#)?;
|
||||
writeln!(file, r#" DefaultAlgorithms {{"#)?;
|
||||
write_vec(
|
||||
&mut file,
|
||||
"ca_signature_algorithms",
|
||||
&prefs.ca_signature_algorithms,
|
||||
)?;
|
||||
write_vec(&mut file, "ciphers", &prefs.ciphers)?;
|
||||
write_vec(&mut file, "host_key_algorithms", &prefs.host_key_algorithms)?;
|
||||
write_vec(&mut file, "kex_algorithms", &prefs.kex_algorithms)?;
|
||||
write_vec(&mut file, "mac", &prefs.mac)?;
|
||||
write_vec(
|
||||
&mut file,
|
||||
"pubkey_accepted_algorithms",
|
||||
&prefs.pubkey_accepted_algorithms,
|
||||
)?;
|
||||
writeln!(file, r#" }}"#)?;
|
||||
writeln!(file, r#"}}"#)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn write_vec(file: &mut std::fs::File, name: &str, vec: &[String]) -> anyhow::Result<()> {
|
||||
writeln!(file, r#" {name}: vec!["#)?;
|
||||
for item in vec {
|
||||
writeln!(file, r#" {item}.to_string(),"#,)?;
|
||||
}
|
||||
writeln!(file, r#" ],"#)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
struct SrcPaths {
|
||||
src_dir: PathBuf,
|
||||
src_path: PathBuf,
|
||||
}
|
||||
|
||||
fn src_path() -> SrcPaths {
|
||||
let src_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("src")
|
||||
.join("default_algorithms");
|
||||
let src_path = src_dir.join("openssh.rs");
|
||||
|
||||
SrcPaths { src_dir, src_path }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue