0
J'essaie d'utiliser xades4j mais la documentation est un peu généralisée. en ce moment, j'ai une méthode de base de signe, mais ne recevez pas les balises xml dont j'ai besoin.Y at-il un bon exemple là-bas pour XML Sign avec XADES-EPES en Java?
KeyStore ks = KeyStore.getInstance(KEYSTORE_TYPE);
ks.load(new FileInputStream(KEYSTORE_FILE), KEYSTORE_PASSWORD.toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey(PRIVATE_KEY_ALIAS, PRIVATE_KEY_PASSWORD.toCharArray());
File signatureFile = new File("./invoice.xml");
String baseURI = signatureFile.toURL().toString(); // BaseURI para las URL Relativas.
// Instanciamos un objeto XMLSignature desde el Document. El algoritmo de firma será DSA
// Signature - Required DSAwithSHA1 (DSS)
XMLSignature xmlSignature = new XMLSignature(document, baseURI, XMLSignature.ALGO_ID_SIGNATURE_DSA);
// Añadimos el nodo de la firma a la raiz antes de firmar.
// Observe que ambos elementos pueden ser mezclados en una forma con referencias separadas
document.getDocumentElement().appendChild(xmlSignature.getElement());
// Creamos el objeto que mapea: Document/Reference
Transforms transforms = new Transforms(document);
transforms.addTransform(Transforms.TRANSFORM_BASE64_DECODE); // TRANSFORM_ENVELOPED_SIGNATURE
// Añadimos lo anterior Documento/Referencia
// ALGO_ID_DIGEST_SHA1 = "http://www.w3.org/2000/09/xmldsig#sha1";
xmlSignature.addDocument("", transforms, Constants.ALGO_ID_DIGEST_SHA1);
// Añadimos el KeyInfo del certificado cuya clave privada usamos
X509Certificate cert = (X509Certificate) ks.getCertificate(PRIVATE_KEY_ALIAS);
xmlSignature.addKeyInfo(cert);
xmlSignature.addKeyInfo(cert.getPublicKey());
// Realizamos la firma
xmlSignature.sign(privateKey);
@mposadar le code que vous montriez semble être seulement en utilisant Apache Santuario, qui est la bibliothèque sous-jacente pour xades4j. Le lien partagé ci-dessus et https://github.com/luisgoncalves/xades4j/wiki devrait vous aider à démarrer. – lgoncalves