mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2025-10-11 04:55:51 +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()
|
thread_rng()
|
||||||
.sample_iter(Alphanumeric)
|
.sample_iter(Alphanumeric)
|
||||||
.take(10)
|
.take(10)
|
||||||
|
|
|
@ -32,11 +32,7 @@ use mail_auth::{
|
||||||
};
|
};
|
||||||
use mail_builder::encoders::base64::base64_encode;
|
use mail_builder::encoders::base64::base64_encode;
|
||||||
use mail_parser::DateTime;
|
use mail_parser::DateTime;
|
||||||
use pkcs8::{
|
use pkcs8::Document;
|
||||||
der::{asn1::BitString, Encode},
|
|
||||||
spki::{AlgorithmIdentifier, SubjectPublicKeyInfoOwned},
|
|
||||||
Document,
|
|
||||||
};
|
|
||||||
use rsa::pkcs1::DecodeRsaPublicKey;
|
use rsa::pkcs1::DecodeRsaPublicKey;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
|
@ -259,21 +255,12 @@ pub fn obtain_dkim_public_key(algo: Algorithm, pk: &str) -> Result<String, &'sta
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Algorithm::Ed25519 => {
|
Algorithm::Ed25519 => {
|
||||||
match Ed25519Key::from_pkcs8_maybe_unchecked_der(&der).and_then(|key| {
|
match Ed25519Key::from_pkcs8_maybe_unchecked_der(&der)
|
||||||
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()))
|
.map_err(|err| mail_auth::Error::CryptoError(err.to_string()))
|
||||||
}) {
|
{
|
||||||
Ok(pk) => Ok(String::from_utf8(base64_encode(&pk).unwrap_or_default())
|
Ok(pk) => Ok(String::from_utf8(
|
||||||
|
base64_encode(&pk.public_key()).unwrap_or_default(),
|
||||||
|
)
|
||||||
.unwrap_or_default()),
|
.unwrap_or_default()),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
tracing::debug!("Failed to read ED25519 DER: {err}");
|
tracing::debug!("Failed to read ED25519 DER: {err}");
|
||||||
|
|
Loading…
Add table
Reference in a new issue