RFC: 5280
Оригинал: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
Предыдущие версии: RFC 2459, RFC 3280, RFC 4325, RFC 4630
Категория: Предложенный стандарт
Дата публикации: (с дополнениями из RFC 6818, Январь 2013)
Авторы: , , , , , ,
Перевод: Мельников Дмитрий Анатольевич
  1. Вычисляем переменную «interim_reasons_mask» для данного СОС следующим образом:

    1. Если последовательность «issuingDistributionPoint» в субполе «crlExtensions» представлена и она включает субпоследовательность «onlySomeReasons», а также последовательность «DistributionPoint» содержит субпоследовательность «reasons», тогда присваиваем переменной «interim_reasons_mask» значение в точке пересечения причин из последовательности «DistributionPoint» и из субпоследовательности «onlySomeReasons» последовательности «issuingDistributionPoint».

    2. Если последовательность «issuingDistributionPoint» в субполе «crlExtensions» включает субпоследовательность «onlySomeReasons», а последовательность «DistributionPoint» не содержит субпоследовательность «reasons», тогда присваиваем переменной «interim_reasons_mask» значение, содержащееся в субпоследовательности «onlySomeReasons» последовательности «issuingDistributionPoint».

    3. Если последовательность «issuingDistributionPoint» в субполе «crlExtensions» не представлена или она не включает субпоследовательность «onlySomeReasons», но последовательность «DistributionPoint» содержит субпоследовательность «reasons», тогда присваиваем переменной «interim_reasons_mask» значение, содержащееся в субпоследовательности «reasons» последовательности «DistributionPoint».

    4. Если последовательность «issuingDistributionPoint» в субполе «crlExtensions» не представлена или она не включает субпоследовательность «onlySomeReasons» и последовательность «DistributionPoint» не содержит субпоследовательность «reasons», тогда присваиваем переменной «interim_reasons_mask» специальное значение «all-reasons».

  2. Проверяем, что переменная «interim_reasons_mask» включает одну или несколько причин, которые не содержатся в переменной «reasons_mask».

  3. Получаем и подтверждаем подлинность маршрута сертификации до издателя заполняемого СОС. ДЗУЦ для МС должен быть, в обязательном порядке, тем же самым, как и ДЗУЦ, используемый при подтверждении подлинности целевого сертификата. Если в сертификате издателя СОС представлено субполе «keyUsage», то проверяем, что флаг «cRLSign» установлен.

  4. Подтверждаем подлинность подписи в заполняемом СОС, используя для этого открытый ключ, подлинность которого была подтверждена в операции (f).

  5. Если значение «use-deltas» установлено, то подтверждаем подлинность подписи в усечённом СОС, используя для этого открытый ключ, подлинность которого была подтверждена в операции (f).

  6. Если значение «use-deltas» установлено, то осуществляем поиск сертификата в усечённом СОС. Если запись найдена и она совпадает с издателем сертификата и его серийным номером (5.3.3), то присваиваем значение переменной «cert_status» с указанием причины следующим образом:

    1. Если код причины отзыва в расширении записи СОС представлен, то присваиваем переменной «cert_status» значение этого кода причины отзыва из расширения записи СОС.

    2. Если код причины отзыва в расширении записи СОС не представлен, то присваиваем переменной «cert_status» значение «unspecified».

  7. Если переменная «cert_status» имеет значение «UNREVOKED», то осуществляем поиск сертификата в заполняемом СОС. Если запись найдена и она совпадает с издателем сертификата и его серийным номером (5.3.3), то присваиваем значение переменной «cert_status» с указанием причины, как это было сделано в операции (i).

  8. Если переменная «cert_status» имеет значение «removeFromCRL», то присваиваем переменной «cert_status» значение «UNREVOKED».

  9. Присваиваем переменной состояния «reasons_mask» объединённое значение, состоящее из её предшествующего значения и значения переменной состояния «interim_reasons_mask».

Если переменная «reasons_mask» имеет специальное значение «allreasons» или переменная «cert_status» не имеет значения «UNREVOKED», то считаем, что состояние отзыва было установлено, то возвращаемся к переменной «cert_status».

Если же состояние отзыва не было установлено, то повторяем предшествующую процедуру с любыми приемлемыми СОС, которые не были указаны в последовательности «DistributionPoint», но были выпущены издателем сертификата. При обработке такого СОС полагаем, что последовательность «DistributionPoint» не содержит субпоследовательностей «reasons» и «cRLIssuer», а представлена субпоследовательность «DistributionPointName» с именем издателя сертификата (поле «Issuer»). Т.е. последовательность имён в полном наименовании «fullName» сформирована на основании поля «Issuer» сертификата, а также субполя «issuerAltName» в поле «Расширения» сертификата. После обработки таких СОС, если по-прежнему состояния отзыва не установлено, то присваиваем переменной «cert_status» значение «UNDETERMINED».

2007 - 2017 © Русские переводы RFC, IETF, ISOC.