我正在尝试在 iPhone 上的 ObjC 中重写一些 Java (Android) 代码。该代码将执行基本的 Web 服务调用,并且需要设置一些带有身份验证信息的标头。
该信息的一部分是我发送的数据的加密哈希。
Java 版本使用手机上生成的 RSA 私钥计算 SHA256 签名。私钥是使用我可用的种子生成的。
(简化的)java代码如下:
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Signature sig = Signature.getInstance("SHA256WithRSAEncryption");
// I get the private key bytes from an outside source
EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
sig.initSign(keyFactory.generatePrivate(privateKeySpec));
sig.update(/* insert my data here */);
return sig.sign();
现在我正在尝试在 iOS 和 ObjC 中重新创建它。进行 SHA256 签名计算很容易,但我看不到如何轻松创建私有 RSA 密钥。如果有可用的 API,我更愿意使用内置 API,但如果我必须使用 OpenSSL 等第三方库,那么我也可以接受。