Выработка сеансового симметричного ключа в PKCS11 (C_DeriveKey)
Добрый день!
Прошу помочь со следующим вопросом.
У меня на руках есть:
1. SDK версии 080421 (брала отсюда: https://www.rutoken.ru/developers/sdk/)
2. Драйвера версии 4.9.1.0 от 09.09.2021 (брала отсюда: https://www.rutoken.ru/support/download/windows/)
3. РуТокен ЭЦП 3.0 (usb-носитель)
Возникли следующие вопросы, на которые я в документации к PKCS11 ответа не нашла:
1. Верно ли, что чтобы получить сеансовый симметричный ключ размером 64 байта по механизму KDF_TREE_GOSTR3411_2012_256 я должна в C_DeriveKey передать в качестве входного ключа, ключ с типом CKK_KUZNYECHIK/CKK_MAGMA и в качестве выходного получить ключ с типом CKK_KUZNECHIK_TWIN_KEY/CKK_MAGMA_TWIN_KEY? Следовательно, если у меня есть выработанный общий ключ VKO GOST R 34.10-2012 по механизму CKM_GOSTR3410_12_DERIVE с типом CKK_GOST28147, то чтобы получить из него ключ размера 64 байта по механизму KDF_TREE_GOSTR3411_2012_256, мне нужно, например, поступить так:
1.1. Прочитать значения существующего ключа типа CKK_GOST28147, выработанного по механизму CKM_GOSTR3410_12_DERIVE
1.2. С помощью C_CreateObject создать новый ключ типа CKK_KUZNYECHIK/CKK_MAGMA и в шаблоне объекта этого ключа в качестве CKA_VALUE передать значение, которое я прочитала в пункте 1.1
1.3. Созданный ключ в пункте 1.2 передать в качестве входного ключа в C_DeriveKey и в качестве выходного получить ключ с типом CKK_KUZNECHIK_TWIN_KEY/CKK_MAGMA_TWIN_KEY, который будет иметь размер 64 байта
1.4. Удалить ключ, сформированный в пункте 1.2
2. В документации упоминается CKM_GOST_KEG (https://dev.rutoken.ru/pages/viewpage.a … M_GOST_KEG), на форуме (https://forum.rutoken.ru/topic/3423/) говорится, что "В следующей версии библиотеки PKCS#11 механизм CKM_VENDOR_GOST_KEG будет заменен на реализацию ТК26 (практически идентичную) - CKM_GOST_KEG." При этом в последнем SDK дефайн CKM_GOST_KEG не определён, а дефайн CKM_VENDOR_GOST_KEG - определён…и получается, что текущая документация немного отличается от того, что предоставляет текущий SDK?