从我的观察可以看出,苹果安全框架中SecKeyEncrypt方法的各种填充值不支持SHA512哈希摘要的OAEP填充。实际上,我似乎无法确定SecKeyEncrypt方法是否在CBC过程中对每个块进行了任何形式的哈希/屏蔽。

这就是我的问题。我所有其他平台(PHP,Android,.NET)都使用带有OAEP填充和SHA512摘要的RSA。

例如:在C#中,我们可以使用BouncyCaSTLe的OaepEncoding类,该类接受任何Digest并在块密码加密过程中执行哈希/掩码操作。在php中,phpseclib项目提供了相同的功能。

最后,我的问题...是否可以通过混合使用“手动”哈希和使用SecKeyEncrypt在iOS上实现相同的功能?还是我在这里错过了更明显的东西。

干杯!

编辑:我想我可以通过移植弹性城堡代码然后将新的字节数组传递给SecKeyEncrypt进行加密来对每个块进行哈希/掩码,但这引出了一个问题,SecKeyEncrypt是否已在内部使用其他哈希算法来做到这一点?

最佳答案

看来这对于iOS的安全框架而言是不可能的。让OAEP RSA加密在跨平台上正常工作时,我遇到了很多问题。

但是,我只是从第三方图书馆提供商Chillkat那里听说,他们正在为此提供支持。另请:http://www.chilkatforum.com/questions/7778/ios-rsa-encryption-using-oaep-sha512

编辑:我安装了Chilkat的库,并在几分钟内使它工作。

09-16 05:45