7. Правила обработки наименований, основанных на национальных алфавитах
Имена (наименования), основанные на национальных алфавитах (ИНА, internationalized names), могут вызвать затруднения при их обработке. Тем не менее, ИНА встречаются во многих сертификатах и полях СОС, а также в их расширениях, включая уникальные имена, имена сегментов/областей, основанные на национальных алфавитах (ИСНА, internationalized domain names), адреса электронной почтовой службы, идентификаторы ресурсов, основанные на национальных алфавитах (ИРНА, internationalized resource identifiers). Хранение, сравнение, представление и иная обработка таких имён требует особой тщательности и осторожности. Это связано с тем, что некоторые символы могут кодироваться различными способами. Более того, одни и те же имена могут быть представлены в нескольких кодировках (например, ASCII- или UTF8-код). Далее рассматривается согласование требований для хранения или сравнения каждого из этих форматов имён. Для отдельных форматов имён приводятся правила их отображения.
7.1. Отображение ИНА в уникальные имена
Отображение ИНА в уникальные имена представлено в 4.1.2.4 для имени издателя сертификата «Issuer», в 4.1.2.6 для имени владельца сертификата «Subject». Стандартные атрибуты именования, например, общепринятое имя «common name», применяют формат данных «DirectoryString», который согласуется с ИНА за счёт использования многообразия языковых кодов. Прикладные системы и ИТС, придерживающиеся данного стандарта, обязаны обрабатывать UTF8String- и PrintableString-кодировки. Стандарт RFC-3280 требовал только двоичного сравнения значений атрибутов, закодированных с помощью UTF8String-кода, однако, данный стандарт требует более комплексной процедуры сравнения. Прикладные системы могут встретить сертификаты и СОС с именами, которые имеют формат TeletexString-, BMPString- или UniversalString-кодировок, в то время как они рассматривают их как не обязательные («OPTIONAL»).
Прикладные системы и ИТС, придерживающиеся данного стандарта, обязаны использовать описание «StringPrep» LDAP-протокола (включая обработку незначительного множества, RFC-4518) в качестве основы для сравнения атрибутов уникальных имён, имеющих формат, либо UTF8String-, либо PrintableString-кодировки. Прикладные системы и ИТС, придерживающиеся данного стандарта, обязаны проводить процедуры сравнения имён с использованием правила сравнения «caseIgnoreMatch» (Рекомендация ITU-T X.520). Применение атрибутов различных форматов, предусматривающих иные подобные правила сравнения, является не обязательным.
Перед тем, как проводить сравнение имён на основе правила сравнения «caseIgnoreMatch», прикладные системы и ИТС, придерживающиеся данного стандарта, обязаны реализовать шести итерационную процедуру (алгоритм) подготовки последовательности, представленную в стандарте RFC-4518, для каждого атрибута в формате «DirectoryString», с учётом следующих изменений:
На второй итерации, «Map» (отображение/преобразование), целесообразно, чтобы преобразование включало игнорирование регистра написания символов («case folding»), как это определено в Приложении В.2 стандарта RFC-3454.
На шестой итерации, «Insignificant Character Removal» (удаление незначащего символа), проводится компрессия за счёт удаления символов «пробел», «табуляция» и «пустая строка», как это определено в параграфе 2.6.1 стандарта RFC-4518 (обработка пустых символов, «Insignificant Space Handling»).
При подготовке последовательности символов, атрибуты должны, в обязательном порядке, трактоваться как сохраняемые значения.
Сравнения атрибутов «domainComponent» должно проводиться, в обязательном порядке, как это описано в 7.3. Считается, что два атрибута именования совпадают, если типы атрибутов совпали, а значения атрибутов полностью совпали после выполнения процедуры подготовки последовательности символов. Два взаимосвязанных уникальных имени RDN1 и RDN2 совпадают, если они имеют одно и то же число атрибутов именования и для каждого такого атрибута в имени RDN1 существует точно такой же (полностью совпадающий) атрибут именования в имени RDN2. Два уникальных наименования DN1 и DN2 совпадают, если они имеют одно и то же число взаимосвязанных уникальных имён RDN, для каждого RDN в DN1 существует точно такое же (полностью совпадающее) RDN в DN2 и все совпадающие RDN расположены в обоих уникальных наименованиях DN в одном и том же порядке. Уникальное наименование DN1 расположено в границах субдерева, устанавливаемого уникальным наименованием DN2, если DN1 содержит, по крайней мере, столько же взаимосвязанных уникальных имён RDN, как и в DN2, а сами DN1 и DN2 совпадают, если замыкающие RDN в DN1 игнорируются.