Bonjour à tous,

je cherche à valider une signature enveloppante xades-bes en utilisant les méthodes de la bibliothèque javax.xml.crypto.

Ces librairies permettant sans problème de valider une signature XMLDSIG standard, mais je ne parviens pas à valider une signature XAdES-BES. pourtant si j'ai bien compris le principe :

L'utilisation de XAdES ajoute à l'élément KeyInfo le certificat du signataire. Si l'on remonte la chaîne de certificat, on peut retrouver la clé publique.

Mais le contenu de KeyInfo n'est utilisé que pour la validation, pas pour la création de la signature.

Or d'après ce que j'ai lu, KeyInfo est utilisé en entrée de validation pour récupérer essentiellement la clé publique. J'ai affiché cette clé publique dans mon traitement, comme vous pouvez le voir ci dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
if (!(o instanceof X509CertImpl))
            		continue;
 
            	final PublicKey key = ((X509CertImpl)o).getPublicKey();
                //final PublicKey key = ((X509Certificate)o).getPublicKey();
            	System.out.println(("public key : " + key.toString());
Le modulus de cette clé correspond exactement à la celui de la clé publique que je suis censé trouver, je pense donc que le problème ne vient pas de la clé.

Du coup je ne vois pas pourquoi la signature n'est pas valide, étant donné que les éléments couverts par une signature XMLDSIG sont les même que ceux couvert par une signature XAdES-BES.

Je ne sais pas si j'ai posé la question au bon endroit, ni même si j'ai été clair et si quelqu'un pourra me répondre, mais je préfère essayer quand même.

Quelqu'un de plus éclairé que moi aurait-il un avis sur la question ?

Amicalement,