КриптоПро SSPI  

ExportSecurityContext

Функция CPExportSecurityContext() сохраняет контекст в буфере. В зависимости от поля fFlags либо сохраняет контекст для использования в ядре ОС, либо сохраняет сессию для использования на другом узле кластера.

SECURITY_STATUS ExportSecurityContext(
  PCtxtHandle phContext,
  ULONG fFlags,
  PSecBuffer pPackedContext,
  void SEC_FAR *SEC_FAR * pToken
);

Примечания

Для Windows - систем функция является заглушкой и возвращает SEC_E_UNSUPPORTED_FUNCTION

В текущей реализации при экспорте в ядро, если необходим последующий импорт контекста назад в процесс пользователя, указанный контекст должен не использоваться и не уничтожаться до момента импорта контекста из ядра, так как контекст будет импортирован в тот же контекст уровня пользователя, из которого он экспортировался.

Аргументы

phContext
[in] контекст TLS
fFlags
Если в поле fFlags установлен флаг CPUTLS_CONTEXT_EXPORT_TO_KERNEL, то происходит экспорт контекста в ядро, в противном случае происходит экспорт сессии
pPackedContext
[in/out] указатель на структуру SecBuffer World Wide Web link . Если поле pvBuffer этой структуры равен NULL, то после вызова в поле cbBuffer будет возвращен размер буфера, который надо аллоцировать. В противном случае при успешном завершении в буфер будет записаны данные
pToken
[in] туда передается информация (структура utlsdb_token ) о закрытом ключе пользовательского процесса и открытом ключе получателя (модуля ядра или узла кластера), необходимая для создания ключа обмена

Требования:

AIX: 5.3 или выше.
FreeBSD: 7 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.
Файл описания: Прототип описан в файле sspi.h для Windows и CSP_Sspi.h, CSP_SChannel.h, CpSSP.h для Unix.

Возвращаемые значения

В случае успеха возвращает STATUS_SUCCESS
Коды возвратаОписание
STATUS_NO_MEMORYпередаваемый буфер слишком мал
STATUS_INTERNAL_ERRORпроизошла ошибка экспорта