DKIM2 verification
This commit is contained in:
@@ -19,8 +19,8 @@ use registry::{
|
||||
enums::{DkimRotationStage, DkimSignatureType, DnsRecordType},
|
||||
prelude::{Object, ObjectType, Property},
|
||||
structs::{
|
||||
Dkim1Signature, DkimManagement, DkimSignature, DnsManagement, Domain, SecretText,
|
||||
SecretTextValue, Task, TaskDomainManagement, TaskStatus,
|
||||
Dkim1Signature, Dkim2Signature, DkimManagement, DkimSignature, DnsManagement, Domain,
|
||||
SecretText, SecretTextValue, Task, TaskDomainManagement, TaskStatus,
|
||||
},
|
||||
},
|
||||
types::{datetime::UTCDateTime, id::ObjectId},
|
||||
@@ -148,10 +148,11 @@ async fn dkim_management(server: &Server, task: &TaskDomainManagement) -> trc::R
|
||||
let secret = {
|
||||
if dkim.selector_template.contains("dummy") {
|
||||
match algorithm {
|
||||
DkimSignatureType::Dkim1Ed25519Sha256 => TEST_ED25519_KEY.to_string(),
|
||||
DkimSignatureType::Dkim1RsaSha256 => TEST_RSA_KEY.to_string(),
|
||||
DkimSignatureType::Dkim2Ed25519Sha256
|
||||
| DkimSignatureType::Dkim2RsaSha256 => todo!(),
|
||||
DkimSignatureType::Dkim1Ed25519Sha256
|
||||
| DkimSignatureType::Dkim2Ed25519Sha256 => TEST_ED25519_KEY.to_string(),
|
||||
DkimSignatureType::Dkim1RsaSha256 | DkimSignatureType::Dkim2RsaSha256 => {
|
||||
TEST_RSA_KEY.to_string()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
generate_dkim_private_key(algorithm).await.unwrap().unwrap()
|
||||
@@ -177,18 +178,38 @@ async fn dkim_management(server: &Server, task: &TaskDomainManagement) -> trc::R
|
||||
};
|
||||
|
||||
// Build key
|
||||
let signature = Dkim1Signature {
|
||||
stage: DkimRotationStage::Active,
|
||||
domain_id: task.domain_id,
|
||||
member_tenant_id: domain.member_tenant_id,
|
||||
selector: selector.clone(),
|
||||
private_key: SecretText::Text(SecretTextValue { secret }),
|
||||
..Default::default()
|
||||
};
|
||||
let private_key = SecretText::Text(SecretTextValue { secret });
|
||||
let mut signature = match algorithm {
|
||||
DkimSignatureType::Dkim1Ed25519Sha256 => DkimSignature::Dkim1Ed25519Sha256(signature),
|
||||
DkimSignatureType::Dkim1RsaSha256 => DkimSignature::Dkim1RsaSha256(signature),
|
||||
DkimSignatureType::Dkim2Ed25519Sha256 | DkimSignatureType::Dkim2RsaSha256 => todo!(),
|
||||
DkimSignatureType::Dkim1Ed25519Sha256 | DkimSignatureType::Dkim1RsaSha256 => {
|
||||
let signature = Dkim1Signature {
|
||||
stage: DkimRotationStage::Active,
|
||||
domain_id: task.domain_id,
|
||||
member_tenant_id: domain.member_tenant_id,
|
||||
selector: selector.clone(),
|
||||
private_key,
|
||||
..Default::default()
|
||||
};
|
||||
if algorithm == DkimSignatureType::Dkim1Ed25519Sha256 {
|
||||
DkimSignature::Dkim1Ed25519Sha256(signature)
|
||||
} else {
|
||||
DkimSignature::Dkim1RsaSha256(signature)
|
||||
}
|
||||
}
|
||||
DkimSignatureType::Dkim2Ed25519Sha256 | DkimSignatureType::Dkim2RsaSha256 => {
|
||||
let signature = Dkim2Signature {
|
||||
stage: DkimRotationStage::Active,
|
||||
domain_id: task.domain_id,
|
||||
member_tenant_id: domain.member_tenant_id,
|
||||
selector: selector.clone(),
|
||||
private_key,
|
||||
..Default::default()
|
||||
};
|
||||
if algorithm == DkimSignatureType::Dkim2Ed25519Sha256 {
|
||||
DkimSignature::Dkim2Ed25519Sha256(signature)
|
||||
} else {
|
||||
DkimSignature::Dkim2RsaSha256(signature)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Publish key
|
||||
|
||||
Reference in New Issue
Block a user