Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline anton123  
#1 Оставлено : 9 февраля 2012 г. 18:00:19(UTC)
anton123

Статус: Новичок

Группы: Участники
Зарегистрирован: 08.02.2012(UTC)
Сообщений: 9
Мужчина
Откуда: Систематика

Пытаюсь подписать xml
Код:
Reference ref = fac.newReference("#AppData", fac.newDigestMethod("http://www.w3.org/2001/04/xmldsig-more#gostr3411", null), transforms, null, "AppData");
    // Make link to signing element
    SignedInfo si = fac.newSignedInfo(fac.newCanonicalizationMethod(CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS,
            (C14NMethodParameterSpec) null),
            fac.newSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411", null),
            Collections.singletonList(ref));

    // Prepare key information to verify signature in future on other side
    KeyInfoFactory kif = fac.getKeyInfoFactory();
    X509Data x509d = kif.newX509Data(Collections.singletonList((X509Certificate) cert));
    KeyInfo ki = kif.newKeyInfo(Collections.singletonList(x509d));

    // Create signature and sign by private key
    javax.xml.crypto.dsig.XMLSignature sig = fac.newXMLSignature(si, ki);
    DOMSignContext signContext = new DOMSignContext(privateKey, token);
    sig.sign(signContext);


падает ошибка: java.lang.StackOverflowError
Код:
[0] = {java.lang.StackTraceElement@2170}"java.util.HashMap.getEntry(HashMap.java:344)"
[1] = {java.lang.StackTraceElement@2171}"java.util.HashMap.containsKey(HashMap.java:335)"
[2] = {java.lang.StackTraceElement@2172}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:475)"
[3] = {java.lang.StackTraceElement@2173}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:478)"
[4] = {java.lang.StackTraceElement@2174}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:478)"
[5] = {java.lang.StackTraceElement@2175}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:478)"
[6] = {java.lang.StackTraceElement@2176}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:478)"
[7] = {java.lang.StackTraceElement@2177}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:478)"
[8] = {java.lang.StackTraceElement@2178}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:478)"
...


Думаю, что все дело в правильном задании Reference. Пробовал задавать его так

Reference ref = fac.newReference("#AppData", fac.newDigestMethod("http://www.w3.org/2001/04/xmldsig-more#gostr3411", null), transforms, null, null);

В этом случае падает ошибка: javax.xml.crypto.dsig.XMLSignatureException: javax.xml.crypto.URIReferenceException: org.apache.xml.security.utils.resolver.ResourceResolverException: Could not find a resolver for URI null and Base null
Код:
[0] = {java.lang.StackTraceElement@4346}"ru.jcp.xml.dsig.internal.dom.DOMReference.dereference(DOMReference.java:369)"
[1] = {java.lang.StackTraceElement@4347}"ru.jcp.xml.dsig.internal.dom.DOMReference.digest(DOMReference.java:294)"
[2] = {java.lang.StackTraceElement@4348}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:503)"
[3] = {java.lang.StackTraceElement@4349}"ru.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:392)"


Можете подсказать в чем я не прав?
Offline Евгений Афанасьев  
#2 Оставлено : 15 февраля 2012 г. 4:55:33(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,926
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.
Не могли бы вы показать документ, который подписываете?
Offline Burilas  
#3 Оставлено : 28 мая 2015 г. 10:16:54(UTC)
Burilas

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.05.2015(UTC)
Сообщений: 33
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте, у меня примерно такая же проблема. В чём примерно может быть ошибка?
Я так полагаю, что в сформированом xml в <S:Body></S:Body> должно быть wsu:Id="body", а если его нет, то выдаётся такого рода ошибки.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.