отличия ЭЦП Bluetooth

Здравствуйте!
Имеется приложение под андроид, успешно работающее с вашими токенами ЭЦП 1.0 и 2.0.
Вопрос: если ли разница в хранении сертификатов на USB-токенах и Bluetooth-токенах?

Дело в том, что мне необходимо получить идентификатор ключевой пары, связанной с сертификатом. Я считываю значение сертификата из токена; из него получаю значение открытого ключа; по значению открытого ключа нахожу его handle; по handle'у находу значение атрибуто CKA_ID.
вот код для поиска объекта открытого ключа по значению:

byte[] keyValue=null;
            final X509CertificateHolder certificateHolder;
            try {
                certificateHolder = new X509CertificateHolder(attributes[1].pValue.getByteArray(0, attributes[1].ulValueLen));
                mIssuer=certificateHolder.getIssuer().toString();
                SubjectPublicKeyInfo publicKeyInfo = certificateHolder.getSubjectPublicKeyInfo();
                keyValue = publicKeyInfo.parsePublicKey().getEncoded();
            } catch (IOException exception) {
                throw new CertParsingException();
            }

            if (keyValue == null) {
                throw new KeyNotFoundException();
            }
            

            mPublicKeyValue = keyValue.clone();

            // уберём заголовок ключа (первые 2 байта)
            keyValue = copyOfRange(keyValue, 2, keyValue.length);

            final CK_ATTRIBUTE[] template = (CK_ATTRIBUTE[]) (new CK_ATTRIBUTE()).toArray(2);
            template[0].set(Pkcs11Constants.CKA_CLASS, Pkcs11Constants.CKO_PUBLIC_KEY);
            template[1].set(Pkcs11Constants.CKA_VALUE, keyValue);

attributes[1] - это тело сертификата
с помощью шаблона template  в обычном токене с успехом получается найти объект открытого ключа и получить его handle.

А вот в блютус-токене подобная процедура не находит объект в токене.
В чём может быть дело?

Re: отличия ЭЦП Bluetooth

Различий по функциональности между USB токенами и Bluetooth токенами нет, но возможно, есть разница в версиях библиотек PKCS11. Проверьте версии библиотек пожалуйста.

Re: отличия ЭЦП Bluetooth

Здравствуйте, приходиться возвращаться к данному вопросу.
Использован librtpkcs11ecp.so из версии SDK от 28.08.17 - результат тот-же. В bluetooth-токене описанная выше процедура не находит объект открытого ключа.
В итоге я сохраняю в свою переменную для ID ключевой пары мусор, после этого по "мусорной" ID ищу handle закрытого ключа для того, чтобы сформировать подпись... И findObjects находит закрытый ключ, и всё работает)) Видимо, потому, что на ключе одна ключевая пара.
Может на токен неправильно записан сертификат/ключевая пара? как можно проверить?

Re: отличия ЭЦП Bluetooth

Добрый день.
Конечно проверить можно. Для этого нужно подключить Bluetooth токен в режиме USB к большому компьютеру. Наверное проще всего смотреть объекты панелью управления Рутокен в Windows, ну или утилитой pkcs11-tool в linux или macos.

Re: отличия ЭЦП Bluetooth

панелью управления Рутокен в Windows показывает, что сертификат присутствует. как понять,что с ключевой парой всё в порядке?

Re: отличия ЭЦП Bluetooth

попробуйте сделать подпись на ra.rutoken.ru

Re: отличия ЭЦП Bluetooth

подключил токен к USB - на ra.rutoken.ru работает.

Re: отличия ЭЦП Bluetooth

открепил токен от смартфона и прикрепил заново - в итоге: открытый ключ и его метку приложение находит для обоих сертификатов на токене. странно вообщем