Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

PKCS#11 и OpenSSL имеют разный формат представления объектов. Так, они по-разному представляют ECDSA ключи и подписи на них. Поэтому, когда мы хотим проверить в OpenSSL сырую ECDSA подпись полученную через PKCS#11, ее необходимо сконвертировать в OpenSSL формат.  Для проверки подписи нужно также сконвертировать и открытый ключ.

...

  1. Создать SEQUENCE со значениями типа OBJECT IDENTIFIER. Первый элемент – OID типа открытого ключа на эллиптической кривой. Второй – OID параметра эл. кривой.
  2. Сконвертировать открытый ключ из структуры OCTET_STRING в структуру BIT_STRING.
  3. Конкатенировать результат и положить его в SEQUENCEПоложить результаты в SEQUENCE. Нужно проставить правильную длину выходной последовательности.

...

Info
title DER и PEM форматы

Если записать в файл байты в том виде, в котором мы их получили. Мы , мы получим открытый ключ в байтовом DER формате. Если мы хотим представить его в виде печатных символов, его нужно перевести в PEM формат. Это можно сделать с помощью команды:

Code Block
languagebash
titleКонвертация в PEM
openssl ec -pubin -inform DER -in pubkey.der -outform PEM -out pubkey.pem


...

  1. Перевести R и S в TLV тип INTEGER
  2. Результат сконкатенировать и Результаты положить в SEQUENCE. Нужно проставить правильную длину выходной последовательности.

...