Créer un PKCS12 avec java à partir des fichiers ClePrivé.key CA.cer MyCert.Cert
je cherche à implémenter une méthode qui gènère un PKCS12 à partir des fichiers suivant.
la clé privé _.key
le certificat publique _.cer
et en option le certificat de l'autorité de certification _.cer
en spécifiant le mot de passe du PKCS12
j'utilse le code suivant pour le moment
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| try{
KeyStore ks = KeyStore.getInstance("PKCS12");
CertificatX509 cert=new CertificatX509(fileMyCert);
PrivateKey pk=this.loadPrivateKey(new File(fileMyKey));
ks.load(null, null);
Certificate[] chain = new Certificate[] {cert.getX_cert()};
ks.setKeyEntry("0", pk, pkcs12Pass.toCharArray(), chain);
ks.store(new FileOutputStream(outFilePKCS12),pkcs12Pass.toCharArray());
}catch (Exception e){
e.printStackTrace();
}
le problème c'est que la méthode:
private PrivateKey loadPrivateKey(File privateKeyFile) throws Exception
me génère des erreurs.
voila le corps de la méthode:
private PrivateKey loadPrivateKey(File privateKeyFile) throws Exception
{
FileInputStream privateKeyInputStream = new FileInputStream(privateKeyFile);
byte[] keyBytes = new byte[(int) privateKeyFile.length()];
privateKeyInputStream.read(keyBytes);
privateKeyInputStream.close();
try {
// Load the private key
System.out.println("mounting...");
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA","BC");
PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
System.out.println("Loaded " + privateKey.getAlgorithm()
+ " " + privateKey.getFormat()
+ " private key.");
return privateKey;
} catch (Exception e) {
e.printStackTrace();
}
return null;
} |
mon besoin c'est la création des PKCS12 en java
merci pour votre réponse. mais mon besoin ete de comment créer les PKCS12 en java et purmenent java sans passer par OpenSSL.
merci encore pour votre réponse