From 9a4adf51f358a9f04dafe9979d7472ff72c1815c Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 26 Mar 2023 15:34:07 +0300 Subject: [PATCH] =?utf8?q?=D0=91=D0=B0=D0=B3=D0=B0=20=D0=B2=20Go,=20=D0=BA?= =?utf8?q?=D0=BE=D0=B3=D0=B4=D0=B0=20=D0=B5=D1=81=D1=82=D1=8C=20X.509=20?= =?utf8?q?=D1=81=D0=B5=D1=80=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82=20?= =?utf8?q?=D1=81=20=D0=BD=D0=B5=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?utf8?q?=D0=B8=D0=B2=D0=B0=D0=B5=D0=BC=D1=8B=D0=BC=20=D0=B0=D0=BB=D0=B3?= =?utf8?q?=D0=BE=D1=80=D0=B8=D1=82=D0=BC=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Обнаружилась проблема в 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 это проявится. -- 2.48.1