iPhone开发中有没有办法从我的RSA公钥(seckeyref)生成X509证书
或者有谁知道我如何将我的公钥传输到java服务器?
谢谢帕特里克
iPhone开发中有没有办法从我的RSA公钥(seckeyref)生成X509证书
或者有谁知道我如何将我的公钥传输到java服务器?
谢谢帕特里克
不明白你的意思。如果您的意思是 RSA 是一个完整的证书,那么:
SecCertificateRef cert = ...
CFDataRef der = SecCertificateCopyData(cert);
const unsigned char * ptr = CFDataGetBytePtr(der);
int len = CFDataGetLength(der);
// now write len bytes from ptr to a file, put it in a POST request
// to the server, etc.
您可以将其写成二进制文件(作为 DER 文件)或转换为 base64 作为 PEM 证书。Java 会喜欢 DER 文件/格式并接受它
FileInputStream certificateStream = new FileInputStream(aboveDerFileOrPost);
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
java.security.cert.Certificate[] certs = {};
certs = certificateFactory.generateCertificates(certificateStream).toArray();
certificateStream.close();
某种方式。如果你的意思是你有一个原始的 RSA 公钥——你现在想添加 X509 的东西来使它成为一个证书然后签名——那就是相当多的工作。AFAIK 需要使用 openssl(或者至少我是这样做的)来创建 x509 结构;然后使用 SecTransformExecute() 或 SecKeyRawSign() 进行签名,以免违反密钥库上的安全规则。