mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2025-10-10 04:25:44 +08:00
Remove ASN.1 DER structure from DKIM ED25519 public keys
This commit is contained in:
parent
afaa867b46
commit
e8205a27ca
2 changed files with 9 additions and 22 deletions
|
@ -293,7 +293,7 @@ fn quickstart(path: impl Into<PathBuf>) {
|
|||
}
|
||||
}
|
||||
|
||||
let admin_pass = std::env::var("STALWART_INITIAL_ADMIN_PASSWORD").unwrap_or_else(|_| {
|
||||
let admin_pass = std::env::var("STALWART_ADMIN_PASSWORD").unwrap_or_else(|_| {
|
||||
thread_rng()
|
||||
.sample_iter(Alphanumeric)
|
||||
.take(10)
|
||||
|
|
|
@ -32,11 +32,7 @@ use mail_auth::{
|
|||
};
|
||||
use mail_builder::encoders::base64::base64_encode;
|
||||
use mail_parser::DateTime;
|
||||
use pkcs8::{
|
||||
der::{asn1::BitString, Encode},
|
||||
spki::{AlgorithmIdentifier, SubjectPublicKeyInfoOwned},
|
||||
Document,
|
||||
};
|
||||
use pkcs8::Document;
|
||||
use rsa::pkcs1::DecodeRsaPublicKey;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::json;
|
||||
|
@ -259,22 +255,13 @@ pub fn obtain_dkim_public_key(algo: Algorithm, pk: &str) -> Result<String, &'sta
|
|||
}
|
||||
},
|
||||
Algorithm::Ed25519 => {
|
||||
match Ed25519Key::from_pkcs8_maybe_unchecked_der(&der).and_then(|key| {
|
||||
BitString::from_bytes(&key.public_key())
|
||||
.and_then(|subject_public_key| {
|
||||
SubjectPublicKeyInfoOwned {
|
||||
algorithm: AlgorithmIdentifier {
|
||||
oid: "1.3.101.112".parse().unwrap(),
|
||||
parameters: None,
|
||||
},
|
||||
subject_public_key,
|
||||
}
|
||||
.to_der()
|
||||
})
|
||||
.map_err(|err| mail_auth::Error::CryptoError(err.to_string()))
|
||||
}) {
|
||||
Ok(pk) => Ok(String::from_utf8(base64_encode(&pk).unwrap_or_default())
|
||||
.unwrap_or_default()),
|
||||
match Ed25519Key::from_pkcs8_maybe_unchecked_der(&der)
|
||||
.map_err(|err| mail_auth::Error::CryptoError(err.to_string()))
|
||||
{
|
||||
Ok(pk) => Ok(String::from_utf8(
|
||||
base64_encode(&pk.public_key()).unwrap_or_default(),
|
||||
)
|
||||
.unwrap_or_default()),
|
||||
Err(err) => {
|
||||
tracing::debug!("Failed to read ED25519 DER: {err}");
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue