Ковыряю сертификаты, чтобы экспортировать сертификаты импортированные с ключиком CRYPT_EXPORTABLE достаточно вызвать PFXExportCertStore и передать правильно параметры. Но вот если ключ не экспортируемый экспорт через PFXExportCertStore проходит успешно, но приватный ключ не экспортируется. Уже так запутался, может я зря все ковыряю хотелось бы спросить мастеров которые уже имели дело с этим, рельно ли экспортировать ключ с NON-EXPORTABLE флагом ? где то тут проскаивало сообщение что кто-то в отладчике менял параметр с NON-EXPORTABLE на EXPORTABLE и все имортировалось без проблем, но все-таки кажется не может быть чтоб флаг влиял на экспортируемость ключа неужели не используется никакой дополнительной криптографии позволяющей привязать ключ и сделать его реально не экспортируемым ? с другой стороны во время сесси с узлом запрашивающим этот сертификат должна генерироватся какя-то подпись и значит привтаный ключ приводится все-же к удобоваримому виду. все следы идут в криптопровайдер rsaenh.dll она импортирует функцию CPExportKey Декомпилировал, благо PDB прилинкован, в этой функции происходят следущие действия: NtLCheckList - Судя по названию что-то проверяется NTLValidate WrapSymKey ExportOpaqueBlob - что-то экспортируется CPGetKeyParam - тут функция получет информацию о ключе могут быть возвращены такие флаги: CRYPT_ENCRYPT Allows encryption CRYPT_DECRYPT Allows decryption CRYPT_EXPORT Allows key to be exported CRYPT_READ Allows parameters to be read CRYPT_WRITE Allows parameters to be set CRYPT_MAC Allows MACs to be used with key и далее используются аглгоритмы Rc2, tripledes, rc4, des и не экспортируемые функции функции UnprotectPrivKey PreparePrivateKeyForExport LocalEncrypt RSAEncrypt заглянул сюда http://source.winehq.org/source/dlls/advapi32/crypt.c, видимо это что-то не то, хотя функция CPExportKey есть в исходниках винды по кранйней мере в w2k нету того что надо. может я иду в не верном направлении ?
Ну раз это такая приватная тема ответьте хоть на вопрос: "возможно ли экспортировать ключ с NON-EXPORTABLE флагом ?"
Получилось? Прошелся в Ольке по телу CPExportKey, CPGetKeyParam вроде не вызывается. Где надо патчить, подскажите..