Android. C_EX_PKCS7Sign подпись.
Доброго времени суток.
Пытаемся использовать Рутокен для подписи в ЭДО.
Возникла трудность при попытке вызывать функцию C_EX_PKCS7Sign.
Ей требуется хэндл объекта сертификата.
1. Рутокены включают в себя какие-нибудь сертфикаты?
2. Включают ли они сертификаты для подписи GOST-R 3410-2012?
3. Как получить хэндл сертификата, если ответ на предыдущие вопросы положительный?
Пробуем так:
CK_ATTRIBUTE [] findCert = new CK_ATTRIBUTE[1];
findCert[0] = new CK_ATTRIBUTE();
findCert[0].setAttr(new NativeLong(CKA_CLASS), new NativeLong(CKO_CERTIFICATE));
// Ищем все сертификаты. Нам нужен объект сертификата с поддержкой ГОСТР
NativeLong rv = mPkcs11.C_FindObjectsInit(sessionHandle, findCert, new NativeLong(findCert.length) );
checkResultIsOk("C_FindObjectsInit", rv);
NativeLong [] results = new NativeLong[1];
results[0] = new NativeLong();
NativeLongByReference resCount = new NativeLongByReference();
rv = mPkcs11.C_FindObjects(sessionHandle, results, new NativeLong(results.length), resCount);
checkResultIsOk("C_FindObjects", rv);
rv = mPkcs11.C_FindObjectsFinal(sessionHandle);
checkResultIsOk("C_FindObjectsFinal", rv);
Пробовал все классы - всегда возвращается 0. Ощущение, что либо в ключе действительно нет сертификата, либо я что-то не понимаю.
К сожалению, как-то мало примеров гуглится на эту тему.
Заранее спасибо!
P.S.
Походу действительно нет сертификата. Подключил к большой винде - ничего нет. Наверное пока отбой по теме.