Статус: Новичок
Группы: Участники
Зарегистрирован: 30.11.2015(UTC) Сообщений: 4
|
Кто-нибудь сталкивался с проблемой при signer.sign(dataObjects, nodeToSign) получаем "xades4j.providers.TimeStampTokenGenerationException: Time stamp token not granted. null" ? Отредактировано пользователем 1 декабря 2015 г. 7:57:28(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.10.2014(UTC) Сообщений: 10 Откуда: Сыктывкар Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 1 постах
|
Всем привет, может кто-то сможет помочь: Код:
// создаем объект, ответственный за создание подписи
XadesSigner signer = profile.newSigner();
// загружаем проверяемый XML-документ
Document document = XMLParser.parseXml(parameters.getInputFile());
// объявляем атрибут Id в качестве идентифицирующего
IdResolver.resolveIds(document.getDocumentElement());
// ищем подписываемый элемент
String signedElementId = parameters.getSignedElementId();
Element signedElement = document.getElementById(signedElementId);
if (signedElement == null) {
throw new ElementNotFoundException("Element to be signed not found: " + signedElementId);
}
// ищем элемент, в который нужно поместить подпись; если не указан, помещаем подпись в подписываемый элемент
String containerElementId = parameters.getContainerElementId() == null ? signedElementId : parameters.getContainerElementId();
Element signatureContainer = document.getElementById(containerElementId);
if (signatureContainer == null) {
throw new ElementNotFoundException("Container element not found: " + containerElementId);
}
// настраиваем подписываемые данные
DataObjectDesc obj = new DataObjectReference('#' + signedElementId);
if (containerElementId.equals(signedElementId)) {
// если подпись помещается в подписываемый элемент, применяем трансформацию enveloped signature transform
// если этого не сделать, подпись нельзя будет проверить
obj.withTransform(new EnvelopedSignatureTransform());
}
// применяем трансформацию Exclusive XML Canonicalization 1.0 without comments (комментарии исключаются из подписываемых данных)
obj.withTransform(new ExclusiveCanonicalXMLWithoutComments());
// создаем подпись
SignedDataObjects dataObjs = new SignedDataObjects(obj);
signer.sign(dataObjs, signatureContainer, SignatureAppendingStrategies.AsFirstChild);
Получаю следующую ошибку: Exception in thread "main" java.lang.NoSuchFieldError: secureValidation at ru.CryptoPro.JCPxml.utility.DocumentIdResolver.engineResolve(Unknown Source) at org.apache.xml.security.utils.resolver.ResourceResolver.resolve(Unknown Source) at org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Unknown Source) at org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Unknown Source) at org.apache.xml.security.signature.Reference.calculateDigest(Unknown Source) at org.apache.xml.security.signature.Reference.generateDigestValue(Unknown Source) at org.apache.xml.security.signature.Manifest.generateDigestValues(Unknown Source) at org.apache.xml.security.signature.XMLSignature.sign(Unknown Source) at xades4j.production.SignerBES.sign(SignerBES.java:259) at ru.gosuslugi.dom.signature.demo.commands.SignCommand.execute(SignCommand.java:136) at ru.gosuslugi.dom.signature.demo.MainMY.main(MainMY.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) Причем элемент по signedElementId есть и находится изначально, но в процессе подписи вылезает NoSuchFieldError, может кто-нибудь поймет в чем моя ошибка?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. Используете xmlsec версии 1.5.0? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: Bpar Так вроде тут принципиальных вопросов не осталось. см. .NET
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.10.2014(UTC) Сообщений: 10 Откуда: Сыктывкар Сказал(а) «Спасибо»: 1 раз Поблагодарили: 2 раз в 1 постах
|
Использовал xmlsec версии 1.4.5. С 1.5.0 ошибка исчезла, спасибо!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Здравствуйте! Всю тему перечитал,но все равно получаю ошибку Код:[quote]xades4j.XAdES4jXMLSigException: The requested algorithm GOST3410 does not exist. Original Message was: null[/quote]
и JCPXMLDSigInit.init(); пробовал и в java.security JCP на первое место поставил и xmlsec версии 1.5.0 стоит на Цитата:privateKey.getAlgorithm() получаю JCP 2.0.37027 + jre 1.7.0_80 WinXP Помогите пожалуйста. Подпись самого сообщения проходит, подпись сущности XadES-T нет. До этого была проблема Код: GOST_DIGEST_2012_256_OID cannot be resolved or is not a field
URN_GOST_DIGEST_2012_256 cannot be resolved or is not a field
GOST_DIGEST_2012_512_OID cannot be resolved or is not a field
URN_GOST_DIGEST_2012_512 cannot be resolved or is not a field
GOST_EL_DH_NAME cannot be resolved or is not a field
GOST_EL_2012_256_NAME cannot be resolved or is not a field
URN_GOST_SIGN_2012_256 cannot be resolved or is not a field
GOST_DH_2012_256_NAME cannot be resolved or is not a field
URN_GOST_SIGN_2012_256 cannot be resolved or is not a field
GOST_EL_2012_512_NAME cannot be resolved or is not a field
URN_GOST_SIGN_2012_512 cannot be resolved or is not a field
GOST_DH_2012_512_NAME cannot be resolved or is not a field
URN_GOST_SIGN_2012_512 cannot be resolved or is not a field
GOST_EL_DH_NAME cannot be resolved or is not a field
GOST_EL_2012_256_NAME cannot be resolved or is not a field
URN_GOST_DIGEST_2012_256 cannot be resolved or is not a field
Эти строки в GostXAdESUtility закомментировал. Отредактировано пользователем 27 мая 2016 г. 10:22:35(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Поставил константы: Код: final KeyingDataProvider keyingProvider = new DirectKeyingDataProvider(cert, privateKey);
final XadesSigningProfile sigProf = new XadesTSigningProfile(keyingProvider)
.withTimeStampTokenProvider(new GostTimeStampTokenProvider(
digest2TsaUrlMap, "JCP"))
// digest provider
.withDigestEngineProvider(new DefaultMessageDigestProvider() { // digest
@Override
public MessageDigest getEngine(String digestAlgorithmURI) throws UnsupportedAlgorithmException {
//final String digestAlgOid = GostXAdESUtility.digestUri2Digest(digestAlgorithmURI);
try {
return MessageDigest.getInstance(JCP.GOST_DIGEST_OID); //(digestAlgOid);
} catch (NoSuchAlgorithmException e) {
throw new UnsupportedAlgorithmException(e.getMessage(), digestAlgorithmURI, e);
}
}
})
.withAlgorithmsProviderEx(new DefaultAlgorithmsProviderEx() { // algorithms
private String digestUrn = null;
@Override
public Algorithm getSignatureAlgorithm(String keyAlgorithmName)
throws UnsupportedAlgorithmException {
//digestUrn = GostXAdESUtility.key2DigestUrn(keyAlgorithmName);
//final String signatureUrn = GostXAdESUtility.key2SignatureUrn(keyAlgorithmName);
return new GenericAlgorithm(Consts.URN_GOST_SIGN); //(signatureUrn);
}
@Override
public String getDigestAlgorithmForReferenceProperties() {
return Consts.URI_GOST_DIGEST; //digestUrn;
}
public String getDigestAlgorithmForDataObjsReferences() {
return Consts.URI_GOST_DIGEST;
}
public String getDigestAlgorithmForTimeStampProperties() {
return Consts.URI_GOST_DIGEST;
}
@Override
public Algorithm getCanonicalizationAlgorithmForSignature()
{
return new ExclusiveCanonicalXMLWithoutComments();
}
@Override
public Algorithm getCanonicalizationAlgorithmForTimeStampProperties()
{
return new ExclusiveCanonicalXMLWithoutComments();
}
});
Выдает: Код:xades4j.XAdES4jXMLSigException: Cannot resolve element with ID P_3
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Похоже самому копать придеться
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.04.2016(UTC) Сообщений: 108
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Всем спасибо за помощь - похоже разобрался.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.12.2017(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз
|
Добрый день. Возможно ли средствами JCP осуществить усовершенствование существующей подписи XADES-BES до XADES-T аналогично тому как это сделано в примерах по усовершенствованию CADES-BES до CADES-T? И если возможно, то где можно посмотреть пример?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close