pv/examples: Add example for calculating host-key hashes

Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Steffen Eiden
2025-07-07 15:47:04 +02:00
committed by Jan Höppner
parent ce9c518b97
commit 2739b8a488

View File

@@ -0,0 +1,28 @@
#![allow(missing_docs)]
use pv::request::EcPubKeyCoord;
use pv_core::misc::encode_hex;
use s390_pv as pv;
use std::env::args;
use pv::misc::{read_certs, read_file};
use pv::{Error, Result};
fn main() -> Result<()> {
let hkd = args().nth(1).expect("Expect one Host-key document");
let hkd_bin = read_file(&hkd, "Host-key document")?;
let certs = read_certs(hkd_bin).map_err(|source| Error::HkdNotPemOrDer { hkd, source })?;
let hkd_cert = certs
.first()
.expect("Expect at least one certificate in the HKD file");
let pc: EcPubKeyCoord = hkd_cert
.public_key()
.expect("Expected a public key in the Host-key document")
.try_into()
.unwrap();
println!("{}", encode_hex(pc.sha256().unwrap()));
Ok(())
}