Как получить открытый ключ из закрытого ключа, хранящегося в HSM - PullRequest
2 голосов
/ 11 июня 2019

У меня есть несколько закрытых ключей в HSM, но без открытых ключей. Я хочу получить соответствующий открытый ключ, используя интерфейс PKCS11.

Если закрытый ключ является ключом RSA, я могу извлечь модуль из CKA_MODULUS и показатель степени из CKA_PUBLIC_EXPONENT, а затем создать открытый ключ с этими двумя числами.

Однако, когда речь идет о ключах ECDSA (или DSA), как я могу достичь той же цели?
Атрибут CKA_EC_POINT недоступен для закрытых ключей.
Я думаю, что единственная полезная информация, которую я могу получить, это ее параметры кривой из CKA_EC_PARAMS, которых недостаточно, чтобы получить публичную точку.

1 Ответ

1 голос
/ 11 июня 2019

Если вы используете библиотеку PKCS # 11, которая реализует спецификацию PKCS # 11 v2.40 , тогда атрибут CKA_PUBLIC_KEY_INFO - это то, что вы ищете.

Если вы используете библиотеку PKCS # 11, которая реализует спецификацию PKCS # 11 более ранней версии, чем 2.40, то вы не можете прочитать значение открытого ключа EC из объекта закрытого ключа EC, если ваш поставщик устройства не предоставит какой-либо специфический для поставщика атрибут, подобный атрибуту CKA_PUBLIC_KEY_INFO.

...