Commit Graph
34944 Commits
Author SHA1 Message Date
Mark Andrews f80a474e59 'task' is reported when uninitalised
move XTRACE to after 'task' is created so that 'task' is valid
2021-11-01 17:42:37 +11:00
Artem Boldariev 17716214f4 Merge branch 'artem/tls-do-not-strictly-require-key-and-cert' into 'main'
Be less strict regarding "tls" statements in the configuration file by allowing both "key-file" and "cert-file" be omitted

See merge request isc-projects/bind9!5546
2021-10-30 09:13:59 +00:00
Artem Boldariev a19a519224 Be less strict regarding "tls" statements in the configuration file
In the 9.17.19 release "tls" statements verification code was
added. The code was too strict and assumed that every such a statement
should have both "cert-file" and "key-file" specified. This turned out
to be a regression, as in some cases we plan to use the "tls"
statement to specify TLS connection parameters.

This commit fixes this behaviour; now a "tls" statement should either
have both "cert-file" and "key-file" specified, or both should be
omitted.
2021-10-30 11:54:33 +03:00
Petr Špaček 51bb008f4b Merge branch 'pspacek/reentrant-cleanup' into 'main'
remove last remaining reference to _REENTRANT macro and fix DLZ example

See merge request isc-projects/bind9!5544
2021-10-29 07:09:20 +00:00
Petr Špaček ed7fe739c4 remove last remaining reference to _REENTRANT macro and fix DLZ example
It was used only as guard against unused variable declaration, but the
surrounding code depends on strtok_r being defined unconditionally, so
there is no point in guarding a variable.
Glibc documentation suggests it is obsolete anyway and e.g. Meson build
system decided to ignore it. It seems to be required only by old
Solaris compiler and OpenIndiana uses gcc.
2021-10-29 09:08:20 +02:00
Petr Špaček b2eb166758 Merge branch 'pspacek/clang-format-gen-patch' into 'main'
retain diff output if clang-format changes something

See merge request isc-projects/bind9!5543
2021-10-29 07:07:09 +00:00
Petr Špaček ca4393fc9f retain diff output if clang-format changes something
It's major PITA trying to guess what exactly clang-format has changed,
so how CI stores patch file with changes which can be applied locally if
needed.
2021-10-28 16:45:14 +02:00
Petr Špaček f465fe8103 Merge branch 'pspacek/placeholder' into 'main'
Add placeholder for [GL !332P]

See merge request isc-projects/bind9!5542
2021-10-28 14:12:01 +00:00
Petr Špaček 2139d4cb85 Add placeholder for [GL !332P] 2021-10-28 16:00:58 +02:00
Michał Kępień c52df1bd73 Merge branch 'michal/disable-pylint-warning-C0209' into 'main'
Disable PyLint warning C0209

See merge request isc-projects/bind9!5538
2021-10-28 13:37:37 +00:00
Michał Kępień 860ca4e0ef Disable PyLint warning C0209
PyLint 2.11 reports a new warning, C0209 (consider-using-f-string).
Since f-strings are only available in Python 3.6+, existing scripts
cannot be updated to use this feature just yet because they would stop
working with older Python versions.  Instead, disable PyLint warning
C0209 for the time being.  Sort all disabled warnings in .pylintrc.
2021-10-28 14:03:04 +02:00
Michał Kępień 11232eb500 Merge branch 'v9_17_19-release' into 'main'
Merge 9.17.19 release branch

See merge request isc-projects/bind9!5535
2021-10-28 10:10:20 +00:00
Michał Kępień 88dde4d0be Move CHANGES entry for GL #2308
GL #2308 was originally referenced by CHANGES entry 5727.  However, the
corresponding code change turned out to be flawed and had to be reverted
in BIND 9.17.19, causing CHANGES entry 5727 to be turned into a
placeholder on the release branch.

Commit 63145fb1d3 subsequently addressed
the flaw, so the fix for GL #2308 will be included in BIND 9.17.20.
Move the relevant CHANGES entry to reflect that.
2021-10-28 12:05:58 +02:00
Michał Kępień 8e8ce6d714 Set up release notes for BIND 9.17.20 2021-10-28 12:05:58 +02:00
Michał Kępień aef124bddb Update BIND version to 9.17.19 2021-10-28 12:05:58 +02:00
Michał Kępień 0ee28766a2 Add a CHANGES marker 2021-10-28 12:05:58 +02:00
Michał Kępień a330d6f76f Merge branch 'michal/prepare-documentation-for-bind-9.17.19' into 'security-main'
Prepare documentation for BIND 9.17.19

