¿Cómo generar un par de claves RSA con una clave privada cifrada con contraseña?

Quiero generar un formato PKCS8 de clave privada cifrado con contraseña, y trato con este código:

String password = "123456";
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
gen.initialize(2048);
KeyPair key = gen.generateKeyPair();
PrivateKey privateKey = key.getPrivate();
PublicKey publicKey = key.getPublic();

FileOutputStream pvt = new FileOutputStream("d:\\pvt123456.der");
try {
    pvt.write(privateKey.getEncoded());
    pvt.flush();
} finally {
    pvt.close();
}
FileOutputStream pub = new FileOutputStream("d:\\pub123456.der");
try {
    pub.write(publicKey.getEncoded());
    pub.flush();
} finally {
    pub.close();
}

Pero no sé cómo cifrar una contraseña con 3des para que sea compatible con el formato openssl.

Respuestas a la pregunta(1)

Su respuesta a la pregunta