Objective-C-RSA库在应用在后台时加密返回为空

Objective-C-RSA

 RSAEncryptor中使用了key chain。下面的方法中:

SecKeyRef keyRef = [RsaForSignature addPrivateKey:privKey];

在读取key chain中的值时,默认的是在应用未锁屏时可读取值。

所以应用在锁屏时, [RSAEncryptor encryptString: publicKey: ] 会返回空。

看代码,是把publicKey先存到了key chain中,再取出来。不知道为什么要这么作。

看其它的三方RSA库,并没有用到key chain。

 

后来发现之所以用key chain是下面的原因:

Security库只支持把二进制格式的der公钥转为SecKeyRef。

要使用pem格式的公钥(也就是一串字符串),正好keychain有把pem的公钥转为SecKeyFef的能力。

用openssl可以把pem转为der。

参考:

https://www.jianshu.com/p/ee248bd3ee65

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值