Я создаю сертификат с самописцем с помощью openssl.Как создать идентификатор AuthorityKeyIdentifier из открытого ключа в C?
Я создал пару ключей, используя функцию OpenSSL RSA_generate_key()
:
key = RSA_generate_key(1024, 65537, null, 0);
Теперь я хочу, чтобы генерировать Authority Key Identifier для самоподписывающихся сертификата.
RFC, говорит:
Значение поля KeyIdentifier должен быть получен из открытого ключа используется для проверки подписи сертификата или метод, который создает уникальные значения. Два общих метода для генерации ключей идентификаторов открытого ключа описаны в разделе 4.2.1.2.
Хорошо. Давайте посмотрим. В упомянутом разделе 4.2.1.2, описание говорит:
(1) KeyIdentifier состоит из 160-битного SHA-1 хэш значения битовой строки subjectPublicKey (исключая тег, длина , и количество неиспользуемых битов).
(2) KeyIdentifier состоит из поля типа четырех-битового с значение 0100 с последующим наименее значимых 60 бит Ша-1 хэш-значения битовой строки subjectPublicKey (исключая тег , длина и число неиспользуемых битов).
Если я хочу использовать версию (1): как я могу получить данные для хэширования, чтобы создать действительный идентификатор Authority Key?