Android. Считывание списка сертификатов без пина.

Здравствуйте.

Собственно, тема вопроса в заголовке.
В панели управления вижу возможность считать с NFC токена список сертификатов без ввода пин кода, но в демошифт таких примеров не наблюдаю. Не подскажете где можно было бы посмотреть?

Re: Android. Считывание списка сертификатов без пина.

Luchemete_Otake, добрый день!

В demoshift ввод PIN-кода (C_Login) нужен для подписания.
А в момент добавления пользователя - для поиска сертификата и закрытого ключа. Чтобы подписание гарантированно прошло успешно.

Поиск объектов типа CKO_CERTIFICATE не требует вызова C_Login. Достаточно убрать вызов C_Login, если не требуется искать закрытые ключи.

(2022-12-26 15:32:12 отредактировано Luchemete_Otake)

Re: Android. Считывание списка сертификатов без пина.

Спасибо. А можно тот же ответ применительно к андроиду, я вроде про него спрашивал?)

В демошифт поиск сертификатов выполняется через Pkcs11ObjectManager из pkcs11wrapper.jar
Он, в свою очередь содержится в Pkcs11Session
Для открытия сессии необходим логин. Если обратиться к objectManager'у сессии без логина то метод findObjectsAtOnce класса Pkcs11ObjectManager вернет ошибочные значение
Method threw 'java.lang.IllegalStateException' exception. Cannot evaluate ru.rutoken.pkcs11wrapper.object.certificate.Pkcs11X509PublicKeyCertificateObject.toString()

P.S.: Собственно, в демошифт проекте на андроид в комментарии к GostObjectFinder'у так и написано, что юзер должен быть залогинен

object GostObjectFinder {
    /**
     * It is supposed that the user is logged in.
     */
    fun findContainers(session: Pkcs11Session): List<GostContainer> {
        val certificates = session.objectManager
            .findObjectsAtOnce(Pkcs11CertificateObject::class.java)

Re: Android. Считывание списка сертификатов без пина.

Luchemete_Otake, добрый день!

Поиск public объектов работает без логина.
Сообщение об ошибке, которое вы видите, вероятней всего связана с особенностью работы pkcs11wrapper, но не влияет на работу в рантайме.

Комментарий в коде https://github.com/AktivCo/rutoken-demo … tFinder.kt написан потому, что: GostObjectFinder ищет закрытые ключи и принимает Pkcs11Session на вход - это гарантия, которая нужна ему.

Но если его модифицировать на поиск только public объектов - логин ему будет не нужен. Для этого нужно убрать всю работу с закрытыми ключами.

Расскажите, какой у вас сценарий работы с Рутокен? Понадобится ли вам подписание?