From: W.C.A. Wijngaards Date: Wed, 3 Jan 2024 12:33:43 +0000 (+0100) Subject: - Fix #983: Sha1 runtime insecure change was incomplete. X-Git-Tag: release-1.19.3rc1~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9a2d0238a87e9c5dcee73468743e98df6ef1cf32;p=thirdparty%2Funbound.git - Fix #983: Sha1 runtime insecure change was incomplete. --- diff --git a/doc/Changelog b/doc/Changelog index bd916e8fe..dbc625f00 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,7 @@ - Merge #980: DoH: reject non-h2 early. To fix #979: Improve errors for non-HTTP/2 DoH clients. - Merge #985: Add DoH and DoT to dnstap message. + - Fix #983: Sha1 runtime insecure change was incomplete. 22 December 2023: Yorgos - Update example.conf with cookie options. diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c index 37730f179..f169c64fb 100644 --- a/validator/val_sigcrypt.c +++ b/validator/val_sigcrypt.c @@ -717,7 +717,6 @@ dnskey_verify_rrset(struct module_env* env, struct val_env* ve, if(sec == sec_status_indeterminate) numindeterminate ++; } - verbose(VERB_ALGO, "rrset failed to verify: all signatures are bogus"); if(!numchecked) { *reason = "signature for expected key and algorithm missing"; if(reason_bogus) @@ -730,6 +729,7 @@ dnskey_verify_rrset(struct module_env* env, struct val_env* ve, *reason = "algorithm refused by cryptolib"; return sec_status_indeterminate; } + verbose(VERB_ALGO, "rrset failed to verify: all signatures are bogus"); return sec_status_bogus; } diff --git a/validator/val_utils.c b/validator/val_utils.c index 8b388882b..8b1267954 100644 --- a/validator/val_utils.c +++ b/validator/val_utils.c @@ -416,11 +416,13 @@ static enum sec_status verify_dnskeys_with_ds_rr(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, struct ub_packed_rrset_key* ds_rrset, size_t ds_idx, char** reason, - sldns_ede_code *reason_bogus, struct module_qstate* qstate) + sldns_ede_code *reason_bogus, struct module_qstate* qstate, + int *nonechecked) { enum sec_status sec = sec_status_bogus; size_t i, num, numchecked = 0, numhashok = 0, numsizesupp = 0; num = rrset_get_count(dnskey_rrset); + *nonechecked = 0; for(i=0; i