Swift中的RSA公钥加密

时间:2018-01-12 12:19:45

标签: ios swift encryption cryptography

我将项目中包含的公钥作为字节数组。我想用它来加密密码。当我尝试从字节数组创建公钥时,我得到以下给定的错误。

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

1 个答案:

答案 0 :(得分:1)

您的密钥由ASCII编码的PEM组成。为了能够读取密钥,您可能需要对PEM进行解码(基本上是64位解码中间的部分)。