|
|
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
Беру из xml в примере данные: в cert - сертификат(строка из тега <ds:X509Certificate>) в data- подписываемые данные(строка из тега <ds:DigestValue>) в sign - подпись (строка из тега <ds:SignatureValue>) Срок годности у сертификата нормальный private static final String ENCODING = "UTF-8"; ... Security.addProvider(new IolaProvider()); Certificate certificate = CertificateFactory.getInstance("X509").generateCertificate(new ByteArrayInputStream(Base64.decode(cert.getBytes(ENCODING)))); PublicKey publicKey=certificate.getPublicKey(); Signature signature = Signature.getInstance(publicKey.getAlgorithm(), IolaProvider.PROVIDER_NAME); signature.initVerify(publicKey); signature.update(Base64.decode(data)); System.out.println(signature.verify(Base64.decode(sign))); выдает false, что делаю не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 14:51 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4dev, Помоему какая-то лажа в Base64. Из какого API? Почему массив в массив гоняется а, а не String->byte[] ? А пробелы и всякие переносы, точно потриманы при получении из XML? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 16:56 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4dev, А готовый для XML API нельзя применить? http://www.oracle.com/technetwork/java/javamail/dig-signature-api-140772.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 16:58 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
Че такое IolaProvider? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 17:17 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4dev, Может "X точка 509" ? Код: java 1. Попробуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 02:48 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
maytonЧе такое IolaProvider?Криптопровайдер IOLA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 02:49 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы, но проблему пока не удалось решить :( String->byte[] - не помогло, тоже выдает false. Хотя почти уверен что делаю что-то не так с base64, т.к. если сам подписываю и тут же проверяю, то выдает true. Если беру с любой подписанной годной xml, то выдает false. Для примера вот этот выдает false: Код: xml 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 06:08 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
Usmancreated4dev, Может "X точка 509" ? Код: java 1. Попробуйте. - тоже выдает false ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 06:18 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4dev, Попробуйте проверить подпись так: Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 07:18 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
Заметил еще вот что: System.out.println("1:"+new String(res)); String sign= new String(res); byte[] res2= sign.getBytes(ENCODING); System.out.println("2:"+new String(res2)); На экран выводится одинаковое значение, но подпись(в том варианте где я сам подписывал\проверял и выдавало true) начинает тоже выдавать false если использовать res2. Может я не правильно конвертирую из String в byte и обратно? Может что-то теряется или кодировка не та? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 07:25 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4devМожет что-то теряется или кодировка не та?Скорее всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 07:27 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
Usmancreated4devМожет что-то теряется или кодировка не та?Скорее всего А как правильно конвертировать не потеряв кодировку? У меня входящие переменные в функции типа String(из xml) мне нужно их загнать в byte ничего не потеряв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 07:29 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4devUsmanпропущено... Скорее всего А как правильно конвертировать не потеряв кодировку? У меня входящие переменные в функции типа String(из xml) мне нужно их загнать в byte ничего не потеряв.Я на счет кодировки, может проблема в ней? вместо UTF-8, попробуйте cp1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 07:39 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
уже все перепробовал с кодировкой, не работает :( и так: Код: java 1. 2. и так: Код: java 1. 2. и эдак: Код: java 1. 2. и много других вариантов типа: Код: java 1. 2. Всегда выдает false если конвертирую из String, если сам подписываю без конвертаций и тут же проверяю, то true В DigestValue точно base64? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 12:07 |
|
||
|
проверка ЭЦП в xml средствами java
|
|||
|---|---|---|---|
|
#18+
created4dev, Похоже, что есть несоответствие данных: либо данные не те, либо подпись левая. Преобразование из Base64 в строку: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 13:27 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38792985&tid=2126345]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 497ms |

| 0 / 0 |
