Я создаю KeyPair с нижеуказанной спецификацией, используя Java (KeyPairGenerator)
- Формат открытого ключа OpenSSH
- Формат DER в кодировке Base64
- Формат файла открытого ключа SSH, как указано в RFC4716
Сгенерированный открытый является валидным, а закрытый ключ хранится в файле pem с использованием PKCS8Generator - недопустим.Когда я пытаюсь импортировать файл pem в puttygen amd, получаю сообщение об ошибке «не удалось загрузить закрытый ключ (нераспознанный тип данных)», ниже приведен пример кода
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048, new SecureRandom());
KeyPair kp = kpg.generateKeyPair();
Key publicKey = kp.getPublic();
String publicKeyEncoded = "---- BEGIN SSH2 PUBLIC KEY ----" + "\n" +
new String(Base64.getEncoder().encode(publicKey.getEncoded())) + "\n"+
"---- END SSH2 PUBLIC KEY ----";
//Get Private Key and store to pem file.
Key privateKey = kp.getPrivate();
PKCS8Generator encryptorBuilder = new PKCS8Generator((PrivateKey) privateKey);
PEMWriter writer = new PEMWriter(new FileWriter(new File("D:/pk.pem")));
PemObject obj = encryptorBuilder.generate();
writer.writeObject(obj);
writer.flush();
writer.close();
Не могли бы вы помочь мне в этом. В