我想与基于 Java 的服务器或 Android 设备共享在 iPhone/iPad 上生成的公钥。在 Java 端(服务器或 Android)我想在 iOS 上使用java.security
和libcommonCrypto
(SecKeyRef 的东西)。
除了这两个平台之间的公钥交换之外,我已经完成了所有工作。通过使用SecItemCopyMatching
,我只能将公钥导出为苹果公司不支持的某种格式。使用 Java,我可以将公钥加载为 X509 证书(通过java.security.X509EncodedKeySpec
)或模块和指数(通过java.security.RSAPublicKeySpec
)。
现在我需要知道如何将 aSecKeyRef
作为 X509 证书导出,或者(我猜这是更简单的解决方案)从中获取模块和指数。我也需要倒退的方式。
SecKeyRef
以下是从 a 加载并编码为 BASE64的一些示例公钥:
MIGJAoGBAMYgXP6rvD/Y8F0VQE0HvxpVnnOxXYl5TDlOfW/leyrCLWGWg9Jp+Tl9dYvK/zWgNpoEfFzMVRpUk9UHcIaDWHW3g0BpS2MVC3Vs/0e2eu6S2WMGHpzqcJB51jJRbnqXQ23nVKC2YE520Po3EvFyTr8MlFJqTCJrovgc7fze4RI5AgMBAAE=