2017-01-18 2 views
1

Est-il possible de générer un KeyPair à utiliser dans mon application à l'aide de fichiers de clés publiques et privées (JKS) déjà générées?Générer KeyPair à l'aide de fichiers JKS publics et privés

Merci

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); 
keyGen.initialize(2048); 
KeyPair keypair = keyGen.genKeyPair(); 

Je veux créer une paire de clés avec déjà généré privée et la clé publique RSA 2048

Répondre

0

Vous pouvez utiliser comme ci-dessous:

public static KeyPair loadKeyStore(final File keystoreFile, 
     final String password, final String alias, final String keyStoreType) 
     throws Exception { 
    if (null == keystoreFile) { 
     throw new IllegalArgumentException("Keystore url may not be null"); 
    } 
    final KeyStore keystore = KeyStore.getInstance(keyStoreType); 
    InputStream is = null; 
    try { 
     is = new FileInputStream(keystoreFile); 
     keystore.load(is, null == password ? null : password.toCharArray()); 
    } finally { 
     if (null != is) { 
      is.close(); 
     } 
    } 
    final PrivateKey key = (PrivateKey) keystore.getKey(alias, 
      password.toCharArray()); 
    final Certificate cert = keystore.getCertificate(alias); 
    final PublicKey publicKey = cert.getPublicKey(); 
    return new KeyPair(publicKey, key); 

} 
+0

Pour le paramètre "fichier final keystoreFile" est-ce que nous passons le fichier de clés public ou privé? – user3520080

+0

Lorsque je charge le keystore privé, je reçois une exception pour ce code 'Exception dans le thread" principal "java.security.UnrecoverableKeyException: Impossible de récupérer la clé' – user3520080

+0

Ah question est à la fois cert et la clé ont un mot de passe différent, donc je dois passer cert pass. J'ai légèrement mis à jour le code et ça marche – user3520080