Статус: Новичок
Группы: Участники
Зарегистрирован: 25.08.2023(UTC) Сообщений: 8 Откуда: Кемерово
Сказал(а) «Спасибо»: 1 раз
|
Здравствуйте, пытаюсь подписать xml файл но не могу подобрать алгоритм. алгоритм ключа приватного ключа CryptoPro Gost PrivateKey (GOST3410DH_2012_256) with parameters: 1.2.643.7.1.1.6.1, пытался взять алгоритмы из Consts но тогда выдает unsupported algorithm где взять алгоритм который поддерживается?
Security.addProvider(new JCP()); Security.addProvider(new RevCheck()); Security.addProvider(new CryptoProvider()); //ИНИЦИАЛИЗАЦИИ Transforms. org.apache.xml.security.Init.init(); if (!JCPXMLDSigInit.isInitialized()){ JCPXMLDSigInit.init(); } System.setProperty("org.apache.xml.security.resource.config", "resource/jcp.xml"); String alias = "b8ed83549-75a5-ca35-b3b6-b9c388b0f35"; KeyStore store = KeyStore.getInstance("RutokenStore", "JCP"); store.load(null, null); char[] password = "12345678".toCharArray(); X509Certificate certificate = (X509Certificate) store.getCertificate(alias); PrivateKey privateKey = (PrivateKey) store.getKey(alias, password); System.out.println(privateKey); // System.out.println(certificate); // Загрузка XML документа File file = new File("C:/sigxml/XMLDOC.xml"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(file); Element root = document.getDocumentElement(); //printNode(root); Element poop = document.getElementById("foo"); //Загрузка провайдера! Provider xmlDsigProvider = new XMLDSigRI(); String cons = Consts.CONFIG; System.out.println(cons); KeyPairGenerator kg = KeyPairGenerator.getInstance("GOST3410DH_2012_256"); System.out.println(kg); XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM",xmlDsigProvider); final List<Transform> transformList = new ArrayList<Transform>(); final Transform transformC14N = fac.newTransform( org.apache.xml.security.transforms.Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS, (XMLStructure) null); transformList.add(transformC14N); Reference ref = fac.newReference("", fac.newDigestMethod("http://www.w3.org/2001/04/xmldsig-more#gostr3411", null), transformList, null, null); 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)); KeyInfoFactory kif = fac.getKeyInfoFactory(); X509Data x509d = kif.newX509Data(Collections.singletonList((X509Certificate) certificate)); KeyInfo ki = kif.newKeyInfo(Collections.singletonList(x509d)); javax.xml.crypto.dsig.XMLSignature sig = fac.newXMLSignature(si, ki); DOMSignContext signContext = new DOMSignContext(privateKey,document.getDocumentElement()); sig.sign(signContext);
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close