mod enclave_identity;
mod fmspc;
mod helpers;
mod pck_cert;
mod pck_crl;
mod registration;
mod tcb_info;
use crate::{error::IntelApiError, types::ApiVersion};
use reqwest::Client;
use url::Url;
const BASE_URL: &str = "https://api.trustedservices.intel.com";
#[derive(Clone)]
pub struct ApiClient {
client: Client,
base_url: Url,
api_version: ApiVersion,
max_retries: u32,
}
impl ApiClient {
pub fn new() -> Result<Self, IntelApiError> {
Self::new_with_options(BASE_URL, ApiVersion::V4)
}
pub fn new_with_version(api_version: ApiVersion) -> Result<Self, IntelApiError> {
Self::new_with_options(BASE_URL, api_version)
}
pub fn new_with_base_url(base_url: impl reqwest::IntoUrl) -> Result<Self, IntelApiError> {
Self::new_with_options(base_url, ApiVersion::V4)
}
pub fn new_with_options(
base_url: impl reqwest::IntoUrl,
api_version: ApiVersion,
) -> Result<Self, IntelApiError> {
Ok(ApiClient {
client: Client::builder()
.min_tls_version(reqwest::tls::Version::TLS_1_2)
.build()?,
base_url: base_url.into_url()?,
api_version,
max_retries: 3, })
}
pub fn set_max_retries(&mut self, max_retries: u32) {
self.max_retries = max_retries;
}
}