[...]
JJO>>Кстати, насчет "отечественных валом" — из моего скромного личного опыта ничего подобного сказать не могу .. может просвятите — о каких именно "отечественных" токенах идет речь?
_>Первое что пришло в голову:
.. да .. паровозом возник вопрос а что-же понимать под "отечественным" — то что "тут" продается, то что "тут" изготовляется, или то что реально можно использовать через PKCS#11 c "отечественными" алгоритмами? Но это вопрос ответа в общем-то не требующий

По перечисленным:
— ruToken — есть "отечественные" алгоритмы, но неизвестно как ими пользоваться через PKCS#11 ..
— trueToken = SenseLock с пирогами, на их вебе — поддерживаются буржуйские, а из отечественного — только гост28147 — и тот "в планах"
— Кристал, Almaz — первый раз слышу, ничего не нашел
— eToken — вообще ни разу не отечественный, несмотря на наличие филиала(-ов) — см
http://www.aladdin.com/, соответственно поддерживает только буржуйские алгоритмы
— uaToken — любопытно, но сходу не нашел инфы по поддерживаемым алгоритмам — может что-то "отечественное" и есть ... а может и нету.
— Guardant — а у них разве есть возможность работы с железкой через PKCS#11 ?
Итого: из всего перечисленного сходу только один более-менее реальный _претендент_ на звание "настоящего отечественного токена" в самом сильном смысле термина
_>>>Т.е. объекты должны храниться в библиотеке? Глупость какая-то получается...
JJO>>Вот это уже я не понял .... пропустим.
_>я имею ввиду, должен быть примерно следующий алгоритм?
_>1. Инициализация библиотеки;
_>2. Нахождение слота, поддерживаемые механизмы библиотекой.
_>3. Если есть в нём токен:
_> а) инициализировать токен
_> б) инициализировать поддерживаемые им объекты (в зависимости от токена)
_>4. Поиск поддерживаемых объектов
_>5. Получение аттрибутов найденных.
_>6. Аутентификация на ключе
_>7. реализация криптопреобразований.
_>8. Закрытие сессий, уничтожение объектов.
_>так?
Нет, не так

1. Инициализация библиотеки, автоматом означает подключение доступных устройств
2. Перебор слотов для понимания где установлены токены а где нет
2а. — optional — инициализация (если термин перекрыт смысловой нагрузкой из других предметных областей — поясню — здесь по деструктивности это что-то вроде "форматирования") токенов у которых отсутствует флаг TOKEN_INITIALIZED + возможно инициализация пользовательского PIN, если отсутствует флаг USER_PIN_INITIALIZED
3 — optional — отбор слотов (токенов) поддерживающих необходимый механизм
4 открытие сессий в нужных слотах (токенах)
5 — optional — авторизация в нужных сессиях, если предполагается что будет выполняться работа с ключами (которые на 99% будут CKA_PRIVATE=TRUE)
6 поиск нужных/модификация/создание/удаление ненужных/ объектов
7 разнообразное использование найденного/созданного: -в крипто-механизмах, -для "получения атрибутов" ...
8 ....
9 закрытие
Ну и, видимо необходимые тезисные пояснения:
Объекты хранятся в токене, а не в пользовательских библиотеках или приложениях — на этом уровне видны только хэндлы объектов.
Крипто-преобразования реализуются в токене (либо аппаратно, либо, "по бедности", в его драйверах, что есть аналог чисто программного токена, каковым является мозилловский софтокен), но никак не на на уровне пользовательских библиотек или приложений. И вообще, часто реализация токена такова, что может не быть возможности получить значение ключа — ни в каком виде — только использовать его в крипто-механизмах.
[...]
JJO>>Думаю в рамках курсовой вполне можно просто пошифровать ... и козырнуть знанием того как оно нужно делать на самом деле
_>Интересно, а бакалаврская из этого может вырасти?
Это уже Вам на месте решать