|
|
|
CryptoAPI - CryptVerifySignature problem
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемая общественность! Проблема с функцией CryptVerifySignature! Я подписываю сообщение.Вот код подписи: Код: 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. Теперь эту подпись надо проверить: Проверяем функцией CryptVerifySignature следующим образом: [/SRC c++] // dataToSignFile- файл с исходным сообщением // resFile - файл с подписанным сообщением dataToSignFile hFile1 = CreateFile (dataToSignFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); hFile2 = CreateFile (resFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // читаем в szBuf файл с исходным сообщением DWORD dwRWBytes = 0; DWORD dwFile1Size = ::GetFileSize (hFile1, NULL); char* szBuf = static_cast<char*>(malloc(dwFile1Size + 1)); ZeroMemory(szBuf, dwFile1Size + 1); ReadFile (hFile1, szBuf, dwFile1Size, &dwRWBytes, NULL); // загоняем в hHash хеш исходного сообщения CryptHashData (hHash, (BYTE *)&szBuf[0], dwFile1Size, 0); // читаем в szBuf2 файл с подписанным сообщением DWORD dwRWBytes2 = 0; DWORD dwFile2Size = ::GetFileSize (hFile2, NULL); char* szBuf2 = static_cast<char*>(malloc(dwFile2Size + 1)); ZeroMemory(szBuf2, dwFile2Size + 1); ReadFile (hFile2, szBuf2, dwFile2Size, &dwRWBytes2, NULL); // проверяем подпись - ВОТ ЗДЕСЬ КАК РАЗ ПРОБЛЕМА!!! BOOL signOk = CryptVerifySignature (hHash, (BYTE *)&szBuf2[0], dwFile2Size, hPPKey, NULL, 0); CloseHandle (hFile1); CloseHandle (hFile2); [/src] У меня signOk всегда равно 0.(контекст и ключи экпортируются и импортируются - нормально) Что здесь не так, подскажите! У кого какие мысли? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2006, 15:13 |
|
||
|
CryptoAPI - CryptVerifySignature problem
|
|||
|---|---|---|---|
|
#18+
первая мысль - поставить после BOOL signOk =... вывод GetLastError и посмотреть код ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2006, 18:39 |
|
||
|
CryptoAPI - CryptVerifySignature problem
|
|||
|---|---|---|---|
|
#18+
GetLastError — вызывал — выдает — неправильная подпись hash естественно тоже создается, просто не стал весь код постить сразу: Вот код где создается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2006, 15:21 |
|
||
|
CryptoAPI - CryptVerifySignature problem
|
|||
|---|---|---|---|
|
#18+
Всем большущее спасибо! Я разобрался — мой был косяк — в функции: Код: plaintext 1. Код: plaintext 1. Как раз поэтому у меня функции шифрования/расшифрования и работали, а подпись нет . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 17:14 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=319&tid=2029857]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 289ms |

| 0 / 0 |
