|
|
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Пытаюсь выполнить подписание, но получаю Access Violation при вызове CryptSignMessage Я использую Код: plaintext Старое закомментировал и добваил вот это: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код процедуры подписи выглядит так: Код: pascal 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. Ошибка AV вываливается на первом вызове CryptSignMessage. В чем может заключаться моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 19:55 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerВ чем может заключаться моя ошибка? Всё не читал, но присваивание байту указателя выглядит прелестно само по себе. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 22:08 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Хотя нет, ты же переопределил TByteArray со стандартного на какую-то хрень. Это ещё крече, чем #define true false. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 22:11 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Первое что бросилось в глаза это var pSignPara : CRYPT_SIGN_MESSAGE_PARA; должно быть pSignPara : PCRYPT_SIGN_MESSAGE_PARA; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 06:45 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Stranger484, я отталкивался от коа Альта - https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=469165&msg=5472038 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 07:01 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerStranger484, я отталкивался от коа Альта - https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=469165&msg=5472038 https://docs.microsoft.com/en-us/windows/desktop/api/wincrypt/nf-wincrypt-cryptsignmessage ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 08:28 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
исходя из https://docs.microsoft.com/ru-ru/windows/desktop/api/wincrypt/ns-wincrypt-_crypt_sign_message_para rgpMsgCert Array of pointers to CERT_CONTEXT structures to be included in the signed message. If the pSigningCert is to be included, a pointer to it must be in the rgpMsgCert array. Поэтому надо допилить: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 10:09 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
У меня пашет так: Мне тут и помогли составить Код: pascal 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. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 11:26 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Devillio, У вас модуль с прототипами тоже от JEDI ( JwaWinCrypt.pas ) или другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 14:23 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. тут вроде получается указатель на указатель, у автора так и задумано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2019, 14:43 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Да, JwaWinCrypt, JwaCryptUIApi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2019, 07:55 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Devillio, пора уже на ГОСТ-2012 переписать или автоопределение алгоритмов сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 00:03 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
sql2012, добрый день! :) Пока сделал через ручной выбор: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. А автоматом из сертификата как-то можно получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 10:30 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Devillio...А автоматом из сертификата как-то можно получить? А что именно? Если идентификатор алгоритма, то это pCertContext.pCertInfo.SubjectPublicKeyInfo.Algorithm.pszObjId, где pCertContext: PCCERT_CONTEXT Если требуется название, то Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 11:24 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Shuraken, благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2019, 15:04 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
Интересно, можно ли указать какой именно криптопровайдер использовать при создании подписи с помощью функции CryptSignMessage ? В структуре CRYPT_SIGN_MESSAGE_PARA такого параметра нет, как же API выбирает криптопровайдер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 16:14 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerИнтересно, можно ли указать какой именно криптопровайдер использовать при создании подписи с помощью функции CryptSignMessage ? В структуре CRYPT_SIGN_MESSAGE_PARA такого параметра нет, как же API выбирает криптопровайдер? и зачем? Вызвать MS CSP Full RSA имея ключ для КриптоПРО CSP ))? Всё просто: Сертификат => Контейнер => Информация о ключе\csp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 17:06 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-Talker, Получить "контекст" сертификата (по сути - файл читается, например, из профиля текущего пользователя), где прописана информация о CSP и т.п., в простонародии: при открытии сертификата - "ссылка на закрытый ключ" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 17:08 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
sql2012, Т.е., иными словами, CryptoAPI автоматически вызывает тот криптопровайдер, для которого (или которым?) была создана ключевая пара? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 17:51 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-Talker, Поясню - в нашем случае получается что у пользователей будет установлено 2 CSP РуТокен и КриптоПро, и они беспокоятся, "правильным ли провайдером они будут подписывать документы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 17:59 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerSQL-Talker, Поясню - в нашем случае получается что у пользователей будет установлено 2 CSP РуТокен и КриптоПро, и они беспокоятся, "правильным ли провайдером они будут подписывать документы" Тогда им нужно объяснить... Что дело не в CSP, а в сертификате, который однозначно связан с ключевой парой. И ruToken вообще может выступать в качестве обычного хранилища ключей, как флешка. Или сделал реализацию и ключ неизвлекаемый, да CSP вызывается "Aktiv ruToken CSP v1.0"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 23:46 |
|
||
|
CryptoAPI - Получаю Access Violation при попытке подписать
|
|||
|---|---|---|---|
|
#18+
SQL-Talkersql2012, Т.е., иными словами, CryptoAPI автоматически вызывает тот криптопровайдер, для которого (или которым?) была создана ключевая пара? Высокоуровневые функции - вызывают внутри себя низкоуровневые. Указал каким сертификатом подписывать - ищется соответствующий контейнер и CSP. На низкоуровневых вызовах - там да, необходимо работать со списком CSP, контейнерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 23:48 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39805400&tid=2039192]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 471ms |

| 0 / 0 |
