Тег keygen — генератор пар ключей

keygen элемент представляет управление генератором пар ключей. Когда форма управления представляется, закрытый ключ хранится в местном хранилище, и открытый ключ, упаковывается и отправляется на сервер.

challenge атрибут может быть указан. Его значение будет упаковано с представленным ключом.

keytype атрибут перечислимого типа. ПА не обязаны поддерживать этот атрибут, и должны только признать, значения соответствующих алгоритмов, которые они поддерживают.

Note: Эта спецификация не определяет какие типы пар ключей должны поддерживать ПА.

Агент пользователя может привести пользовательский интерфейс для каждой keygen элемент позволяет пользователю настроить параметры ключевых генератор пара элемента, например, длину ключа.

Сброс алгоритм для keygen элементов для установки этих различных параметров конфигурации к их значениям по умолчанию.

Элемента значение является строкой, возвращенной из следующего алгоритма:

  1. Используйте соответствующий пункт из следующего списка:
  • Если KeyType атрибут в RSA состоянии . Генерация пары ключей RSA с помощью параметров задается пользователем, при необходимости, используя md5WithRSAEncription  RSA алгоритм подписи (подпись алгоритма MD5 и RSA алгоритм шифрования), указанные в п. 2.2.1 («RSA алгоритм подписи») в RFC 3279 и определена в RFC 2313. [RFC3279] [RFC2313]
  • В противном случае, KeyType атрибут находится в неизвестном состоянии. Данный тип ключа не поддерживается. Вернуться в пустую строку и прервать этот алгоритм.

Давайте закрытого ключа будет созданный закрытый ключ.

Давайте открытых ключей является сгенерированный открытый ключ.

Пусть алгоритм подписи быть выбранного алгоритма подписи.

  1. Если элемент имеет проблема  атрибут, то пусть проблема будет значение атрибута. В противном случае пусть оспорить быть пустой строкой.
  2. Пусть алгоритм будет ASN.1 AlgorithmIdentifier  структуры, как это определено RFC 5280, с алгоритмом  поле, задающее ASN.1 OID лоимм используется для определения алгоритма подписи , используя идентификаторы объектов, определенных в разделе 2.2 («подпись Алгоритмы») в RFC 3279, и Параметры  поля, создаваемого в соответствии с требованиями RFC 3279 для AlgorithmIdentifier структур для этого алгоритма. [X690] [RFC5280] [RFC3279]
  3. Давайте SPKI быть ASN.1 SubjectPublicKeyInfo структуры, как это определено RFC 5280, с алгоритмом  поле установлен алгоритм структуры на предыдущем шаге, и SubjectPublicKey  набор полей для BIT STRING значение в результате кодирования ASN.1 DER открытого ключа . [X690] [RFC5280]
  4. Давайте publicKeyAndChallenge быть ASN.1 publicKeyAndChallenge структуры, как это определено ниже, SPKI поле значение SPKI структуры на предыдущем шаге, и задача  поле значение строки задачей полученные ранее. [X690]
  5. Давайте подпись быть BIT STRING значение в результате кодирования ASN.1 DER подпись, полученная путем применения алгоритма подписи на байт строки получить ASN.1 DER кодирования publicKeyAndChallenge структура, с помощью закрытого ключа , как ключа подписи. [X690]
  6. Давайте signedPublicKeyAndChallenge быть ASN.1 signedPublicKeyAndChallenge структуры, как это определено ниже, publicKeyAndChallenge поле значение publicKeyAndChallenge структуры, signatureAlgorithm поле установлен алгоритм структуры и подпись поле значение STRING BIТ подпись на предыдущем шаге. [X690]
  7. Вернуться в результате base64 кодирования результат кодирования ASN.1 DER signedPublicKeyAndChallenge структуры. [RFC4648] [X690]

Данные объекты, используемые выше алгоритма определяется следующим образом. Эти определения используют тот же «ASN.1, как» синтаксис определяется RFC 5280. [RFC5280]

Ограничение проверки : keygen элемента запрещено ограничение проверки .

form  атрибут используется для явного связать keygen  элемент с формой владельца.

name  атрибут представляет имя элемента.

disable атрибут используется для управления неинтерактивном и предотвратить ее значение представляется.

autofocus  атрибут управляет фокусом.

Note: Эта спецификация не определяет, как закрытый ключ генерируется для использования. Ожидается, что после получения SignedPublicKeyAndChallenge (SPKAC) структуры, сервер выдаст сертификат клиента и предложить его обратно пользователю для загрузки, это свидетельство, когда загружаются и хранятся в хранилище ключей вместе с закрытым ключом, может быть используется для проверки подлинности для служб, которые используют TLS и сертификат подлинности.

Для создания пары ключей, добавьте секретный ключ для хранилища ключей пользователя, и представить публичный ключ на сервер, разметки, такие как следующие могут быть использованы:

Сервер будет принимать форму представления с упакованной открытым ключом RSA в качестве значения «key». Это может быть использована для различных целей, таких как создание клиентских сертификатов, как уже упоминалось выше.

<form action="processkey.cgi" method="post" enctype="multipart/form-data">
 <p><keygen name="key"></p>
 <p><input type=submit value="Submit key..."></p>
</form>