|
|
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Работа с CryptoAPI используя модуль JwaWinCrypt. Имеются открытые ключи, из них надо получить информацию: Срок действия Кому выдан Кем выдан Улучшенный ключ По первым 3-м пунктам все хорошо, а вот где найти информацию как достать значение "Улучшенный ключ", не могу. Пример кода подкатом. Код: 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. Кто может подсказать, в какую сторону копать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 12:33 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Речь про это ? (там key usage всё же, а не key) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 13:41 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
MrCatРечь про это ? (там key usage всё же, а не key) Спасибо, это уже нашел тынц Только не работает. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Смущает это: usageStr := usage.rgpszUsageIdentifier; Пробовал по этому примеру, не могу вернуть коды. Количество правильное. А вот дальше что попало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 13:53 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Ну, что в цикле всё время одно значение берётся, это ладно, описка. Но по идее, во втором параметре структуры должен быть массив указателей на строки. Т.е. что-то типа PPChar, а Вы с ним как с PChar обращаетесь. Плюс я бы ещё насчёт кодировки озаботился. Когда шерстятся теги ASN.1, то кроме указателя возвращается и кодировка данных, а тут - указатель на строку и всё. Это всегда ANSI-строка? Хотя, логично - OID - это три точки и 4 числа, ему UNICODE не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 14:28 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
MrCatНу, что в цикле всё время одно значение берётся, это ладно, описка. Но по идее, во втором параметре структуры должен быть массив указателей на строки. Т.е. что-то типа PPChar, а Вы с ним как с PChar обращаетесь. Плюс я бы ещё насчёт кодировки озаботился. Когда шерстятся теги ASN.1, то кроме указателя возвращается и кодировка данных, а тут - указатель на строку и всё. Это всегда ANSI-строка? Хотя, логично - OID - это три точки и 4 числа, ему UNICODE не нужен. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Сам до такого дошел, но массив не полный, на ключе который проверяю Usage^.cUsageIdentifier=12, а на 5 ке цикл вываливается :(. Про это можно по подробней? Просто там был кусок кода из того что я нашел в сети для примера, пытаюсь под себя прикрутить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 14:38 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Плюс я бы ещё насчёт кодировки озаботился. Когда шерстятся теги ASN.1, то кроме указателя возвращается и кодировка данных, а тут - указатель на строку и всё. Это всегда ANSI-строка? Вот про это можно по подробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 14:43 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Я про CERT_RDN_ATTR.dwValueType , и сразу было понятно что делать с Value. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 14:56 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Я бы написал так. Не проверял, просто продемонстрировать идею. Насчёт кодировки, в которой возвращается OID - не в курсе, возможно, действительно надо ещё decode from UTF8 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 15:04 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
angel_zar, я когда-то тут подсказывал http://www.cryptopro.ru/forum2/default.aspx?g=posts&m=15919#post15919 попробуйте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 16:18 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, получилось так. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Сейчас тестируем, на разных ключах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 08:37 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
angel_zarВсем спасибо, получилось так. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Сейчас тестируем, на разных ключах. Тестируешь, потому что не уверен в правильности расстановки begin\end или в криптографических функциях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 06:23 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
[quot sql2012]angel_zarТестируешь, потому что не уверен в правильности расстановки begin\end или в криптографических функциях? Что бы быть уверенным, что будет работать правильно, а так тут черновой вариант, просто разобраться, как это работает. Весь код будет обернут в класс, с обработками ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 14:15 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
[quot angel_zar]sql2012пропущено... Что бы быть уверенным, что будет работать правильно, а так тут черновой вариант, просто разобраться, как это работает. Весь код будет обернут в класс, с обработками ошибок. Когда CertGetEnhancedKeyUsage вернет false, будешь к Usage=nil обращаться и получишь AV... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 16:37 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
sql2012Когда CertGetEnhancedKeyUsage вернет false, будешь к Usage=nil обращаться и получишь AV... Я это прекрасно вижу, это фактически копи-паст, с некоторыми изменениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 06:28 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
angel_zarВсем спасибо, получилось так. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Сейчас тестируем, на разных ключах. Привет, народ. Мне нужно выяснить содержится ли в параметре "Улучшенный ключ" OID "Подписывание документа" - "1.3.6.1.4.1.311.10.3.12" Насколько я понял, в процитированном коде, в Код: pascal 1. как раз и должен содержаться этот OID, но у меня там получается строка типа автор#$2E31#$2E33#$2E36#$2E31#$2E34#$2E31'ㄳ'#$2E31'〱㌮'#$312E'2'#$2E31#$2E33#$2E36#$2E31#$2E35#$2E35#$2E37#$2E33'2' - по-видимому символы из юникода а Код: pascal 1. содержит автор'а9›'#2'ш9›'#2'1.3.6.1.4.1.311.10.3.12' хотя там должно быть два OID-а Подскажите, как мне правильно получить OID-ы там содержащиеся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2019, 19:15 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
И да, использовал определения типа PCharArr (с форума КриптоПро): Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2019, 19:18 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerИ да, использовал определения типа PCharArr (с форума КриптоПро):В какой среде пишите? тот код я писал под Delphi 7. В лазарусе всё также работает с маленькой поправкой: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2019, 22:09 |
|
||
|
Lazarus CryptoAPI пара вопросов.
|
|||
|---|---|---|---|
|
#18+
В Delphi 10.2 (Токио вроде зовётся) Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2019, 22:20 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=73&tid=2039479]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 338ms |

| 0 / 0 |
