]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
Бага в Go, когда есть X.509 сертификат с неподдерживаемым алгоритмом
authorSergey Matveev <stargrave@stargrave.org>
Sun, 26 Mar 2023 12:34:07 +0000 (15:34 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 26 Mar 2023 12:34:07 +0000 (15:34 +0300)
Обнаружилась проблема в Go. Если в списке доверенных сертификатов есть,
например, с ГОСТовым алгоритмом, то при попытке проверки сертификата, он
запаникует:

    panic: interface conversion: interface is nil, not x509.pubKeyEqual

    goroutine 194 [running]:
    crypto/x509.alreadyInChain(0xc000466100, {0xc00029e760, 0x2, 0xc0006062e8?})
            /.../src/crypto/x509/verify.go:870 +0x14a

То есть, авторы crypto/x509 не предполагают что может быть алгоритм
который они не поддерживают. Я то этого всего не замечал, так как
использую fork с поддержкой ГОСТов, но если подсунуть мой CA bundle
(http://www.ca.cypherpunks.ru/cert.pem.), то на обычной версии Go это
проявится.


No differences found