Est-il possible d'avoir SHA1-Digest en java fichier Manifeste sans l'aide d'une clé
Actuellement, nous utilisons jarsigner pour signer notre bocal. Nous avons ensuite d'afficher certains SHA1-Digest des valeurs pour certaines classes spécifiques pour prouver à un auditeur externe que le code n'a pas changé entre les versions.
Nous reposer que sur la META-INF/xxx.SF
fichier pour obtenir le digérer l'information et nous n'utilisons jamais le META-INF/xxx.DSA
bloc de signature de fichier.
Que nous avons seulement besoin de le digérer calcul dans notre code, je me demandais si c'est possible d'avoir le .SF
fichier généré avec certaines java outil sans l'aide d'une clé.
J'ai lu http://docs.oracle.com/javase/6/docs/technotes/tools/windows/jarsigner.html mais il semble que la clé est obligatoire.
OriginalL'auteur cbliard | 2012-02-14
Vous devez vous connecter pour publier un commentaire.
Cela devrait être possible. Le MANIFESTE.MF fichier contient encodée en Base64, SHA-1 de la classe fichier.
À partir de votre document:
Donc itérer sur tous les fichiers de classe, calculer le SHA-1, format tel qu'il apparaît dans le MANIFESTE.MF, puis le hachage et le format tel qu'il apparaît dans la SF fichier.
Il n'y a pas de clé impliqué avec le calcul.
Exemple: considérons "jce1_2_2.jar" (ou ce que vous avez bien signé). Il contient
MANIFESTE.MF entrées de la forme
qui sont le Base64(SHA1-1) "KeyAgreement.class" (le chemin n'est pas pertinent). Remarque: le troisième ligne vide. Les fins de ligne sont CRLF (Windows).
META-INF/4JCEJARS.SF entrée
qui est le hachage pas de fichier, mais de ces trois lignes ci-dessus.
Je ne suis pas au courant d'un tel outil. Comme vous l'avez découvert, jarsigner seulement de signature-plus-de hachage, pas hasing seul. Ne devrait pas être trop difficile d'écrire de telles "jarhash" outil. Il n'a pas à être de Java, bien sûr. Mon test pour la réponse ci-dessus a été fait à l'aide d'autres les outils de ligne de commande, c'est à dire unzip.exe, base64.exe, hex2bin.exe etc. Un peu de batch script devrait faire le travail aussi bien. Êtes-vous sûr de une solution Java?
Correct, je n'ai pas besoin d'une solution Java. En effet, j'ai aussi utilisé quelques outils de ligne de commande pour vérifier comment les digérer sont calculées et pour voir si je pouvais calculer la valeur de même facilement. C'devriez pas être trop compliqué à écrire un "jarhash' outil. Merci beaucoup!
avez-vous fait des progrès?
J'ai essayé d'étudier la théorie derrière cela aussi, mais avant que je puisse obtenir par programme, j'ai bloqué sur "étape 2": pas de problème de calcul valide hachage sha1 pour une classe java, mais je ne peux pas venir avec un correspondant d'entrée valable pour .sf fichier. Chaque fois que j'essaie de calculer la valeur de hachage pour ces 3 lignes au-dessus (transport ret. inclus), je reçois un "mauvais" hash sha1 (par rapport à celle de l' .sf fichier dans un bocal j'ai créer avec pot de commande et jarsigner). Personne ne sait comment calculer exactement? Une recherche sur google, j'ai trouvé qu'il semble être légèrement différentes opinions sur ce qu'est exactement de hachage!
OriginalL'auteur mgaert
De vérification de la Signature échoue...
Pourquoi?
JAR Fichier de Vérification -> Vérifier la signature de l' .SF fichier lui-même.
Qui est, la vérification permet de s'assurer que la signature stockée dans chaque bloc de signature (.DSA) de fichier est en fait généré à l'aide de la clé privée correspondant à la clé publique dont le certificat (ou de la chaîne de certification) apparaît également dans la .DSA fichier. Il s'assure également que la signature est une signature valide correspondant à la signature.SF) fichier, et donc de la .SF fichier n'a pas été altéré.
Pour plus d'info
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html
OriginalL'auteur Nik theGeeK