Как сохранить открытый ключ при генерации закрытого ключа

Здравствуйте!
Пишу приложение на ASP.NET WebForms. Есть необходимость в реализации механизма генерации запросов и получения сертификатов через это веб-приложение. Работа ведётся с ключами Рутокен ЭЦП 2.0.
На текущий момент как я себе это представляю:
1. Формируем на стороне клиента закрытый ключ
2. Открытый ключ полученный в п.1 и данные пользователя УЦ передаём на сервер в БД
3. Робот на сервере обрабатывает эти данные, формирует и отправляет запрос в УЦ, получает ответ (сертификат) и пишет его в БД
4. На стороне клиента пишем сертификат в контейнер.
Всё ли верно я представляю? Если да, то подскажите как при генерации ключа открытую часть получить и передать на сервер?
session.GenerateKeyPair(mechanism, PublicKeyAttributes1, PrivateKeyAttributes1, out publicKeyHandle1, out privateKeyHandle1);
Сам открытый ключ находится в publicKeyHandle1 после выполнение данной функции?

Re: Как сохранить открытый ключ при генерации закрытого ключа

Похоже более верный пример находится в папке RutokenPkcs11Interop.Samples-master\src\PKIExtensions.CreateCSR-PKCS10\CreateCSR-PKCS10.cs
Извините!