konnektoren_core/certificates/
mod.rs

1//! Module for creating certificates for the Konnektoren.
2use ed25519_dalek::{SigningKey, VerifyingKey};
3use sha2::{Digest, Sha256};
4
5mod certificate_data;
6mod certificate_image;
7pub mod error;
8
9pub use certificate_data::CertificateData;
10pub use certificate_image::{create_certificate, create_certificate_data_url};
11pub use error::*;
12
13pub fn keypair_from_static_str() -> (SigningKey, VerifyingKey) {
14    let mut hasher = Sha256::new();
15    hasher.update(option_env!("SIGNATURE_PRIVATE_KEY").unwrap_or_default());
16    let result = hasher.finalize();
17
18    let seed: [u8; 32] = result[..]
19        .try_into()
20        .expect("Hash output size does not match ed25519 seed size");
21
22    let signing_key = SigningKey::from_bytes(&seed);
23    let verify_key = signing_key.verifying_key();
24
25    (signing_key, verify_key)
26}