Нет, в данном случае кэширование происходить стандартными средствами не должно.
Т.е. Outlook не вызывает функцию CryptSetProvParam с флагом PP_SIGNATURE_PIN или PP_KEYEXCHANGE_PIN, алгоритм работы предусматривает, что пользователь будет вводить PIN при подписании каждого письма.
Однако можно сделать кэширование пин-кода на уровне нашего API, которое используется Aktiv Rutoken CSP. Это предмет будущих разработок. Этот функционал обязательно будет реализован.
Сейчас кэширование реализовано только в CSP.
Алгоритм работы такой:
1. Для кэширования пин-кода приложение должно вызвать CryptSetProvParam с флагом PP_SIGNATURE_PIN или PP_KEYEXCHANGE_PIN, и в pbData передать пин-код.
2. Сброс закэшированного пин-кода осуществляется вызовом той же функции с pbData == NULL, либо по отключению Rutoken.
До сброса пин-кода можно вызывать CryptReleaseContext, CryptAcquireContext и любые другие функции. До явного сброса пин-кода, он не будет запрашиваться у пользователя, и будет использован закэшированный.
Михаил Курский
Руководитель отдела разработки прикладного ПО Rutoken, Компания "Актив"