我正在开发一个应用程序,在该应用程序中,我将从我们的服务器检索用户的公钥。一旦我有了它,我需要使用公钥进行RSA加密。从服务器获得的公钥是Base64编码的。
如何将公钥加载到iOS KeyChain中,以便使用它执行加密功能?证书加载似乎很简单,但原始公钥并非如此。
发布于 2012-03-29 07:41:26
我在苹果网站上找到了必要的代码,描述了如何从公钥中剥离ASN.1报头并将其加载到KeyChain中。
发布于 2013-04-19 10:05:14
这不受支持,因为它是 way。
"right“的方法是使用。
这出奇的简单。您不需要将证书添加到密钥链来处理这种情况。相反,只需在应用程序中加载证书数据(即.cer文件的内容)(您可以从捆绑包中或从网络中获取),然后使用SecCertificateCreateWithData创建证书引用。在那里,您可以使用SecTrust对象(SecTrustCreateWithCertificates、SecTrustEvaluate --您可以选择忽略生成的SecTrustResultType --和SecTrustCopyPublicKey)提取一个公钥引用。然后,您可以使用SecKey API (SecKeyEncrypt、SecKeyRawVerify)进行加密和验证。
关于的教程。
基本步骤如下:
#Make the -----RSA PRIVATE KEY----- file in PEM format
openssl genrsa -out privKey.pem 2048
#Make the -----CERTIFICATE REQUEST-----
openssl req -new -key privKey.pem -out certReq.pem
#Make the actual -----CERTIFICATE-----
openssl x509 -req -days 30 -in certReq.pem -signkey privKey.pem -out certificate.pem
#Make the DER certificate.crt file from the certificate.pem
openssl x509 -outform der -in certificate.pem -out certificate.cer如果您双击Mac机上.cer,它将提供将其导入到keychain中。
资源:
发布于 2012-03-16 06:18:48
传输公钥的通常方式是在证书中,由一些CA签名以证明它是可信的。
或者您正在谈论的是ssh公钥?在这种情况下,你需要一个特殊的支持ssh的应用程序来使用它,这些密钥通常不会存储在iOS密钥链中。
https://stackoverflow.com/questions/9728799
复制相似问题