logo Обзор КриптоПро NGate для защищённого доступа к корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

8 Страницы«<678
Опции
К последнему сообщению К первому непрочитанному
Offline Franco  
#141 Оставлено : 1 декабря 2015 г. 7:55:41(UTC)
Franco

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

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

Кто-нибудь сталкивался с проблемой при signer.sign(dataObjects, nodeToSign) получаем "xades4j.providers.TimeStampTokenGenerationException: Time stamp token not granted. null" ?

Отредактировано пользователем 1 декабря 2015 г. 7:57:28(UTC)  | Причина: Не указана

Offline sevahx  
#142 Оставлено : 25 апреля 2016 г. 19:38:09(UTC)
sevahx

Статус: Участник

Группы: Участники
Зарегистрирован: 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, может кто-нибудь поймет в чем моя ошибка?
Offline Евгений Афанасьев  
#143 Оставлено : 25 апреля 2016 г. 21:16:49(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Здравствуйте.
Используете xmlsec версии 1.5.0?
Техническую поддержку оказываем тут
Наша база знаний
Offline Boris@Serezhkin.com  
#144 Оставлено : 26 апреля 2016 г. 0:06:51(UTC)
Boris@Serezhkin.com

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

Группы: Участники
Зарегистрирован: 26.08.2010(UTC)
Сообщений: 259
Откуда: Moscow

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 10 раз в 9 постах

Так вроде тут принципиальных вопросов не осталось. см. .NET

Offline sevahx  
#145 Оставлено : 27 апреля 2016 г. 13:39:48(UTC)
sevahx

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Использовал xmlsec версии 1.4.5. С 1.5.0 ошибка исчезла, спасибо!
Offline lartok  
#146 Оставлено : 27 мая 2016 г. 9:21:31(UTC)
lartok

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

Группы: Участники
Зарегистрирован: 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()
получаю
Цитата:
GOST3410DH2


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)  | Причина: Не указана

Offline lartok  
#147 Оставлено : 27 мая 2016 г. 13:45:39(UTC)
lartok

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

Группы: Участники
Зарегистрирован: 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

Offline lartok  
#148 Оставлено : 31 мая 2016 г. 16:55:09(UTC)
lartok

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

Группы: Участники
Зарегистрирован: 27.04.2016(UTC)
Сообщений: 108

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Похоже самому копать придеться
Offline lartok  
#149 Оставлено : 2 июня 2016 г. 15:18:23(UTC)
lartok

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

Группы: Участники
Зарегистрирован: 27.04.2016(UTC)
Сообщений: 108

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Всем спасибо за помощь - похоже разобрался.
Offline Dmitrii  
#150 Оставлено : 28 февраля 2019 г. 17:01:24(UTC)
Dmitrii

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

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

Сказал(а) «Спасибо»: 3 раз
Добрый день.
Возможно ли средствами JCP осуществить усовершенствование существующей подписи XADES-BES до XADES-T аналогично тому как это сделано в примерах по усовершенствованию CADES-BES до CADES-T? И если возможно, то где можно посмотреть пример?
Offline Евгений Афанасьев  
#151 Оставлено : 4 марта 2019 г. 13:02:56(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 13 раз
Поблагодарили: 385 раз в 380 постах
Здравствуйте.
Да, можно. Примеры есть в документации XAdES-javadoc.jar в папке javadoc дистрибутива (в описании классов и методов) и в папке xades архива примеров samples-sources.jar.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
8 Страницы«<678
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.