Использование rtAPIlt.dll

Добрый день.

Нашел у Вас на dev.rutoken.ru/pages/viewpage.action?pageId=7766019  описание  "облегченного интерфейса".
В предлагаемом архиве от 2014 года присутствует набор заголовочных *.H файлов и  rtAPIlt.DLL версии 1.34.2.0.
А после установки актуального приложения "Панель управления Рутокен" в System32\ появляется rtAPIlt.DLL версии 4.3.2.0.

Попытки использовать старую DLL вообще безуспешны, т.к. DLL чего-то себе нужного в системе не находит. А с новой DLL чуть лучше, LoadLibrary проходит, но дальше перебора считывателей не работает, т.к. видимо структуры описанные в .H уже поменялись. Как минимум, например rtlChangeTokenPinEx() не описана,  а она в DLL есть.

Подскажите можно ли откуда-то скачать свежие .H для текущей версии DLL?
Или это все вообще не то и надо в сторону rtpkcs11ecp.dll копать?

Re: Использование rtAPIlt.dll

Добрый день, blanco.

Создавать новые приложения с использованием rtAPIlt.dll смысла нет. Это устаревшая библиотека, новые функции в нее не добавляются. Вам стоит использовать интерфейс PKCS#11. Если вы пишите на С++ и ищите упрощенный интерфейс, то посмотрите на pkicore в SDK.

(2018-02-22 10:39:55 отредактировано blanco)

Re: Использование rtAPIlt.dll

Нет, разработка идёт на Pascal. Поэтому, чем проще заголовок, тем удобнее его спортировать.
Задача стоит примитивная: через корпоративную систему периодически менять пины Администратора и Пользователя в токенах.
Фактически нужно найти единственный токен, сменить PIN-ы и выставить политику, что пароль Пользователя меняется только Администратором (если это еще не так). Такое возможно силами существующей rtAPIlt.dll сделать?


P.S. посмотрел pkiCore. Файл pki-core-cpp.h куда сложнее, чем rtAPIlt.h. Совсем не тоже самое, что обвязку к  одной rtlChangeTokenPin() расписать. В общем, если выдадите последний вариант rtAPIlt.h, то буду очень благодарен.

Re: Использование rtAPIlt.dll

Понял Вас.

Тогда Вам вообще не нужен API. Вы можете делать CreateProcess на rtadmin с нужными параметрами.
Или используйте PKCS#11, у него простой интерфейс, который легко ложится на Pascal

(2018-02-26 16:17:02 отредактировано blanco)

Re: Использование rtAPIlt.dll

Спасибо! rtadmin - то что было нужно.

Re: Использование rtAPIlt.dll

Добрый день. Есть необходимость читать файлы с рутокена для автоматизации переноса контейнера с токена на флэшку.

Судя по описанию, принципы работы rtAPIlt.dll рутокена практически один-в-один совпадают с etsdk.dll и jcFS.dll етокена.

Руками помещаю контейнер с сертификатом на етокен и на рутокен. Далее отдельно для етокена и для рутокена делаю следующие шаги:
1. Перечисляю ридеры
2. Привязываю ридер к хэндлу токена
3. Блокирую токен
4. Авторизуюсь с нужным пином (для етокена 12345678)
5. Открываю корневую директорию (тут для рутокена пробовал различные вендоры от 0xF000 до 0xF00F а так же 0xFFFF)
6. Открываю перечисление директорий
7. Перечисляю директории
...

Для етокена я получаю дерево директорий ( и далее - файлов). Для Рутокена все описанные действия завершаются без ошибок (S_OK) но директорий (кроме открытой на 5 шаге корневой) нет

В чем может крыться проблема? Как ее решать? Если все же рекомендованный вами PKCS#11 - как там получить все файлы ключевого контейнера для их переноса на флэшку?

Спасибо

Re: Использование rtAPIlt.dll

4. Авторизуюсь с нужным пином (для етокена 12345678) - опечатка, указанный пин конечно же для рутокена

Re: Использование rtAPIlt.dll

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

Какие устройства Рутокен вы используете? Каким ПО были созданы ключевые контейнеры?

Re: Использование rtAPIlt.dll

Пробовал Rutoken S (1100) версий 48.00.32.03, 51.00.36.03, Рутокен ЭЦП 2.0 версии 20.05.23.02
rtAPIlt.dll - из последних драйверов, версия 4.8.8.1 от 26.08.2020

Контейнеры создавал судя по всему криптопро - при импоте PFX говорил разместить ключи на рутокене, панель рутокена их видит, я - нет. Аналогичные действия над етокеном завершаличь успехом - строится деревой директорий и файлов, файлы читаются

Re: Использование rtAPIlt.dll

guygossip, для копирования контейнеров КриптоПро воспользуйтесь их API или  утилитой csptest -keycopy, если они были созданы как "неэкпсортируемые".

Re: Использование rtAPIlt.dll

Это прекрасно но не спортивно, вопрос был про то почему при одних и тех же вводных етокен отрабатывает прекрасно а рутокен ложится спать с пустым желудком. Требуется именно своими силами и именно через API файловой системы токена.
Могу создать контейней через acquirecontext - все равно будет использоваться криптопро, ровно так же как и при импорте готового контейнера из pfx
Какие ограничения могут у меня присутствовать, что может не нравится dll что она не видит структуры директорий?

Re: Использование rtAPIlt.dll

Попробовал создать контейнер програмно с VipNet CSP - та же петрушка. Или для такого криптопровайдера так же использовать утилиту от криптопро?

Re: Использование rtAPIlt.dll

guygossip,
При генерации контейнера в "ViPNet CSP" на модель Рутокен ЭЦП 2.0, используется аппаратная криптография.
Копирование неизвлекаемых ключей невозможно.

Re: Использование rtAPIlt.dll

Добрый день.

Павел Анфимов пишет:

утилитой csptest -keycopy, если они были созданы как "неэкпсортируемые".

Неэкспортируемые ключи не могут быть скопированы. В том числе - не могут с использованием указанной утилиты.

Re: Использование rtAPIlt.dll

Приносим извинения.
Конечно, имелось в виду как "экспортируемые"