initial commit

Signed-off-by: sisungo <[email protected]>
This commit is contained in:
2026-07-04 12:27:29 +08:00
commit b6e4a4f28b
4 changed files with 2962 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
/target
/Cargo.lock
/out
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "ca-certificates"
version = "0.1.0"
edition = "2024"
[dependencies]
x509-parser = "0.18"
pem = "3"
+2919
View File
File diff suppressed because it is too large Load Diff
+32
View File
@@ -0,0 +1,32 @@
use pem::Pem;
static BUNDLE: &[u8] = include_bytes!("../data/mozilla.txt");
fn main() {
_ = std::fs::remove_dir_all("./out");
std::fs::create_dir("./out").unwrap();
for cert in x509_parser::pem::Pem::iter_from_buffer(BUNDLE) {
let cert = cert.unwrap();
let cert = cert.parse_x509().unwrap();
let common_name = cert
.subject()
.iter_common_name()
.next()
.map(|x| x.as_str().ok())
.flatten();
let cert_name = match common_name {
Some(common_name) => common_name.to_string(),
None => cert.raw_serial_as_string(),
};
let file_name = cert_name
.replace(":", "_")
.replace(" ", "_")
.replace(".", "_");
std::fs::write(
format!("./out/{file_name}.pem"),
pem::encode(&Pem::new("CERTIFICATE", cert.as_raw())).as_bytes(),
)
.unwrap();
}
}