# other proxmox crates
pathpatterns = "0.3"
-proxmox-acme-rs = "0.4"
+proxmox-acme = "0.5"
pxar = "0.10.2"
# PBS workspace
# in their respective repo
pathpatterns.workspace = true
-proxmox-acme-rs.workspace = true
+proxmox-acme.workspace = true
pxar.workspace = true
# proxmox-backup workspace/internal crates
#proxmox-time = { path = "../proxmox/proxmox-time" }
#proxmox-uuid = { path = "../proxmox/proxmox-uuid" }
-#proxmox-acme-rs = { path = "../proxmox-acme-rs" }
+#proxmox-acme = { path = "../proxmox-acme" }
#pathpatterns = {path = "../pathpatterns" }
#pxar = { path = "../pxar" }
use nix::sys::stat::Mode;
use serde::{Deserialize, Serialize};
-use proxmox_acme_rs::account::AccountCreator;
-use proxmox_acme_rs::account::AccountData as AcmeAccountData;
-use proxmox_acme_rs::order::{Order, OrderData};
-use proxmox_acme_rs::Request as AcmeRequest;
-use proxmox_acme_rs::{Account, Authorization, Challenge, Directory, Error, ErrorResponse};
+use proxmox_acme::account::AccountCreator;
+use proxmox_acme::account::AccountData as AcmeAccountData;
+use proxmox_acme::order::{Order, OrderData};
+use proxmox_acme::Request as AcmeRequest;
+use proxmox_acme::{Account, Authorization, Challenge, Directory, Error, ErrorResponse};
use proxmox_http::client::Client;
use proxmox_sys::fs::{replace_file, CreateOptions};
.await
.map_err(|err| Error::Custom(format!("failed to retrieve response body: {}", err)))?;
- let got_nonce = if let Some(new_nonce) = parts.headers.get(proxmox_acme_rs::REPLAY_NONCE) {
+ let got_nonce = if let Some(new_nonce) = parts.headers.get(proxmox_acme::REPLAY_NONCE) {
let new_nonce = new_nonce.to_str().map_err(|err| {
Error::Client(format!(
"received invalid replay-nonce header from ACME server: {}",
))
})?;
- if error.ty == proxmox_acme_rs::error::BAD_NONCE {
+ if error.ty == proxmox_acme::error::BAD_NONCE {
if !got_nonce {
return Err(Error::InvalidApi(
"badNonce without a new Replay-Nonce header".to_string(),
use tokio::io::{AsyncBufReadExt, AsyncRead, AsyncWriteExt, BufReader};
use tokio::process::Command;
-use proxmox_acme_rs::{Authorization, Challenge};
+use proxmox_acme::{Authorization, Challenge};
use crate::acme::AcmeClient;
use crate::api2::types::AcmeDomain;
use proxmox_schema::{api, param_bail};
use proxmox_sys::{task_log, task_warn};
-use proxmox_acme_rs::account::AccountData as AcmeAccountData;
-use proxmox_acme_rs::Account;
+use proxmox_acme::account::AccountData as AcmeAccountData;
+use proxmox_acme::Account;
use pbs_api_types::{Authid, PRIV_SYS_MODIFY};
worker: Arc<WorkerTask>,
node_config: &NodeConfig,
) -> Result<Option<OrderedCertificate>, Error> {
- use proxmox_acme_rs::authorization::Status;
- use proxmox_acme_rs::order::Identifier;
+ use proxmox_acme::authorization::Status;
+ use proxmox_acme::order::Identifier;
let domains = node_config.acme_domains().try_fold(
Vec::<AcmeDomain>::new(),
task_log!(worker, "All domains validated");
task_log!(worker, "Creating CSR");
- let csr = proxmox_acme_rs::util::Csr::generate(&identifiers, &Default::default())?;
+ let csr = proxmox_acme::util::Csr::generate(&identifiers, &Default::default())?;
let mut finalize_error_cnt = 0u8;
let order_url = &order.location;
let mut order;
loop {
- use proxmox_acme_rs::order::Status;
+ use proxmox_acme::order::Status;
order = acme.get_order(order_url).await?;
tokio::time::sleep(Duration::from_secs(5)).await;
loop {
- use proxmox_acme_rs::authorization::Status;
+ use proxmox_acme::authorization::Status;
let auth = acme.get_authorization(auth_url).await?;
match auth.status {