public static void savePublicKeyInFile(String path, PublicKey key) { try { KeyFactory fac = KeyFactory.getInstance("RSA"); RSAPublicKeySpec RSAspec = fac.getKeySpec(key, RSAPublicKeySpec.class); FileOutputStream file3 = new FileOutputStream(path); ObjectOutputStream obj_stream = new ObjectOutputStream(file3); obj_stream.writeObject(RSAspec.getModulus()); obj_stream.writeObject(RSAspec.getPublicExponent()); } catch (Exception ex) { System.err.println("Probeleme de sauvegarde de la cle public dans un fichier: " + ex); } }
static DHPublicKeySpec getDHPublicKeySpec(PublicKey key) { if (key instanceof DHPublicKey) { DHPublicKey dhKey = (DHPublicKey) key; DHParameterSpec params = dhKey.getParams(); return new DHPublicKeySpec(dhKey.getY(), params.getP(), params.getG()); } try { KeyFactory factory = JsseJce.getKeyFactory("DH"); return (DHPublicKeySpec) factory.getKeySpec(key, DHPublicKeySpec.class); } catch (Exception e) { throw new RuntimeException(e); } }
private RSAPublicKeySpec getPublicKeySpec(PublicKey publicKey) throws NoSuchAlgorithmException, InvalidKeySpecException { KeyFactory keyFac = KeyFactory.getInstance("RSA"); return keyFac.getKeySpec(publicKey, RSAPublicKeySpec.class); }