Создание объекта "открытый ключ" не на токене, а как объекта сессии.
Исходные данные: два Rutoken ЭЦП 2 и библиотека PKCS11. На первом токене создана ключевая пара (ГОСТ 2012), с помощью которой подписываются данные. С помощью второго токена нужно проверить эту подпись.
На основе значения открытого ключа из первого токена (получил из атрибута CKA_VALUE) пытаюсь создать объект "открытый ключ" на втором токене. В документации на сайте сказано, что нельзя создавать такой объект в "долговременной памяти". Поэтому я попытался создать его как объект сессии (для этого указал значение атрибута CKA_TOKEN равным FALSE). Создание заканчивается ошибкой CKR_ATTRIBUTE_VALUE_INVALID.
Для создания использовал вот такой шаблон
CK_OBJECT_CLASS class_pub = CKO_PUBLIC_KEY;
СK_KEY_TYPE key_type = CKK_GOSTR3410;
CK_ATTRIBUTE tmpl_pub_2[] =
{
{ CKA_CLASS, &class_pub, sizeof(class_pub) },
{ CKA_KEY_TYPE, &key_type, sizeof(key_type) },
{ CKA_VALUE, NULL, 0 },
{ CKA_GOSTR3410_PARAMS, NULL, 0 },
{ CKA_GOSTR3411_PARAMS, NULL, 0 },
{ CKA_TOKEN, &p11_false, sizeof(p11_false) },
{ CKA_PRIVATE, &p11_false, sizeof(p11_false) },
};
OID-ы параметров брал из открытого ключа на первом токене.
Тему https://forum.rutoken.ru/topic/2621/ видел, но из нее так и не понял можно ли создавать объект открытый ключ как "сессионный" объект (т.е. не объект токена).
Если "сессионный" объект открытый ключ создать нельзя, можно ли как-то проверить подпись с помощью только вашей pkcs11 библиотеки?