(tls_dir: &Path)
| 186 | } |
| 187 | |
| 188 | fn load_from_data_dir(tls_dir: &Path) -> crate::Result<TlsCredentials> { |
| 189 | let cert = read_single_cert(&tls_dir.join(NODE_CERT_FILE))?; |
| 190 | let key = read_private_key(&tls_dir.join(NODE_KEY_FILE))?; |
| 191 | let ca_cert = read_single_cert(&tls_dir.join(CA_CERT_FILE))?; |
| 192 | let cluster_secret = read_cluster_secret(&tls_dir.join(CLUSTER_SECRET_FILE))?; |
| 193 | let additional_ca_certs = load_extra_cas(tls_dir)?; |
| 194 | let spki_pin = |
| 195 | nodedb_cluster::transport::spki_pin_from_cert_der(cert.as_ref()).unwrap_or([0u8; 32]); |
| 196 | Ok(TlsCredentials { |
| 197 | cert, |
| 198 | key, |
| 199 | ca_cert, |
| 200 | additional_ca_certs, |
| 201 | crls: Vec::new(), |
| 202 | cluster_secret, |
| 203 | spki_pin, |
| 204 | }) |
| 205 | } |
| 206 | |
| 207 | /// Load every PEM-encoded CA certificate from `tls_dir/ca.d/*.crt`, |
| 208 | /// sorted by filename for deterministic output. Missing directory is |
no test coverage detected