「ASCII形式」の意味によって異なります。しかし、一般的には次のようなことができます:
// Read the CSR
FileReader fileReader = new FileReader("/path/to/your.csr");
PemReader pemReader = new PemReader(fileReader);
PKCS10CertificationRequest csr =
new PKCS10CertificationRequest(pemReader.readPemObject().getContent());
pemReader.close();
fileReader.close();
// Write the Public Key as a PEM-File
StringWriter output = new StringWriter();
PemWriter pemWriter = new PemWriter(output);
PemObject pkPemObject = new PemObject("PUBLIC KEY",
csr.getSubjectPublicKeyInfo().getEncoded());
pemWriter.writeObject(pkPemObject);
pemWriter.close();
System.out.println(output.getBuffer());
// Extract the Public Key as "RSAKeyParameters" so you can use for
// encryption/signing operations.
RSAKeyParameters pubkey =
(RSAKeyParameters)PublicKeyFactory.createKey(csr.getSubjectPublicKeyInfo());
これはあなたが得るものです:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxlRixVjOXAmUQ2zORREO
VSQDQejyjWzT3bDznPltiPMwM3SOmPmZyrB8jF3iFvzdFge1QG2WdDj7PzmysXNL
/1xRa0efWv8nURx1eV86hvU6ThNqY3WPyYYXSjTcN74uhGSJo7d5zG6JSL4Cj+l4
RO+nh/5Pa8438ufS+9hXndKPFT2aub9roKysxWpsctpNoOIjfyxkLv9Z9sqxuggG
nwYkwYmoDjPAQp2gRpCp7Hw5F6jSkA33NR5S/aPdyvzKZDbuoRdAl2sTubL1TLG3
nC6tetGsmFRRkNiJjPSNtbXXtN6RB2eJL0epyaFFLksFBaL6nvYIgB1uqFroUY15
2QIDAQAB
-----END PUBLIC KEY-----
BC プロバイダーの最新バージョンでこれをテストしました。"provider" と "PKIX/PKCS..." jar の両方が必要です (それ以外の場合は、非推奨の API 呼び出しに対処する必要があります)。