Документация кажется вводящей в заблуждение.
Просматривая исходный код bind9 из его репозитория git, вы можете увидеть, что опция -a
в dnssec-dsfromkey
обрабатывается функцией strtodsdigest
, которая достаточно коротка для воспроизведения ниже, и, как вы можете видеть, никаких следов ГОСТ в этом, так что нет ГОСТ для вас (или кого-либо еще с этими источниками)!
unsigned int
strtodsdigest(const char *algname) {
if (strcasecmp(algname, "SHA1") == 0 ||
strcasecmp(algname, "SHA-1") == 0)
{
return (DNS_DSDIGEST_SHA1);
} else if (strcasecmp(algname, "SHA256") == 0 ||
strcasecmp(algname, "SHA-256") == 0)
{
return (DNS_DSDIGEST_SHA256);
} else if (strcasecmp(algname, "SHA384") == 0 ||
strcasecmp(algname, "SHA-384") == 0)
{
return (DNS_DSDIGEST_SHA384);
} else {
fatal("unknown algorithm %s", algname);
}
}
Теперь, изучая изменение https://gitlab.isc.org/isc-projects/bind9/commit/27593e65dc4f1565bb45d91eb561a504da627c41, выпущенное 3 месяца назад, когда ГОСТ полностью удален, вы можете увидеть, в частности, на https://gitlab.isc.org/isc-projects/bind9/commit/27593e65dc4f1565bb45d91eb561a504da627c41#18b3c86fc6dac451f69355fe2f743d98b043255a, что предыдущий фрагмент кода имел ранее:
#if defined(HAVE_OPENSSL_GOST) || defined(HAVE_PKCS11_GOST)
} else if (strcasecmp(algname, "GOST") == 0) {
return (DNS_DSDIGEST_GOST);
#endif
Это означает, что bind
, который вы имели в отношении поддержки GOST, зависел от того, как она была скомпилирована, и от того, имели ли связанные библиотеки openssl / pkcs11 поддержку GOST или нет.
Полагаю, ваш конкретный пакет RedHat был скомпилирован без поддержки ГОСТа.
Таким образом, вам нужно будет либо найти другой пакет, либо скомпилировать его самостоятельно с соответствующими флагами (--enable-gost
в configure
раз), но не с последним исходным кодом, потому что, как я уже говорил выше, теперь ГОСТ полностью удален.
См. https://kb.isc.org/article/AA-01636/0/BIND-9.13.2-Release-Notes.html, где написано:
Поддержка алгоритма ECC-GOST (ГОСТ Р 34.11-94) удалена из BIND, поскольку этот алгоритм был заменен ГОСТ Р 34.11-2012 в RFC6986 и не должен использоваться в новых развертываниях. BIND не будет создавать новые ключи DNSSEC, подписи и дайджест, а также не будет проверять их.
В связи с чем возникает вопрос: вам действительно нужно поддерживать ГОСТ или вы могли бы перейти на другой алгоритм?