Работа с RuToken средствами CryptoAPI
Добрый день! Есть задача лицензирования ПО. Суть в следующем: есть выпускающая сторона, и есть клиент. Есть 2 пары ключей RSA: 1-я — «собственный» ключ, 2-я — «экспортный»; сгенерированный файл лицензии сначала шифруется на выпускающей стороне 1-м закрытым ключом, а затем — 2-м открытым. 1-й открытый ключ хранится в модуле лицензирования (поэтому он «собственный»), 2-й записывается на токен. Соответственно, у клиента надо сначала расшифровать лицензию 2-м закрытым, а затем — 1-м открытым (который хранится в модуле). Такова постановка задачи, менять её не надо.
Вопрос: как средствами CryptoAPI расшифровать лицензию закрытым ключом неявно (например, сделать это средствами самого токена), т.е. чтобы его нельзя было извлечь и, соответственно, использовать в своих целях? Интересует подробный алгоритм как шифрования и записи данных на токен, так и обратного процесса (просто я пока слабо представляю себе эту картину даже в общих деталях).
Т.к. я новичок в крипции вообще и в вопросах использования RuToken — в частности, просьба разворачивать свой ответ, дабы было понятно не только профессионалам ☺ И просьба простить меня за возможные некорректные формулировки в вопросах.
Заранее спасибо!