See merge request isc-private/bind9!325
2021-10-28 12:05:58 +02:00
Michał Kępień b3e5134728 Merge branch '2899-security-disable-lame-cache' into 'security-main'
[CVE-2021-25219] Disable "lame-ttl" cache

See merge request isc-private/bind9!322
2021-10-28 12:05:58 +02:00
Michał Kępień 08a2f4c0b7 Prepare release notes for BIND 9.17.19 2021-10-28 12:05:58 +02:00
Ondřej SurýandMichał Kępień 88c6b4e7af Add CHANGES and release note for [GL #2899] 2021-10-28 12:05:58 +02:00
Michał Kępień e22506337c Add release note for GL #2911 2021-10-28 12:05:58 +02:00
Ondřej SurýandMichał Kępień af0b8d0ba8 Enable lame response detection even with disabled lame cache
Previously, when lame cache would be disabled by setting lame-ttl to 0,
it would also disable lame answer detection.  In this commit, we enable
the lame response detection even when the lame cache is disabled.  This
enables stopping answer processing early rather than going through the
whole answer processing flow.
2021-10-28 12:05:58 +02:00
Michał Kępień 9e36b5bf09 Reorder release notes 2021-10-28 12:05:58 +02:00
Ondřej SurýandMichał Kępień 011e9418ce Disable lame-ttl cache
The lame-ttl cache is implemented in ADB as per-server locked
linked-list "indexed" with <qname,qtype>.  This list has to be walked
every time there's a new query or new record added into the lame cache.
Determined attacker can use this to degrade performance of the resolver.

Resolver testing has shown that disabling the lame cache has little
impact on the resolver performance and it's a minimal viable defense
against this kind of attack.
2021-10-28 12:05:58 +02:00
Michał Kępień 3f8dcef5a8 Tweak and reword release notes 2021-10-28 12:05:58 +02:00
Michał Kępień db7e727e28 Tweak and reword recent CHANGES entries 2021-10-28 12:05:58 +02:00
Michał Kępień 9af0b8dbf4 Minor tweaks to PKCS#11 docs and ARM formatting
Explain more clearly what engine_pkcs11 is.  Fix improperly rendered
pre-formatted text.
2021-10-28 12:05:58 +02:00
Michał Kępień b964ec71eb Update release checklist 2021-10-28 12:05:58 +02:00
Arаm Sаrgsyаn 02940b71a3 Merge branch '2843-openssl-3-deprecations' into 'main'
Refactoring for OpenSSL 3.0.0 support

Closes #2843

See merge request isc-projects/bind9!5385
2021-10-28 09:42:42 +00:00
Mark AndrewsandAram Sargsyan df1d8c9e9b Add release note for [GL #2843] 2021-10-28 07:40:10 +00:00
Mark AndrewsandAram Sargsyan 58d4326766 Add CHANGES note for [GL #2843] 2021-10-28 07:40:08 +00:00
Mark AndrewsandAram Sargsyan 60535fc5f7 The OpenSSL engine API is deprecated in OpenSSL 3.0.0
don't use the engine API unless the OpenSSL API is less
than 3.0.0 (OPENSSL_API_LEVEL < 30000)
2021-10-28 07:39:37 +00:00
Aram Sargsyan 965bdd9894 Use OpenSSL version macro instead of function check
Unless being configured with the `no-deprecated` option, OpenSSL 3.0.0
still has the deprecated APIs present and will throw warnings during
compilation, when using them.

Make sure that the old APIs are being used only with the older versions
of OpenSSL.
2021-10-28 07:39:37 +00:00
Aram Sargsyan e18777c758 Refactor the OpenSSL DH usage to use newer APIs
OpenSSL 3 deprecates most of the DH* family and associated APIs.

Reimplement the existing functionality using a newer set of APIs
which will be used when compiling/linking with OpenSSL 3.0.0 or newer
versions.
2021-10-28 07:39:37 +00:00
Aram Sargsyan aa9411f62b Use the special shims file for DH shims
Since we now have a separate `openssl_shim.{c,h}` files in the `dns`
library, we can place the exisintg shims there.
2021-10-28 07:39:37 +00:00
Aram Sargsyan 32fd3e5420 Refactor the OpenSSL RSA usage to use newer APIs
OpenSSL 3 deprecates most of the RSA* family and associated APIs.

Reimplement the existing functionality using a newer set of APIs
which will be used when compiling/linking with OpenSSL 3.0.0 or newer
versions.
2021-10-28 07:39:34 +00:00
Aram Sargsyan 08a8284e62 Use the special shims file for RSA shims
Since we now have a separate `openssl_shim.{c,h}` files in the `dns`
library, we can place the exisintg shims there.
2021-10-28 07:38:56 +00:00
Aram Sargsyan d4eb6e0a57 Refactor the OpenSSL ECDSA usage to use newer APIs
OpenSSL 3 deprecates most of the EC* family and associated APIs.

Reimplement the existing functionality using a newer set of APIs
which will be used when compiling/linking with OpenSSL 3.0.0 or newer
versions.
2021-10-28 07:38:56 +00:00
Aram Sargsyan 612e5c0adc Use the special shims file for ECDSA shims
Since we now have a separate `openssl_shim.{c,h}` files in the `dns`
library, we can place the exisintg shims there.
2021-10-28 07:38:56 +00:00
Mark AndrewsandAram Sargsyan 76decb5353 Use EVP_PKEY_eq() instead of deprected EVP_PKEY_cmp()
EVP_PKEY_eq() is the replacement with a smaller result range (0, 1)
instead of (-1, 0, 1).  EVP_PKEY_cmp() is mapped to EVP_PKEY_eq() when
building with older versions of OpenSSL.
2021-10-28 07:38:56 +00:00
Mark AndrewsandAram Sargsyan ebea7ee97b Use EVP_RSA_gen() if available
BN and other low level functions are deprecated in OpenSSL 3.0.0
the is one of the replacement methods for generating RSA keys.
2021-10-28 07:38:56 +00:00
Aram Sargsyan 15cb706f22 Refactor the OpenSSL HMAC usage to use newer APIs
OpenSSL 3 deprecates the HMAC* family and associated APIs.

Rewrite portions of OpenSSL library usage code to use a newer
set of HMAC APIs.
2021-10-28 07:38:56 +00:00
Aram Sargsyan 2a6febd5d2 Use thinner shims for OpenSSL's EVP_MD_CTX_new() and EVP_MD_CTX_free()
The EVP_MD_CTX_new() and EVP_MD_CTX_free() functions are renamed APIs
which were previously available as EVP_MD_CTX_create() and
EVP_MD_CTX_destroy() respectively, which means that we can use them
instead of providing our own shim functions.
2021-10-28 07:38:56 +00:00
Aram Sargsyan 2563afb920 Use ERR_get_error_all() instead of deprecated ERR_get_error_line_data()
OpenSSL 3.0.0 deprecates the ERR_get_error_line_data() function.

Use ERR_get_error_all() instead of ERR_get_error_line_data() and create
a shim to use the old variant for the older OpenSSL versions which don't
have the newer ERR_get_error_all().
2021-10-28 07:38:56 +00:00
Aram Sargsyan c45d853f44 Use EVP_MD_CTX_get0_md() instead of deprecated EVP_MD_CTX_md()
OpenSSL 3.0.0 deprecates the EVP_MD_CTX_md() function.

Use EVP_MD_CTX_md() instead of EVP_MD_CTX_get0_md() and create a shim
to use the old variant for the older OpenSSL versions which don't have
the newer EVP_MD_CTX_get0_md().
2021-10-28 07:38:56 +00:00
Aram Sargsyan 8924046753 Make the configure.ac script compatible with OpenSSL 3.0.0
OpenSSL 3.0.0 deprecates many low level API functions.

In preparation for the future support of linking BIND with OpenSSL 3.0.0
without the deprecated API functions, change the configure.ac script to
use functions which are available on all supported versions of OpenSSL
and LibreSSL.
2021-10-28 07:38:56 +00:00
Arаm Sаrgsyаn 55e10b6152 Merge branch '2972-rsa-keys-compare-typo-bug' into 'main'
Fix a bug when comparing two RSA keys

Closes #2972

See merge request isc-projects/bind9!5529
2021-10-28 07:31:13 +00:00
Aram Sargsyan 7101afa23c Add dst_key_pubcompare and dst_key_compare unit test
The dst_key_pubcompare() and dst_key_compare() didn't have a unit test,
add the unit tests which test comparing the same keys, different keys,
and, where possible, similar keys with a manually altered parameter.

dst_key_pubcompare() internally uses the *_todns() functions of the
lib/dns/openssl*_link.c modules.

dst_key_compare() internally uses the *_compare() functions of the
lib/dns/openssl*_link.c modules.
2021-10-27 22:23:03 +00:00
Aram Sargsyan 1ceb1f7ab0 Add CHANGES note for [GL #2972] 2021-10-27 20:35:04 +00:00
Aram Sargsyan 930e4f52a5 Fix a bug when comparing two RSA keys
When comparing different parameters of two RSA keys there is a typo
which causes the "p" prime factors to not being compared.

Fix the typo.
2021-10-27 20:34:04 +00:00