Статус: Новичок
Группы: Участники
Зарегистрирован: 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)"
Можете подсказать в чем я не прав?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Здравствуйте. Не могли бы вы показать документ, который подписываете? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2015(UTC) Сообщений: 33 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Здравствуйте, у меня примерно такая же проблема. В чём примерно может быть ошибка? Я так полагаю, что в сформированом xml в <S:Body></S:Body> должно быть wsu:Id="body", а если его нет, то выдаётся такого рода ошибки.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close