2009-06-17 7 views
6

Je veux prendre un fichier .cer clé publique générée à partir de commande Java keytool comme ceci:Comment importer par programme un fichier .cer de clé publique dans un keystore java à l'aide de JSSE?

"keytool -export -alias privatekey -file publickey.cer -keystore privateKeys.store"

et l'importer dans un nouveau vide java keystore comme ceci:

"keytool -import -alias publiccert -file publickey.cer -keystore publicCerts.store"

sauf que je veux faire l'importation par programme, en utilisant JSSE.

Stack Overlords, travaillez votre magie! Merci!

+0

JSSE peut ne pas être le bon acronyme. JCE peut-être? Quelle que soit l'API Java qui traite les keystores, elle s'appelle! :) –

+0

Merci les gars. Je voudrais vous upvote mais je n'ai pas assez de crédit pour le faire encore. Suivant le conseil de Reginaldo, je l'ai compris après avoir regardé la source KeyTool décompilée. J'ai fait quelque chose de similaire à ceci: Certificat cert = CertificateFactory.getInstance ("X509"). GenerateCertificate (nouveau FileInputStream (certFileLocation)); keyStore.setCertificateEntry ("publickey", cert); –

Répondre

0

Si vous utilisez jad pour décompiler le tool.jar fourni avec Sun JDK, vous verrez exactement comment cela fonctionne.

Décompressez le fichier tools.jar dans un dossier et utilisez la commande suivante pour décompiler toutes les classes à l'intérieur de ce fichier.

 
for i in $(find . -name "*.class" | perl -ple 's/\.class$//g'); do jad -p $i.class > $i.java; done 

La source keytool peut être vu dans la classe sun.security.tools.KeyTool

2

Regardez la classe KeyStore en Java. Here est une classe qui pourrait vous donner quelques indices. Vous pourriez avoir besoin du fournisseur de chiffrement BouncyCastle pour exploiter toutes ses fonctions

Questions connexes