-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Добрый день!
Следующий код в Windows находит сертификат, в Linux (Ubuntu 18.04) не находит.
// cert - X509Certificate2 сертификат 2012_256
var certificates = new X509Certificate2Collection(cert);
// Не находит сертификат под Linux:
var result = certificates.Find(X509FindType.FindByIssuerDistinguishedName, cert.IssuerName.Name, false);
Console.WriteLine($"Count={result.Count}");
// Windows: Count=1
// Linux: Count=0Поиск изначально используется при проверке CMS подписи, не содержащей сертификат подписанта, для поиска сертификата в хранилище. И, если тип подписанта X509IssuerSerial, то ищем в т.ч. по строке ((X509IssuerSerial)signedCms.SignerInfos[0].SignerIdentifier.Value).IssuerName, которая совпадает по значению с signerCert.IssuerName.Name.
Также в Linux возвращает false метод signerIdentifier.MatchesCertificate(signerCert), хотя в Windows результат = true.
Интересно, что если для Find использовать значение cert.Issuer вместо cert.IssuerName.Name, то поиск работает.
Если сравнить значения, то в Linux различаются именования части элементов - INN вместо ИНН, OGRN вместо ОГРН (и т.д.).
Например:
Cert.IssuerName.Name=INN=007702235133, OGRN=1037700013020, CN=Центральный банк Российской Федерации, O=Банк России, STREET="ул. Неглинная, д. 12", L=г. Москва, S=77 г. Москва, C=RU
Cert.Issuer =ИНН=007702235133, ОГРН=1037700013020, CN=Центральный банк Российской Федерации, O=Банк России, STREET="ул. Неглинная, д. 12", L=г. Москва, S=77 г. Москва, C=RU
В Windows значения совпадают:
Cert.IssuerName.Name=ИНН=007702235133, ОГРН=1037700013020, CN=Центральный банк Российской Федерации, O=Банк России, STREET="ул. Неглинная, д. 12", L=г. Москва, S=77 г. Москва, C=RU
Cert.Issuer =ИНН=007702235133, ОГРН=1037700013020, CN=Центральный банк Российской Федерации, O=Банк России, STREET="ул. Неглинная, д. 12", L=г. Москва, S=77 г. Москва, C=RU
Аналогичная проблема с поиском findType=FindBySubjectDistinguishedName и полями cert.Subject и cert.SubjectName.Name.
LibCore 2024.1.10.1, КриптоПро CSP 5.0.12997 КС1, Docker Ubuntu 18.04, Windows 10 22H2 19045.4046.