KeyStoreTest.java

import java.io.*;
import java.security.*;
import java.security.cert.Certificate;
import fr.umlv.ji.ssl.*;
public class KeyStoreTest {
  public static void main(String[] args)
    throws IOException, GeneralSecurityException {
    // Création de l'objet de stockage via la méthode de notre
    // classe de commodité
    KeyStore ks =
      SSLHelper.getKeyStore(".keystore", "sp2moi".toCharArray());
    // Récupération de la clef privée de l'alias moi chiffrée
    // avec le mot de passe kp2moi
    Key key = ks.getKey("moi", "kp2moi".toCharArray());
    System.out.println(key);
    // Récupération de la chaîne de certificats de l'alias moi
    Certificate[] chain = ks.getCertificateChain("moi");
    for(int i=0; i<chain.length; i++) 
      System.out.println(chain[i]);
    // Ajout d'un nouvel alias, clone, qui a la même clef que moi
    // et la même chaîne de certificats
    ks.setKeyEntry("clone", key, "kp2clone".toCharArray(), chain);
    // Sauvegarde du nouveau contenu dans le fichier .keystore2
    // avec le mot de passe s2p2moi
    OutputStream out = new FileOutputStream(".keystore2");
    ks.store(out, "s2p2moi".toCharArray());
    out.close();
  }
}