Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
сколько тем связанных с криптографией, столько и "проблем", везде итог: не использовать header WinCrypt2, об этом известно? http://msdn.microsoft.co...p/aa379925(v=vs.85).aspxrgpRecipientCert [in] Array of pointers to CERT_CONTEXT structures that contain the certificates of intended recipients of the message. Цитата: тот самый "array of PCCERT_CONTEXT" для архитектуры Delphi не подходит.
 и причем здесь архитектура? ... Отредактировано пользователем 17 сентября 2012 г. 22:04:02(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2012(UTC) Сообщений: 25
|
Все остальное работает. И это тоже все работает, но в Delphi BDS2006.. А что тогда использовать в Delphi из RAD Studio XE2 вместо WinCrypt2?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
VitalyMM написал:Все остальное работает. И это тоже все работает, но в Delphi BDS2006.. А что тогда использовать в Delphi из RAD Studio XE2 вместо WinCrypt2? Цитата: Я перепробовал несколько вариантов с динамическим массивом - результат тот же - (AV).
может не так пробовал? Отредактировано пользователем 17 сентября 2012 г. 22:19:47(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2012(UTC) Сообщений: 25
|
Я думал, что тут форум для получения технических советов от специалистов в этой области... В том, что я пробовал "не так" я уже сам догадался. И написал тут, чтобы подсказали "как". Или я не туда попал?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
VitalyMM написал:Я думал, что тут форум для получения технических советов от специалистов в этой области... В том, что я пробовал "не так" я уже сам догадался. И написал тут, чтобы подсказали "как". Или я не туда попал? Оно так есть... область криптографии... а не реализации заголовочных файлов (WinCrypt2) в разных средах разработки... ОС Windows, так? Идем на MSDN и сверяемся с тем,что имеем (WinCrypt2)... нашли ошибку? нашли... на форуме - оказывается поддержка с низким приоритетом... с этого года... Ссылка на MSDN не помогла? Править wincrypt2, писать примеры кода? Цитата: Все остальное работает. И это тоже все работает, но в Delphi BDS2006.. А что тогда использовать в Delphi из RAD Studio XE2 вместо WinCrypt2?
P.s. сам ушел с высокоуровневых функций и не парюсь... Отредактировано пользователем 17 сентября 2012 г. 22:48:30(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2012(UTC) Сообщений: 25
|
О существовании MSDN мне было известно. Цитата:P.s. сам ушел с высокоуровневых функций и не парюсь... Спасибо.. Я тоже пойду.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
полезным в этом плане будет еще и поиск по старому форуму ... достаточно случаев про WinCrypt2 |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2012(UTC) Сообщений: 25
|
А что я могу найти в старом форуме про RAD Studio XE2.. Его тогда еще не было..
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.03.2012(UTC) Сообщений: 177
Сказал(а) «Спасибо»: 57 раз Поблагодарили: 11 раз в 8 постах
|
VitalyMM написал:А что я могу найти в старом форуме про RAD Studio XE2.. Его тогда еще не было.. Wincrypt.h - вот оригинал с которым нужно сверяться. Остальное от лукавого. BOOL WINAPI CryptEncryptMessage( _In_ PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, _In_ DWORD cRecipientCert, _In_ PCCERT_CONTEXT rgpRecipientCert[], _In_ const BYTE *pbToBeEncrypted, _In_ DWORD cbToBeEncrypted, _Out_ BYTE *pbEncryptedBlob, _Inout_ DWORD *pcbEncryptedBlob ); function CryptEncryptMessage(pEncryptPara :PCRYPT_ENCRYPT_MESSAGE_PARA; cRecipientCert :DWORD; rgpRecipientCert :PCCERT_CONTEXT; //array of PCCERT_CONTEXT; const pbToBeEncrypted :PBYTE; cbToBeEncrypted :DWORD; pbEncryptedBlob :PBYTE; pcbEncryptedBlob : PDWORD):BOOL ; stdcall; И правите дальше. Там много еще сюрпризов Отредактировано пользователем 18 сентября 2012 г. 12:24:33(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.05.2012(UTC) Сообщений: 6 Откуда: Москва
|
Коллеги! А по теме 200-300-400 сертификатов в массиве есть мысли? Повторю, CryptEncryptMessage с массивом на входе до 200 сертификатов работает стабильно, при 400 первый вызов функции возвращает нулевую длину буфера. Используется Delphi 7 и прототип функции
function CryptEncryptMessage(pEncryptPara :PCRYPT_ENCRYPT_MESSAGE_PARA; cRecipientCert :DWORD; rgpRecipientCert : PCCERT_CONTEXT; const pbToBeEncrypted :PBYTE; cbToBeEncrypted :DWORD; pbEncryptedBlob :PBYTE; pcbEncryptedBlob :PDWORD):BOOL ; stdcall;
Как заполняется массив - написано в первом сообщении топика. Если это есть ограничение высокоуровневой функции и надо переходить на low level, то буду переписывать...
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close