summaryrefslogtreecommitdiff
path: root/crates/jmap/src/api/management
diff options
context:
space:
mode:
Diffstat (limited to 'crates/jmap/src/api/management')
-rw-r--r--crates/jmap/src/api/management/dkim.rs30
-rw-r--r--crates/jmap/src/api/management/domain.rs9
2 files changed, 17 insertions, 22 deletions
diff --git a/crates/jmap/src/api/management/dkim.rs b/crates/jmap/src/api/management/dkim.rs
index 09c37c13..860aded5 100644
--- a/crates/jmap/src/api/management/dkim.rs
+++ b/crates/jmap/src/api/management/dkim.rs
@@ -82,13 +82,10 @@ impl JMAP {
_ => return Err(trc::ResourceEvent::NotFound.into_err()),
};
- match obtain_dkim_public_key(algo, &pk) {
- Ok(data) => Ok(JsonResponse::new(json!({
- "data": data,
- }))
- .into_http_response()),
- Err(details) => Err(manage::error(details, None::<u32>)),
- }
+ Ok(JsonResponse::new(json!({
+ "data": obtain_dkim_public_key(algo, &pk)?,
+ }))
+ .into_http_response())
}
async fn handle_create_signature(&self, body: Option<Vec<u8>>) -> trc::Result<HttpResponse> {
@@ -215,7 +212,7 @@ impl JMAP {
}
}
-pub fn obtain_dkim_public_key(algo: Algorithm, pk: &str) -> Result<String, &'static str> {
+pub fn obtain_dkim_public_key(algo: Algorithm, pk: &str) -> trc::Result<String> {
match simple_pem_parse(pk) {
Some(der) => match algo {
Algorithm::Rsa => match RsaKey::<Sha256>::from_der(&der).and_then(|key| {
@@ -226,11 +223,10 @@ pub fn obtain_dkim_public_key(algo: Algorithm, pk: &str) -> Result<String, &'sta
String::from_utf8(base64_encode(pk.as_bytes()).unwrap_or_default())
.unwrap_or_default(),
),
- Err(err) => {
- tracing::debug!("Failed to read RSA DER: {err}");
-
- Err("Failed to read RSA DER")
- }
+ Err(err) => Err(manage::error(
+ "Failed to read RSA DER",
+ err.to_string().into(),
+ )),
},
Algorithm::Ed25519 => {
match Ed25519Key::from_pkcs8_maybe_unchecked_der(&der)
@@ -240,15 +236,11 @@ pub fn obtain_dkim_public_key(algo: Algorithm, pk: &str) -> Result<String, &'sta
base64_encode(&pk.public_key()).unwrap_or_default(),
)
.unwrap_or_default()),
- Err(err) => {
- tracing::debug!("Failed to read ED25519 DER: {err}");
-
- Err("Failed to read ED25519 DER")
- }
+ Err(err) => manage::error(details, err.to_string().into()),
}
}
},
- None => Err("Failed to decode private key"),
+ None => Err(manage::error("Failed to decode private key", None::<u32>)),
}
}
diff --git a/crates/jmap/src/api/management/domain.rs b/crates/jmap/src/api/management/domain.rs
index 1ab46d69..e3890df5 100644
--- a/crates/jmap/src/api/management/domain.rs
+++ b/crates/jmap/src/api/management/domain.rs
@@ -4,7 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
-use directory::backend::internal::manage::ManageDirectory;
+use directory::backend::internal::manage::{self, ManageDirectory};
use hyper::Method;
use serde::{Deserialize, Serialize};
@@ -185,7 +185,7 @@ impl JMAP {
});
}
Err(err) => {
- tracing::debug!("Failed to obtain DKIM public key: {}", err);
+ trc::error!(err);
}
}
}
@@ -303,7 +303,10 @@ impl JMAP {
let parsed_cert = match parse_x509_certificate(cert) {
Ok((_, parsed_cert)) => parsed_cert,
Err(err) => {
- tracing::debug!("Failed to parse certificate: {}", err);
+ trc::error!(manage::error(
+ "Failed to parse certificate",
+ err.to_string().into()
+ ));
continue;
}
};