gpt4 book ai didi

iPhone:如何从公钥文件 (PEM) 创建 SecKeyRef

转载 作者:行者123 更新时间:2023-12-03 18:26:11 26 4
gpt4 key购买 nike

为了从 iPhone 发送和接收加密消息,我需要读取公钥(服务器的公钥)PEM 文件并创建一个 SecKeyRef(后来我什至可以将其存储在钥匙串(keychain)上,以免创建它)再次)。

这是我当前的工作流程:

  1. 在服务器上:使用用户的证书和私钥创建 P12 文件。将用户的公钥存储在服务器的钥匙串(keychain)上。
  2. 在 iPhone 上:从服务器检索 P12 文件,使用密码打开它,并将私钥存储在钥匙串(keychain)上。
  3. 在 iPhone 上:使用服务器的公钥从服务器检索 PEM 文件。创建 SecKeyRef 并将其存储在钥匙串(keychain)上
  4. 在 iPhone 上:使用两个 key 向服务器发送加密消息或从服务器接收加密消息。
  5. 从此过上幸福的生活。

我在使用 3 时遇到问题,因为我无法从 PEM 文件数据创建 SecKeyRef。我找不到任何有关如何执行此操作的文档,有人遇到同样的问题吗?有什么提示吗?由于我找不到任何相关的代码示例或文档,感觉我做错了什么......

谢谢!

最佳答案

您应该能够解释 DER 编码的 pem 并使用 SecCertificateCreateWithData() 获取证书然后您可以从中提取 key ;

NSData *myCertData = ....;

SecCertificateRef cert = SecCertificateCreateWithData (kCFAllocatorDefault, myCertData);
CFArrayRef certs = CFArrayCreate(kCFAllocatorDefault, (const void **) &cert, 1, NULL);

SecTrustRef trust;
SecTrustCreateWithCertificates(certs, policy, &trust);
SecTrustResultType trustResult;
SecTrustEvaluate(trust, &trustResult);
SecKeyRef pub_key_leaf = SecTrustCopyPublicKey(trust);

关于iPhone:如何从公钥文件 (PEM) 创建 SecKeyRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1595013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com