我有一个请求数据,但我不知道如何使用PEMWriter导出此请求数据。

我的要求数据:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBoDCCAQkCAQAwYDEQMA4GA1UEBhMHTXlhbm1hcjEKMAgGA1UECBMBdDEKMAgGA1UEBxMBdDEK
MAgGA1UEChMBdDEKMAgGA1UECxMBdDEKMAgGA1UEAxMBdDEQMA4GCSqGSIb3DQEJARYBdDCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp8NqU0BHIlxzOWuoAtOcamm1cxlAr5Uz+wlx/KSxKR4p
0VqV1PdUVNVK2O7C1jy5VB+hXeNIlwo3BIlA6hdWtS33ynZxdUZ9BrHr6lELjd6T91q0yzbV/dQk
pR0KmycIOXgfqGF7PhZlGku+fI7wllI8n/oZvFnW/M4kSCnfEBcCAwEAAaAAMA0GCSqGSIb3DQEB
BQUAA4GBADgOHimTuqjb+Vbt0ffuK9skIQFCoicfKV5vKPpU8Uxeji/RuQ7zQVoACYOcQ8O1Epof
Aq7vZFLXKlscFO/w4UKWGEix45JIFoc8a6rCVUQph8P8GLdQNofIWVXc2dgBe/yCqgD54bnQt1tX
GLciFlHU+Oa0Lxtdc+jIOzzvYe5P
-----END NEW CERTIFICATE REQUEST-----


我就是这样使用PEMWriter导出请求数据的。
代码:

BufferedWriter bw = new BufferedWriter(new FileWriter(txtRequest.getText()));
PEMWriter writer = new PEMWriter(bw2);
writer.writeObject(certificate);

writer.close();
bw.close();


但是我有一个错误。

错误:java.io.IOException:传递了未知对象-无法编码。

请给我解释一下。谢谢。

最佳答案

首先,您要创建一个BufferedWriter bw,但要使用bw2作为PEMWriter的参数。我想这只是复制/粘贴错误,没有关系。

但是,用作writeObject的参数的内容确实很重要。在您的情况下,它可能应该是java.security.cert.X509Certificate类的对象。
该方法不接受类型为javax.security.cert.X509Certificate的参数-区别在于javax中的x。

查看Bouncy Castle PEMWriter的源代码,以查看该方法接受的其他类型的类。

07-26 00:05