Как сгенерировать ключи и проверить подпись EC160 в openssl.

Здравствуйте,

подскажите как сгенерировать пару ключей и подписать\проверить подпись для вашего ecc160 из своего кода(например C) используя openssl? Какое название кривой в openssl и какой формат ключа?

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

Здравствуйте, kh.

Генерировать ключи можно либо GUI-утилитой программирования ключей (GrdUtil.exe), либо при помощи специальной консольной утилиты из состава SDK (GrdEccPairGenerator.exe).

Для подписи данных и проверки подписи используются соответствующие функции (GrdSign \ GrdVerifySign).

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

Виноват, я хотел бы без windows. Судя по константам из VerifySign.c у вас используется кривая secp160r1 + sha1, но публичный ключ 40 байт, а значит без asn.1 упаковки как из openssl выпадает. Попробовал выкинуть весь asn.1 из сгененрированой openssl пары ключей, но VerifySign.c жалуется уже на этапе проверки ключа. VerifySign.c это который у вас в одном из примеров лежит.

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

kh пишет:

Виноват, я хотел бы без windows.

Если не сложно, опишите для каких задач это требуется?

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

Например, я генерирую пару ключей на для подписи на сервере лицензий который написан вообще на php и болтается где-то на shared-хостинге. И для нового клиента я хочу держать на сервере лицензий пару приватный ключ/id клиента и давать возможность клиенту в личном кабинете забрать некое обновление для ключа в котором применяется приватный ключ. Клиентское ПО опять же только под linux и лежит где-то в подвале без доступа к сети.

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

kh пишет:

забрать некое обновление для ключа в котором применяется приватный ключ

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

kh пишет:

Попробовал выкинуть весь asn.1

Еще было бы хорошо посмотреть пример "оригинальных" ключей (приватный+публичный), которые получаете при помощи openssl и пример этих же отредактированных ключей без ASN.1. Пришлите, пожалуйста, примеры нам на e-mail ( hotline@guardant.ru ) со ссылкой на данную тему.

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

У меня в радиусе километра нет ни одного windows и не планируется заводить. Я так и быть соберу сейчас прошивку и код, но все новые ключи и их обновления будут делаться строго на linux\macos. Для создания нового usb-ключа понадобиться генерировать уникальный приватный ключ и в пару десяток открытых ключей, как мне это сделать на linux? Что делать если мне нужны несколько публичных ключей к одному приватному.

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

kh пишет:

как мне это сделать на linux?

Таких штатных средств под Linux нет. В теории с openssl реализовать можно, на практике мы у себя еще не пробовали. Пришлите, пожалуйста, запрошенные ранее данные, это может помочь ускорить исследования.

Антон Тихиенко пишет:

Еще было бы хорошо посмотреть пример "оригинальных" ключей (приватный+публичный), которые получаете при помощи openssl и пример этих же отредактированных ключей без ASN.1. Пришлите, пожалуйста, примеры нам на e-mail ( hotline@guardant.ru ) со ссылкой на данную тему.

Re: Как сгенерировать ключи и проверить подпись EC160 в openssl.

У меня пригорело и я пихнул свою реализацию асимметричной подписи, планируется использовать Code вариант вашего ключа, поэтому вопрос снимается. Спасибо.