malikzh / NCANode

⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
http://ncanode.kz
MIT License
261 stars 88 forks source link

Корректная обработка email в CertificateWrapper #199

Closed eudj1n closed 2 months ago

eudj1n commented 2 months ago

Заметили что не всегда при проверке получаем email из сертификата. Небольшой анализ показал что кроме атрибута E нужно также проверять и атрибут EMAILADDRESS.

Результат до (текущая версия NCANode):

"subject": {
                "commonName": "ТЕСТОВ ТЕСТ",
                "surName": "ТЕСТ",
                "organization": "Товарищество с ограниченной ответственностью \"MITWORK\"",
                "iin": "000000000000",
                "bin": "150240008272",
                "country": "KZ",
                "dn": "EMAILADDRESS=test@mitwork.kz, GIVENNAME=ТЕСТОВИЧ, OU=BIN150240008272, O=\"Товарищество с ограниченной ответственностью \\\"MITWORK\\\"\", C=KZ, SERIALNUMBER=IIN000000000000, SURNAME=ТЕСТОВ, CN=ТЕСТОВ ТЕСТ"
            }

Результат после (с учетом доработки из текущего PR):

"subject": {
                "commonName": "ТЕСТОВ ТЕСТ",
                "surName": "ТЕСТ",
                "email": "test@mitwork.kz",
                "organization": "Товарищество с ограниченной ответственностью \"MITWORK\"",
                "iin": "000000000000",
                "bin": "150240008272",
                "country": "KZ",
                "dn": "EMAILADDRESS=test@mitwork.kz, GIVENNAME=ТЕСТОВИЧ, OU=BIN150240008272, O=\"Товарищество с ограниченной ответственностью \\\"MITWORK\\\"\", C=KZ, SERIALNUMBER=IIN000000000000, SURNAME=ТЕСТОВ, CN=ТЕСТОВ ТЕСТ"
            }

P.S. Пример из метода /pkcs12/info с обработкой реального сертификата, персональные данные скрыты.