首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS SecKeyEncrypt OAEP SHA512

iOS SecKeyEncrypt OAEP SHA512
EN

Stack Overflow用户
提问于 2015-02-25 16:45:02
回答 2查看 2K关注 0票数 2

通过查看苹果安全框架中SecKeyEncrypt方法的各种填充值,我可以看出,它不支持带有SHA512散列摘要的OAEP填充。实际上,我似乎无法确定SecKeyEncrypt方法在CBC过程中是否对每个块执行任何类型的散列/掩蔽。

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

例如:在C#中,我们可以使用Bouncy城堡的OaepEncoding类,它接受任何摘要,并在分组密码加密过程中执行散列/掩码操作。在php中,phpseclib项目提供了相同的功能。

最后我的问题..。在iOS上是否可以通过使用“手动”散列和使用SecKeyEncrypt的混合方式来实现相同的功能?还是我漏掉了更明显的东西。

干杯!

编辑:我想我可能可以通过移植弹跳城堡代码来散列/屏蔽每个块,然后将新的字节数组传递给SecKeyEncrypt进行加密,但这就引出了一个问题,SecKeyEncrypt是否已经在内部使用了其他散列方法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-25 20:15:05

这似乎不可能在iOS的安全框架中实现。我有很多问题得到OAEP RSA加密,以正确地跨平台工作。

然而,我刚刚从第三方库提供者Chillkat那里听说,他们正在增加对此的支持。请参阅:http://www.chilkatforum.com/questions/7778/ios-rsa-encryption-using-oaep-sha512

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

票数 -1
EN

Stack Overflow用户

发布于 2019-01-29 01:05:00

从iOS 10.0开始,.rsaEncryptionOAEPSHA512选项已经成为已添加作为SecKeyAlgorithm

Swift 4

代码语言:javascript
复制
let attributes: [String: Any] = [ ... ]
let pk = SecKeyCreateRandom(attributes as CFDictionary, nil)!
let pub = SecKeyCopyPublicKey(pk)!
let message = "Encrypt me".data(using: .utf8)!

var error: Unmanaged<CFError>?
let cipherText = SecKeyCreateEncryptedData(pub, .rsaEncryptionOAEPSHA512, message as CFData, &error)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28724696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档