2017-01-10 1 views
1

J'ai un pot signé. Avec Java 7/8, mon application n'a aucun problème. Avec Java 6, il se plaint de l'entrée non signée dans le pot. J'ai vérifié le pot en utilisant jarsigner -verify myjar.jarPot signé Java 6 vs Java 8

sortie Java 7, Java8 -> "pot vérifié"

sortie Java 6 - "jar est non signé (signatures manquantes ou non analysable)">

J'ai essayé de Construire et signer le pot avec jdk 6, 7, 8 versions 32/64 bits. Pas de changement.

Est-ce que quelqu'un a une idée de ce qui pourrait arriver ici?

+0

Utilisez-vous éventuellement une clé de signature ECDSA & cert? Java6 n'a pas fait ECC hors de la boîte. (Et bien sûr, vous savez qu'il est longtemps non pris en charge et non sécurisé.) –

+0

Non. La clé publique est un RSA 2048 et l'algorithme de signature du cert est un SHA256. Pour autant que je sache, Java 6 devrait être capable de gérer SHA 256. J'ai fait des recherches supplémentaires et trouvé une version antérieure de mon application qui fonctionne avec Java 6. Cette version a été signée avec un algorithme SHA1. Cela peut-il être le problème? – Joschi

Répondre

2

Nous avons trouvé le problème. Le problème est le TSA. Nous avons ajouté un horodatage à la signature. Java 6 ne semble pas être capable de gérer les horodatages de cette TSA que nous avons utilisée. La solution consiste à utiliser un TSA que le client Java6 est capable de gérer ou de supprimer l'horodatage.