|
|
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
а вас не затруднило бы выложить фаил wincrypt.pas ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2008, 13:24 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Спросите гугль по WinCrypt.pas Скажи, что с нами будет, если нам дадут все ни за что, Мы умрем в изумрудах, не сказав ничего (с) Магнитная Аномалия - В Изумрудах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2008, 13:51 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Вот этой части Код: plaintext 1. 2. 3. АльтНу и давайте показывайте все ваши используемые прототипы... танцуя от CryptSignMessage Т.е. мне сюда выложить исходники всех используемых прототипов? Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. И еще попутный вопрос: как вообще устроена логика? В системе установлены сертификаты (на некоторых несколько различных). Пользователь нажимает кнопку "Подписать", после этого он должен выбрать нужный сертификат и предоставив носитель (дикету или SmartCard или еще что) и введя пароль запускается процедура подписания? При этом в нашем примере мы вкладываем сертификат в подписаный документ, поэтому не надо устанавливать все сертификаты явно? Я вообще не несу чушь? )))) Давайте объясню задачу: у нас разрабатывается ПО "Делопроизводство". Сечас уже эксплуатируется в некотором объеме и постепенно наращиваем функционал. Ну вот начальство придумало чтобы документы были полность в электронном виде. Т.е. докладные, приказы, распоряжения и пр. были подписаны цифровой подписью. Кроме того так же буду проходить согласования тех. задания и договора. Внутри предприятия розданы всем СмакртКарты с уже выданными сертификатами от сервера. Естественно этого достаточно для документов внутри компании. Но вот не надо ли будет устанавливать каждому ВСЕ выданные сертификаты чтобы прошла проверка подписи? Сорри если сильно путано рассказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2008, 01:49 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
В общем причину AV я вижу и она типична. Заголовочник содержит неправильные типы. Джеди-тим конечно подложила большую свинью всем дельфистам. Всегда сверяйте прототипы с оригиналами в msdn. Например, чтобы много не переделывать, можно привести все к такому типу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и, соответственно, поменяется реализация подписи... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. По основам я только кратенько, чтобы подписать нам нужна приватная часть ключевой пары и с ней, обычно, связан сертификат, лежащий в личном хранилище, на машине владельца. Программное связывание или использование иных хранилищ в примере не разбирается. А чтобы проверить подпись достаточно иметь публичную часть пары и в этом примере она прекрасно себя чувствует в самом сертификате. Да, я подписал на связанном сертификате и вложил сам сертификат в сообщение. Итого на выходе у меня получился файл содержащий: исходное сообщение, подпись и сертификат, которым эта подпись была сооружена. зы: а где будет храниться приватный ключ дело ваше, на отчужденных ключевых носителях, в реестре или еще где, тут скорее только вопрос стоимости развертывания решения и требований к конфиденциальности от вашей СБ. Я работал и с параноиками и жадными ит-директорами. Везде свои плюсы )))))) Скажи, что с нами будет, если нам дадут все ни за что, Мы умрем в изумрудах, не сказав ничего (с) Магнитная Аномалия - В Изумрудах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2008, 11:41 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
а еще вопрос какая версия делфи использовалась? у меня половина величин не распознается компилятором, на пример типы данных DWORD Cardinal ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2008, 13:54 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
uses Windows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2008, 20:46 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
а вот еще вопрос тут выложен пример но он ссылается на TForm1 с описанием пареметров окна. можно ли посмотреть код TForm1 для этого примера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2008, 21:21 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Я его выдумал 5 сентября 2007 года... т.е. более 6 месяцев назад... просто глядя на код LimonFX... никакого кода у меня нет... что именно вам не понятно? старайтесь задавать вопросы в топике по криптографии, а не по базовым знаниям программирования Скажи, что с нами будет, если нам дадут все ни за что, Мы умрем в изумрудах, не сказав ничего (с) Магнитная Аномалия - В Изумрудах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2008, 21:27 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
просто я привык разбираться во всем сам, на примерах, а для этого нужна полностью рабочая прога. я писал анологичную прогу на си на базе примера из мсдн, там у меня все получилось. а здесь ничего не выходит:( ладно буду дальше стараться понять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2008, 22:22 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Статей хватает за оба глаза, например: http://rsdn.ru/article/crypto/cryptoapi.xml Ну и... http://www.podgoretsky.com/ftp/Docs/Delphi/CryptoAPI/ В оригинале это ^^ было тремя или четырьмя статьями... потому есть мысль, что Анатолий что-то потерял при выкладывании На предыдущей странице я давал ссылку на готовые примеры от компании КриптоПро http://www.cryptopro.ru/cryptopro/products/csp/20/sample-2-0.zip Ну и msdn, который стал уже давно бесплатным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2008, 10:40 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
спасибо я пополним мою коллекцию програмных кодов на эту тему:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2008, 16:35 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
vovankaспасибо я пополним мою коллекцию програмных кодов на эту тему:) пока вы что-то там копите... другие уже выписали XEnroll, CAPICOM и CNG ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2008, 16:56 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
ну пример проги http://www.cryptopro.ru/cryptopro/products/csp/20/sample-2-0.zip на си:( на си у меня у самого есть:( причем собственного написания а остальные две ссылки я уже давно изучаю. у меня это уже есть:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2008, 22:10 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
vovankaну пример проги http://www.cryptopro.ru/cryptopro/products/csp/20/sample-2-0.zip на си:( на си у меня у самого есть:( причем собственного написания можете подобное... идите в криптографы, а не тусуйтесь среди прикладников какая разница, какой язык из типовых для программирования... ведь это лишь инструмент ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2008, 22:28 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
vovanka на си у меня у самого есть:( причем собственного написания Ох, как это гордо было сказано Согласен с Альтом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2008, 22:40 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
я очень плохой програмист а цифровая подпись это мой диплом я в курсаче написал консольную прогу на си, теперь одна из поставленных задач это написать прогу на делфи с оконным интерфейсом возможностью выбора ключа из опр контейнера и нужного куска внутри текста для подписи. но вот на дефи у меня ничего не выходит:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2008, 08:55 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
vovanka v> я очень плохой програмист v> а цифровая подпись это мой дипломну и зачем всё это ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2008, 09:23 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
vovankaя в курсаче написал консольную прогу на си, теперь одна из поставленных задач это написать прогу на делфи с оконным интерфейсом возможностью выбора ключа из опр контейнера и нужного куска внутри текста для подписи. но вот на дефи у меня ничего не выходит:( В вашем задании нет ничего по теме топика... тут разбираются симпл-функции, а вам нужны лишь базовые... CryptAcquireContext/CryptReleaseContext, CryptGenKey/CryptExportKey, CryptCreateHash/CryptHashData/CryptDestroyHash и CryptSignHash/CryptVerifySignature... т.е. достаточно открыть/создать контейнер, открыть/создать ключевую пару, посчитать хеш по любым данным и зашифровать полученный хеш приватным ключем, экспортировать публичный ключ... все это есть в первых двух частях статьи про защиту секретов. Ничего не выходит потому, что вы лентяй и нюня. Начните писать хоть что-то приблизительно работающее и по ходу вашей работы я смогу ответить на вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2008, 12:35 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
2 Альт Блин перепробовал все... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. С переменным успехом оба раза функция выполняется и даже создается файл test.sig. Но размер у него 9 255 712 и весь заполнен пустыми значениями. Пробовал в объявлении функции писать не CRYPT_SIGN_MESSAGE_PARA а PCRYPT_SIGN_MESSAGE_PARA. Результат тот же. Но сечас и так не работает. Опять Access viol... crypt32.dll. Пытался очистить StreamOut.Clear. Но так вообще не пашет. Я уже готов оговорить сумму за работоспособный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 06:51 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Спокойствие, смотрим на последний параметр в моем определении функции Код: plaintext 1. 2. 3. 4. 5. 6. 7. И, само собой, в моем коде нет Pointer( cbSignedMessageBlob ) и быть не может, в принципе. Штатные телепаты подсказывают, что у вас в объявлении сидит Код: plaintext Скажи, что с нами будет, если нам дадут все ни за что, Мы умрем в изумрудах, не сказав ничего (с) Магнитная Аномалия - В Изумрудах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 07:22 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Хотя... вам можно написать и так: Код: plaintext Скажи, что с нами будет, если нам дадут все ни за что, Мы умрем в изумрудах, не сказав ничего (с) Магнитная Аномалия - В Изумрудах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 07:30 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Да про Pointer это я пытался различные варианты испробовать. Ну ессно отправил неправильный код. Сорри. Все что я говорил касалось и исходного варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 07:43 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
MiktorДа про Pointer это я пытался различные варианты испробовать. Ну ессно отправил неправильный код. Сорри. Все что я говорил касалось и исходного варианта. Не обманывайте меня... я не спал 20 часов за себя не ручаюсь. Вот попытка компиляции с Pointer( cbSignedMessageBlob ) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 08:02 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Просто у меня действительно в прототипе было Код: plaintext 1. Альт[Error] test.pas(100): Types of actual and formal var parameters must be identical не выскакивало и все компилировалось. Хорошо. Вот прототип Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 08:40 |
|
||
|
Как сделать цифровую подпись на основе сертификата
|
|||
|---|---|---|---|
|
#18+
Боже мой Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. И, что характерно, опять обманываете... вы уже сами запутались с каким именно юнитом WinCrypt у вас реально компилируется приложение... т.к. простая проверка на Код: plaintext Код: plaintext Код: plaintext Скажи, что с нами будет, если нам дадут все ни за что, Мы умрем в изумрудах, не сказав ничего (с) Магнитная Аномалия - В Изумрудах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 11:02 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=35222636&tid=2040308]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
192ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 516ms |

| 0 / 0 |
