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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline nickk9  
#1 Оставлено : 12 июля 2023 г. 14:44:37(UTC)
nickk9

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

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

Проверяю подпись в SOAP сообщении на тестовом примере (те п одпись должна быть валидная). Использую JCP 2.0.41940-A. Помимо либ из jcp/dependencies используются
Код:

	implementation 'org.apache.ws.security:wss4j:1.6.19'
	implementation 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.0'
	implementation 'com.sun.xml.ws:jaxws-rt:4.0.0'

В качестве отправной точки взял пример из samples_sources.
Код:

    private boolean verifySecuredMessage(SOAPMessage message, boolean printCert) throws Exception {

        // Extract some nodes to verify document
        Document doc = message.getSOAPPart().getEnvelope().getOwnerDocument();
        //NodeList secnodeList = XPathAPI.selectNodeList(doc.getDocumentElement(), "//wsse:Security");
        NodeList secnodeList = XPathAPI.selectNodeList(doc.getDocumentElement(), "/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='Security']");
        final Element wssecontext = doc.createElementNS(null, "namespaceContext");
        wssecontext.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:"+"wsse".trim(), "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

        Element r = null;
        Element el = null;
        if( secnodeList != null&&secnodeList.getLength()>0 ) {
            String actorAttr = null;
            for( int i = 0; i<secnodeList.getLength(); i++ ) {
                el = (Element) secnodeList.item(i);
System.out.println(el);
//                actorAttr = el.getAttributeNS("http://schemas.xmlsoap.org/soap/envelope/", "actor");
//                if(actorAttr != null&&actorAttr.equals("http://smev.gosuslugi.ru/actors/smev")) {
                    r = (Element)XPathAPI.selectSingleNode(el, "//wsse:BinarySecurityToken[1]", wssecontext);
System.out.println(r);
                    break;
//                }
            }
        }
        if(r == null)
            return false;

        final X509Security x509 = new X509Security(r);
        if(x509 == null)
            return false;

        // Extract certificate
        final X509Certificate cert = (X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(new ByteArrayInputStream(x509.getToken()));

        if (cert == null) {
            throw new Exception("Cannot find certificate to verify signature");
        }

        // Printing of certificate if need
        if (printCert) {
            System.out.println(cert);
        }

        // Get signature node
        NodeList nl = doc.getElementsByTagNameNS("http://www.w3.org/2000/09/xmldsig#", "Signature");
        if (nl.getLength() == 0) {
            throw new Exception("Cannot find Signature element");
        }

        XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", xmlDSigProvider);
        // Set public key
        DOMValidateContext valContext = new DOMValidateContext(KeySelector.singletonKeySelector(cert.getPublicKey()), nl.item(0));
        javax.xml.crypto.dsig.XMLSignature signature = fac.unmarshalXMLSignature(valContext);

        // Verify signature
        return signature.validate(valContext);
    }

    public boolean verifyDoc(Document signedDoc, boolean printCert) {

        String docStr = org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
        System.out.println(docStr);

        boolean result = false;

        try {
            InputStream inputStream = new ByteArrayInputStream(docStr.getBytes(StandardCharsets.UTF_8));
            MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
            SOAPMessage sm = messageFactory.createMessage(null, inputStream);
            // Verify signature
            result = verifySecuredMessage(sm, printCert);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return result;
    }

Закоментарил только проверку актора, поскольку у меня другой, не smev, и такой элемент в сообщений все равно один.
В итоге пример успешно разбирает элементы содержащие подпись, правильно печатает инфу о сертификате, публичном ключе, алгоритмах подписи/хеша. Но сама проверка не проходит.
В логе вот это:
Код:

14:05:10.948 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignatureMethod - Signature Provider: null
Jul 12, 2023 2:05:10 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: Loading JCP 2.0.41940-A
Jul 12, 2023 2:05:10 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: JCP has been loaded.
14:05:11.253 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignatureMethod - Signature provider: JCP version 2.0
14:05:11.254 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignatureMethod - Verifying with key: ru.CryptoPro.JCP.Key.GostPublicKey
14:05:11.254 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignatureMethod - JCA Algorithm: GOST3411_2012_256withGOST3410_2012_256
14:05:11.254 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignatureMethod - Signature Bytes length: 64
14:05:11.255 [Test worker] DEBUG org.apache.xml.security.transforms.Transform - Create URI "http://www.w3.org/2001/10/xml-exc-c14n#" class "class org.apache.xml.security.transforms.implementations.TransformC14NExclusive"
14:05:11.255 [Test worker] DEBUG org.apache.xml.security.transforms.Transform - The NodeList is com.sun.xml.messaging.saaj.soap.impl.NodeListImpl@2416498e
14:05:11.257 [Test worker] DEBUG org.apache.xml.security.utils.ElementProxy - setElement(ds:CanonicalizationMethod, "null")
14:05:11.257 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.ApacheCanonicalizer - Created transform for algorithm: http://www.w3.org/2001/10/xml-exc-c14n#
14:05:11.257 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.ApacheCanonicalizer - isNodeSet() = true
14:05:11.258 [Test worker] DEBUG org.apache.xml.security.utils.ElementProxy - setElement("ec:InclusiveNamespaces", "null")
14:05:11.262 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignedInfo - Canonicalized SignedInfo:
14:05:11.262 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignedInfo - <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
					<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
						<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="soap"></ec:InclusiveNamespaces>
					</ds:CanonicalizationMethod>
					<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"></ds:SignatureMethod>
					<ds:Reference URI="#id-1">
						<ds:Transforms>
							<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
								<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList=""></ec:InclusiveNamespaces>
							</ds:Transform>
						</ds:Transforms>
						<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"></ds:DigestMethod>
						<ds:DigestValue>2Y008WzDCzNmUWEkEJuqeNkfghRwtWXFNWZ8mhO7nV4=</ds:DigestValue>
					</ds:Reference>
				</ds:SignedInfo>
14:05:11.262 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMSignedInfo - Data to be signed/verified:PGRzOlNpZ25lZE...

Пробовал отключать часть org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc); - данные в строке Data to be signed/verified те же.
Пробовал потрейсить что происходит в idea. Трейсит с трудом, внутри начинает жаловаться, что байткод не соответствует исходникам (которые сама же идея и декомпилировала), и самые интересные моменты в общем опускает.
Подпись представлена классом
Код:

public final class GostElSign2012_256 extends GostElSign {
    public GostElSign2012_256() {
        super("GOST3411_2012_256withGOST3410_2012_256", "GenGOST_2012_256");
    }
}

DOMSignatureMethod - DOMSignatureMethod.GOST3411_2012_256withGOST3410_2012_256_URN
Куда копать?
Offline nickk9  
#2 Оставлено : 12 июля 2023 г. 17:28:12(UTC)
nickk9

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

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

Вторая попытка - сделать с помощью wss4j по образу примера wss4j.wss4j1_6.manager.SOAPXMLSignatureManager_1_6:
Код:

    public static boolean verifyViaWss4j(InputStream is) throws Exception {
        Security.addProvider(new JCP()); // JCP
        Security.addProvider(new RevCheck()); // RevCheck
        Security.addProvider(new CryptoProvider()); // JCryptoP
        Security.addProvider(new ru.CryptoPro.ssl.Provider());
        ru.CryptoPro.JCPxml.xmldsig.JCPXMLDSigInit.init();
        Security.insertProviderAt(new ru.CryptoPro.JCPxml.dsig.internal.dom.XMLDSigRI(), 1);

        // Override methods
        Security.getProvider("XMLDSig").put("XMLSignatureFactory.DOM",
                "ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignatureFactory");
        Security.getProvider("XMLDSig").put("KeyInfoFactory.DOM",
                "ru.CryptoPro.JCPxml.dsig.internal.dom.DOMKeyInfoFactory");


        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(true);
        Document doc = dbf.newDocumentBuilder().parse(is);

        boolean result = false;

        try {

            WSSConfig.setAddJceProviders(false);
            WSSConfig config = new WSSConfig();

            config.setWsiBSPCompliant(false);

            WSSecurityEngine engine = new WSSecurityEngine();
            engine.setWssConfig(config);

            Crypto crypto = new MerlinCustom();

            // Verify signature
            List<WSSecurityEngineResult> results = engine.processSecurityHeader(doc, ACTOR , null, crypto);
            // Ensure actionResult != null
            WSSecurityEngineResult actionResult = WSSecurityUtil.fetchActionResult(results, WSConstants.SIGN);
            result = (actionResult != null);

            // Print signer cerificate
            if (actionResult != null) {
                System.out.println(actionResult.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

Здесь также проверяет неуспешно, но в логе можно заметить:
Код:

17:17:38.608 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference - Expected digest: 2Y008WzDCzNmUWEkEJuqeNkfghRwtWXFNWZ8mhO7nV4=
17:17:38.608 [Test worker] DEBUG ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference - Actual digest: mL9Oat4saGEFTdLGv0l2MdiNSacz/nPEKtcNXTllz2A=
17:17:38.608 [Test worker] DEBUG org.apache.ws.security.processor.SignatureProcessor - Reference #id-1 check: false

И действительно, в теге SignedInfo в проверяемом сообщении хеш не совпадает с Actual. Вопрос - что надо сделать с проверяемым сообщением, чтобы хеш от него правильно считался? Как его можно посчитать по сообщению руками?
Offline Евгений Афанасьев  
#3 Оставлено : 12 июля 2023 г. 20:09:37(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Попробуйте включить логи xmlsec, он должен показать, что хэшируется, примерно так:
1. файл my.logging.properties с содержимым
Цитата:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
handlers=java.util.logging.ConsoleHandler
.level=ALL
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

2. запуск java с -Djava.util.logging.config.file=my.logging.properties
Offline nickk9  
#4 Оставлено : 13 июля 2023 г. 13:47:20(UTC)
nickk9

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

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

У меня в целом включен дебаговый логгинг, там от xmlsec ничего полезного нету. Попробовал по вашему образцу логгинг сконфигурить - аналогично:
Код:

> Task :JCPTest.main()
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.DigestParamsSpec_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.DigestParamsSpec_2012_256_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.DigestParamsSpec_2012_512_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_class_defaultDH=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_256_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_256_dh_class_defaultDH=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_512_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_512_dh_class_defaultDH=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenReader <init>
FINE: Reader name is null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenStore <init>
FINE: RutokenStore (000) loaded. Store name null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenReader <init>
FINE: Reader name is null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenStore <init>
FINE: RutokenStore (001) loaded. Store name null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenReader <init>
FINE: Reader name is null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenStore <init>
FINE: RutokenStore (002) loaded. Store name null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.ssl.Provider b
INFO: JCP license isServer:  true
Jul 13, 2023 1:35:34 PM org.apache.ws.security.WSSecurityEngine processSecurityHeader
FINE: enter processSecurityHeader()
Jul 13, 2023 1:35:34 PM org.apache.ws.security.WSSecurityEngine processSecurityHeader
FINE: Processing WS-Security header for '...' actor.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.Key.GostKeyFactory engineGeneratePublic
FINER: ENTRY
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getBoolean
CONFIG: User Preference Node: /ru/CryptoPro/JCP/tools/Control.StrengthenedKeyUsageControl=false
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpecDH_class_defaultDH=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpecDH_2012_256_class_defaultDH=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpec_class_defaultECC=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpec_2012_256_class_defaultECC=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.CryptParamsSpec_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.CryptParamsSpec_2012_256_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.CryptParamsSpec_2012_512_class_default=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.Key.GostKeyFactory engineGeneratePublic
FINER: RETURN
Jul 13, 2023 1:35:34 PM jdk.internal.event.EventHelper logX509CertificateEvent
FINE: X509Certificate: Alg:GOST3411_2012_256WITHGOST3410_2012_256, Serial:...
Jul 13, 2023 1:35:34 PM org.apache.ws.security.processor.SignatureProcessor handleToken
FINE: Found signature element
Jul 13, 2023 1:35:34 PM org.apache.ws.security.validate.SignatureTrustValidator verifyTrustInCert
FINE: Certificate path has been verified for certificate with subject CN=...
Jul 13, 2023 1:35:34 PM org.apache.ws.security.validate.SignatureTrustValidator isCertificateInKeyStore
FINE: No certificate found for subject from issuer with CN=...
Jul 13, 2023 1:35:34 PM org.apache.ws.security.validate.SignatureTrustValidator matches
WARNING: No Subject DN Certificate Constraints were defined. This could be a security issue
Jul 13, 2023 1:35:34 PM org.apache.ws.security.processor.SignatureProcessor verifyXMLSignature
WARNING: No Subject DN Certificate Constraints were defined. This could be a security issue

FINE: Verify XML Signature
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: Loading JCP 2.0.41940-A
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase <init>
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: SelfTester constructor.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref get
CONFIG: User Preference Node: /ru/CryptoPro/JCP/tools.SelfTester_jar_classes_jcp25=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: initiating of jar list...
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: jar classes: ru.CryptoPro.JCP.JCP
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: getting class url for class name: ru.CryptoPro.JCP.JCP
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: jar file:/home/git/misc/jcptest/jcp/JCP.jar has been added to self-tester.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: initiating of jar list completed.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase b
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: building of test list...
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref get
CONFIG: User Preference Node: /ru/CryptoPro/JCP/tools.SelfTester_external_classNames_jcp25=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase b
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: building of test list completed.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: initiating...
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase a
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: initiating completed.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase <init>
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: SelfTester constructor OK.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase b
FINE: [main] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: starting tester thread...
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.SelfTesterBase run
FINE: [SelfTester-JCP] :: [ru.CryptoPro.JCP.tools.SelfTester_JCP] :: SelfTester run.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getBoolean
CONFIG: User Preference Node: /ru/CryptoPro/JCP/Random.CertifiedRandom_class_RequirePhysical=true
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref get
CONFIG: User Preference Node: /ru/CryptoPro/JCP/tools.UnixMutex_class_pathToLocks=/var/opt/cprocsp/tmp
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: JCP has been loaded.
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.TestVerifyClassJar run
FINE: file:/home/git/misc/jcptest/jcp/JCP.jar  is being checked...
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.JarChecker checkURLSign
FINEST: ENTRY
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.tools.JarChecker checkURLSign
FINE: checkURLSign, url: file:/home/git/misc/jcptest/jcp/JCP.jar...
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getBoolean
CONFIG: User Preference Node: /ru/CryptoPro/JCP/Util.keytool_compat_class_default=false
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getBoolean
CONFIG: User Preference Node: /ru/CryptoPro/JCP/Util.use_cert_stub_class_default=false
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenReader <init>
FINE: Reader name is null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenStore <init>
FINE: RutokenStore (000) loaded. Store name null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenReader <init>
FINE: Reader name is null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenStore <init>
FINE: RutokenStore (001) loaded. Store name null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenReader <init>
FINE: Reader name is null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.KeyStore.Rutoken.RutokenStore <init>
FINE: RutokenStore (002) loaded. Store name null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.Key.GostKeyFactory engineGeneratePublic
FINER: ENTRY
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.Key.GostKeyFactory engineGeneratePublic
FINER: RETURN
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpecDH2012_512_class_defaultECC2012=null
Jul 13, 2023 1:35:34 PM ru.CryptoPro.JCP.pref.JCPPref getOID
CONFIG: User Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpec2012_512_class_defaultECC2012=null
Jul 13, 2023 1:35:35 PM ru.CryptoPro.JCP.tools.JarChecker checkURLSign
FINEST: RETURN
Jul 13, 2023 1:35:35 PM ru.CryptoPro.JCP.tools.TestVerifyClassJar run
FINE: file:/home/git/misc/jcptest/jcp/JCP.jar  has been successfully checked.
Jul 13, 2023 1:35:35 PM ru.CryptoPro.JCP.Sign.cl_0 engineInitVerify
FINER: ENTRY
Jul 13, 2023 1:35:35 PM ru.CryptoPro.JCP.Sign.cl_0 engineInitVerify
FINER: RETURN
Jul 13, 2023 1:35:35 PM ru.CryptoPro.JCP.Sign.cl_0 engineVerify
FINER: ENTRY
Jul 13, 2023 1:35:35 PM ru.CryptoPro.JCP.Sign.cl_0 engineVerify
FINER: RETURN
Jul 13, 2023 1:35:35 PM org.apache.ws.security.processor.SignatureProcessor verifyXMLSignature
FINE: XML Signature verification has failed
Jul 13, 2023 1:35:35 PM org.apache.ws.security.processor.SignatureProcessor verifyXMLSignature
FINE: Signature Validation check: false
Jul 13, 2023 1:35:35 PM org.apache.ws.security.processor.SignatureProcessor verifyXMLSignature
FINE: Reference #id-1 check: false
org.apache.ws.security.WSSecurityException: The signature or decryption was invalid
	at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:455)
	at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:230)
	at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:402)
	at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:309)
	at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:254)
	at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:208)


Еще вопрос по библиотеке xmlsec - в дистрибут jcp включен xmlsec-2.1.2.jar, а wss4j 1.6.19 тянет xmlsec:1.5.8. В итоге какую следует использовать?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.