Skip to main content

shared/intern/
key.rs

1use crate::config::AnzarConfiguration;
2use crate::infrastructure::database::DatabaseAdapters;
3
4use crate::domain::repositories::SigningKeysRepository;
5use crate::utils::crypto::Crypto;
6
7#[derive(Clone)]
8pub struct KeyService {
9    pub(crate) signing_key_repository: SigningKeysRepository,
10    pub(crate) crypto: Crypto,
11    pub(crate) configuration: AnzarConfiguration,
12}
13
14impl KeyService {
15    pub fn new(
16        database_adapters: &DatabaseAdapters,
17        crypto: &Crypto,
18        configuration: &AnzarConfiguration,
19    ) -> Self {
20        Self {
21            signing_key_repository: SigningKeysRepository::new(
22                database_adapters.signing_keys_adapter.clone(),
23            ),
24            crypto: crypto.clone(),
25            configuration: configuration.clone(),
26        }
27    }
28}