我将项目中包含的公钥作为字节数组。我想用它来加密密码。当我尝试从字节数组创建公钥时,我得到以下给定的错误。
SecKeyCreateWithData failed :Optional(Swift.Unmanaged<__ObjC.CFError>(_value: Error Domain=NSOSStatusErrorDomain Code=-50
"RSA public key creation from data failed" UserInfo={NSDescription=RSA public key creation from data failed}))
下面给出的是代码。
let attributes : [String : Any] = [
kSecAttrKeyType as String : kSecAttrKeyTypeRSA,
kSecAttrKeyClass as String : kSecAttrKeyClassPublic,
kSecAttrKeySizeInBits as String : 1024 as AnyObject]
var priKeyCreateError: Unmanaged<CFError>?
_ = SecKeyCreateWithData(PublicKeyDataDevQA as Data as CFData, attributes as CFDictionary, &priKeyCreateError)
if(priKeyCreateError != nil)
{
print("\n SecKeyCreateWithData failed :" + String(describing: priKeyCreateError));
}
我想在不使用任何第三方库(如Swifty RSA)的情况下实现此目的。
使用的公钥可用 here
答案 0 :(得分:1)
您的密钥由ASCII编码的PEM组成。为了能够读取密钥,您可能需要对PEM进行解码(基本上是64位解码中间的部分)。