我正在尝试在我的Android应用pkcs7文件上生成客户端和服务器之间的通信(机密数据在它们之间传输)。
我实际上尝试过SpongyCastle,这对于这项工作似乎很好。
实际上,我尝试了给出的示例:AttrCertExample。我的证书似乎是在最后生成的(v3一个)并经过验证,一切正常。
然后我尝试像这样制作它的版本:
String strResult = Base64.encode(cert.getTBSCertificate(), Base64.NO_WRAP).toString();
但是这个操作的结果给了我一个非常小的Base 64编码的字符串(我希望有这样的东西:
MIICyzCCAbOgAwI [...] 6Shws =(基地64的960个字符)
你真的知道如何获得由SpongyCastle生成的证书的PKCS#7版本吗?
非常感谢,我很感激帮助。如果需要,我可以提供更多代码。
答案 0 :(得分:0)
我很快得到了答案。这是你这样做的:
// returns a byte array containing the Certificate
byte[] buf = clientCert.getEncoded();
// Returns Base64 encoded certificate
String strCertificateCrypted_b64 = new String(Base64.encode(buf, Base64.NO_WRAP));
然后你获得这样的证书:
MIIDHjCCAgagAwIBAgIEOH9W+ [...] czP+BohBw==
通过DER扩展程序保存,您可以轻松查看证书内容。