Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Здравствуйте,
Подскажите почему постоянно выдает ошибку "PKCS11 error, code: 0x00000063"?

Перебирал уже все типы механизмов, не помогают.

 RtPkcs11 mRtPkcs11 = RtPkcs11Library.getInstance();
 
CK_MECHANISM ckm = new CK_MECHANISM(new NativeLong(RtPkcs11Constants.CKM_GOSTR3410), Pointer.NULL, new NativeLong(0));

NativeLong rvE = mRtPkcs11.C_EncryptInit(session, ckm, c);
Pkcs11Exception.throwIfNotOk(rvE);

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Добрый день!

0x00000063 = CKR_KEY_TYPE_INCONSISTENT = данный ключ невозможно использовать с указанным механизмом.

У ГОСТ-алгоритмов нет асимметричного шифрования.

Расскажите, пожалуйста,  вашу задачу, а также с какими ключами работаете.

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Работаю с ключами RSA.
Разобрался, очень помогли ваши примеры https://github.com/AktivCo/RutokenPkcs1 … 12802f/src

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Вот такой код получился:

CK_MECHANISM ckm = new CK_MECHANISM(new NativeLong(Pkcs11Constants.CKM_RSA_PKCS),null, new NativeLong(0));
NativeLong rvE = mRtPkcs11.C_EncryptInit(session, ckm, new NativeLong(hPubKey));
Pkcs11Exception.throwIfNotOk(rvE);

byte[] pbtData = "hello".getBytes();
final NativeLongByReference ulEncryptedDataSize = new NativeLongByReference();
rvE = mRtPkcs11.C_Encrypt(session, pbtData,  new NativeLong(pbtData.length), null, ulEncryptedDataSize);
Pkcs11Exception.throwIfNotOk(rvE);
                    
final byte[] pbtEncryptedData = new byte[ulEncryptedDataSize.getValue().intValue()];
rvE = mRtPkcs11.C_Encrypt(session, pbtData,  new NativeLong(pbtData.length), pbtEncryptedData, ulEncryptedDataSize);
Pkcs11Exception.throwIfNotOk(rvE);
                    
Log.v("EncryptedData", Base64.encodeToString(pbtEncryptedData, Base64.NO_WRAP));

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Теперь стоит задача сделать одинаковый Encrypt и Decrypt  через Рутокен Плагин и  Android.
В Рутокен Плагин функция cmsEncrypt а в Android C_Encrypt.
Подскажите пожалуйста, где можно найти пример для получения из C_Encrypt формат cms encrypt?

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

eaa, в PKCS11 нет интерфейса для шифрования в формате CMS.

В Комплекте разработчика, внутри архива по пути \sdk\java\samples\pkcs11\src\ru\rutoken\samples\pkcs11\bouncycastle есть примеры как это сделать для ГОСТов.

Насколько вам важно использовать именно RSA? Если это требование важно, что нам потребуется несколько дней, чтобы адаптировать примеры для RSA.

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Выбрали RSA так как он более поддерживаемый. Были бы очень признательны если бы вы адаптировали примеры для RSA.

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

eaa, нужно только шифрование-расширование или подпись/проверка тоже?

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Шифрование, расширование и подпись.
Проверку на стороне web сервера делаем.

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

eaa, в течении недели постараемся подготовить примеры.

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

eaa, примеры (с ограничениями) готовы, финальное решение будет в следующей версии SDK. Напишите нам на hotline@rutoken.ru для их получения.

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Супер, спасибо!

Отправил письмо на hotline@rutoken.ru.

(2021-01-15 14:29:18 отредактировано bengusb)

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

Павел Анфимов, Работаю с eaa над одним проектом. только в качестве iOS разработчика.

Так же столкнулся с трудностями получения информации об RSA ключах (в примерах только работа с гост) и методами encrypt decrypt и sign. Сейчас код с CMS_encrypt, CMS_decrypt, CMS_sign работает с гост ключем, но RSA падает при попытке получить дескриптор ключевой пары (rt_eng_new_p11_ossl_evp_pkey). Если посмотреть на stderr
6158364672:error:8106D0D6:lib(129):init_algorithm_nid:unknown key type:/Users/jenkins/newjenkins/workspace/rtengine-build/20dc6b39/engine/p11/gost_key.c:56:
6158364672:error:8107E0DF:lib(129):rt_eng_get0_ec_key:wrong key:/Users/jenkins/newjenkins/workspace/rtengine-build/20dc6b39/engine/ec.c:59:

Ни demoshift ни demobank не содержит соовтетствующих примеров. Можете указать где в документации или примерах поискать реализацию?

Re: Ошибка метода C_EncryptInit PKCS11 error, code: 0x00000063

bengusb,  напишите нам на hotline@rutoken.ru, расскажите подробнее о коде с которым вы пытаетесь работать с RSA-ключами.