public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
dkim: Add support for 3072 and 4096 bit RSA keys (#6365)
* dkim: Add support for 3072 and 4096 bit RSA keys Signed-off-by: Marvin A. Ruder <[email protected]> * php: added missing ; in dkim function * php: make 4096 DKIM default * db: update schema to set dkim 4096 as default * Revert "db: update schema to set dkim 4096 as default" This reverts commit 790b40a69563722513cda540ba34e3ae30874e05. * Revert "php: make 4096 DKIM default" This reverts commit 7e643376c7e11d23b0dae95ae59a2a5cc195e057. --------- Signed-off-by: Marvin A. Ruder <[email protected]> Co-authored-by: DerLinkman <[email protected]>
062539b7
data/web/api/openapi.yaml | 2 +-
data/web/inc/functions.dkim.inc.php | 5 ++++-
data/web/templates/admin/tab-config-dkim.twig | 2 ++
data/web/templates/edit/domain-templates.twig | 2 ++
data/web/templates/modals/mailbox.twig | 6 ++++++
5 files changed, 15 insertions(+), 2 deletions(-)
Diff
diff --git a/data/web/api/openapi.yaml b/data/web/api/openapi.yaml
index 969aa770..7fb4af30 100644
--- a/data/web/api/openapi.yaml
+++ b/data/web/api/openapi.yaml
@@ -409,7 +409,7 @@ paths:
description: a list of domains for which a dkim key should be generated
type: string
key_size:
- description: the key size (1024 or 2048)
+ description: the key size (1024, 2048, 3072 or 4096)
type: number
type: object
summary: Generate DKIM Key
diff --git a/data/web/inc/functions.dkim.inc.php b/data/web/inc/functions.dkim.inc.php
index 8b1766a2..e7e41173 100644
--- a/data/web/inc/functions.dkim.inc.php
+++ b/data/web/inc/functions.dkim.inc.php
@@ -240,9 +240,12 @@ function dkim($_action, $_data = null, $privkey = false) {
if (strlen($dkimdata['pubkey']) < 391) {
$dkimdata['length'] = "1024";
}
- elseif (strlen($dkimdata['pubkey']) < 736) {
+ elseif (strlen($dkimdata['pubkey']) < 564) {
$dkimdata['length'] = "2048";
}
+ elseif (strlen($dkimdata['pubkey']) < 736) {
+ $dkimdata['length'] = "3072";
+ }
elseif (strlen($dkimdata['pubkey']) < 1416) {
$dkimdata['length'] = "4096";
}
diff --git a/data/web/templates/admin/tab-config-dkim.twig b/data/web/templates/admin/tab-config-dkim.twig
index 85c6dc6a..ec77139e 100644
--- a/data/web/templates/admin/tab-config-dkim.twig
+++ b/data/web/templates/admin/tab-config-dkim.twig
@@ -117,6 +117,8 @@
<select data-style="btn btn-light btn-sm" class="form-control" id="key_size" name="key_size" title="{{ lang.admin.dkim_key_length }}" required>
<option data-subtext="bits">1024</option>
<option data-subtext="bits">2048</option>
+ <option data-subtext="bits">3072</option>
+ <option data-subtext="bits">4096</option>
</select>
</div>
</div>
diff --git a/data/web/templates/edit/domain-templates.twig b/data/web/templates/edit/domain-templates.twig
index 825e6674..d4612a19 100644
--- a/data/web/templates/edit/domain-templates.twig
+++ b/data/web/templates/edit/domain-templates.twig
@@ -103,6 +103,8 @@
<select data-style="btn btn-light" class="form-control" id="key_size" name="key_size">
<option value="1024" data-subtext="bits" {% if template.attributes.key_size == 1024 %} selected{% endif %}>1024</option>
<option value="2048" data-subtext="bits" {% if template.attributes.key_size == 2048 %} selected{% endif %}>2048</option>
+ <option value="3072" data-subtext="bits" {% if template.attributes.key_size == 3072 %} selected{% endif %}>3072</option>
+ <option value="4096" data-subtext="bits" {% if template.attributes.key_size == 4096 %} selected{% endif %}>4096</option>
</select>
</div>
</div>
diff --git a/data/web/templates/modals/mailbox.twig b/data/web/templates/modals/mailbox.twig
index 0f1b23a7..76f54ec3 100644
--- a/data/web/templates/modals/mailbox.twig
+++ b/data/web/templates/modals/mailbox.twig
@@ -490,6 +490,8 @@
<select data-style="btn btn-light" class="form-control" id="key_size" name="key_size">
<option data-subtext="bits" value="1024">1024</option>
<option data-subtext="bits" value="2048" selected>2048</option>
+ <option data-subtext="bits" value="3072">3072</option>
+ <option data-subtext="bits" value="4096">4096</option>
</select>
</div>
</div>
@@ -628,6 +630,8 @@
<select data-style="btn btn-light" class="form-control" id="key_size" name="key_size">
<option data-subtext="bits">1024</option>
<option data-subtext="bits" selected>2048</option>
+ <option data-subtext="bits">3072</option>
+ <option data-subtext="bits">4096</option>
</select>
</div>
</div>
@@ -843,6 +847,8 @@
<select data-style="btn btn-light" class="form-control" id="key_size2" name="key_size">
<option data-subtext="bits">1024</option>
<option data-subtext="bits" selected>2048</option>
+ <option data-subtext="bits">3072</option>
+ <option data-subtext="bits">4096</option>
</select>
</div>
</div>