10.09.2007 22:05:37Экспорт сертификата в *.pfx Ответов: 2
Unknown
Доброго времени суток!
В общем экспортирую я сертификат следующим образом:
Код:
procedure WriteCert(pPFX: CRYPT_DATA_BLOB; szOutputFile: PChar);
var
hOutputFile, cbWritten: Dword;
begin
hOutputFile := CreateFile(szOutputFile, GENERIC_READ or GENERIC_WRITE, 0,
nil, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, 0);
WriteFile(hOutputFile, pPFX.pbData, pPFX.cbData, cbWritten, nil);
CloseHandle(hOutputFile);
end;

const
Password = 'Pass';
var
pPFX: CRYPTOAPI_BLOB;
hStore, Bytes: Pointer;
begin
Bytes := nil;
hStore := CertOpenSystemStoreA(0, 'MY');
if hStore <> nil then
begin
PFXExportCertStoreEx(hStore, pPFX, Password, Bytes, EXPORT_PRIVATE_KEYS);
pPFX.pbData := CryptMemAlloc(SizeOf(Byte)*pPFX.cbData);
PFXExportCertStoreEx(hStore, pPFX, Password, Bytes, EXPORT_PRIVATE_KEYS);
WriteCert(pPFX, 'xxx.pfx');
CryptMemFree(pPFX.pbData);
end;
CertCloseStore(hStore, 0);
end.

В итоге создается файл, который стандартными средствами винды не импортировать =(
Пожайлуста скажите как сделать так, чтобы экспортировался файл который можно импортировать
стандартными средствами винды.
 
Ответы:
11.09.2007 10:52:47Kirill Sobolev
2й параметр функции PFXExportCertStoreEx - не структура, а указатель на нее.
11.09.2007 12:16:10Unknown
Спасибо огромное, разобрался!!!