Именованный сертификат '' не найден. Подпись и шифрование XML ответа API.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Именованный сертификат '' не найден. Подпись и шифрование XML ответа API.

Сообщение Anonymous »

Я работаю над интеграцией, которая требует подписания и шифрования полезных данных XML перед передачей их в содержимое запроса.
Я использую Java для подписи и шифрования XML-документа, и это вот что я получаю






I1ik...




tTYZZ.....Vtl1WwQ==



При использовании приведенной выше полезной нагрузки ответом будет код состояния 401 и приведенный ниже XML-код.










*Named certificate '' not found*




*Named certificate '' not found*



Каким именно сертификатом является этот именованный сертификат и как добавить эту информацию в зашифрованную полезную нагрузку
// Sign the XML
org.apache.xml.security.Init.init();
ElementProxy.setDefaultPrefix(Constants.SignatureSpecNS, "ds");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
Element root = xmlDoc.getDocumentElement();
XMLSignature sig = new XMLSignature(xmlDoc, "file:", XMLSignature.ALGO_ID_SIGNATURE_RSA);
root.appendChild(sig.getElement());
Transforms transforms = new Transforms(xmlDoc);
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
transforms.addTransform(Transforms.TRANSFORM_C14N_OMIT_COMMENTS);
sig.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA1);

KeyInfo info = sig.getKeyInfo();
X509Data x509data = new X509Data(xmlDoc);
x509data.add(new XMLX509IssuerSerial(xmlDoc,signCert));
x509data.add(new XMLX509Certificate(xmlDoc, signCert));
info.add(x509data);

sig.sign(privateSignKey);

// Encrypt the XML
String jceAlgorithmName = "DESede";
KeyGenerator keyGenerator = KeyGenerator.getInstance(jceAlgorithmName);
Key symmetricKey = keyGenerator.generateKey();
String algorithmURI = XMLCipher.RSA_v1dot5;
XMLCipher keyCipher = XMLCipher.getInstance(algorithmURI);
keyCipher.init(XMLCipher.WRAP_MODE, publicEncryptKey);
EncryptedKey encryptedKey = keyCipher.encryptKey(xmlDoc, symmetricKey);
Element rootElement = xmlDoc.getDocumentElement();
algorithmURI = XMLCipher.TRIPLEDES;
XMLCipher xmlCipher = XMLCipher.getInstance(algorithmURI);
xmlCipher.init(XMLCipher.ENCRYPT_MODE, symmetricKey);
EncryptedData encryptedData = xmlCipher.getEncryptedData();
KeyInfo keyInfo = new KeyInfo(xmlDoc);
keyInfo.add(encryptedKey);
encryptedData.setKeyInfo(keyInfo);
xmlCipher.doFinal(xmlDoc, rootElement, false);


Подробнее здесь: https://stackoverflow.com/questions/790 ... encryption
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»