如果kSecAttrIsPermanent设置为NO会发生什么?

时间:2014-02-06 13:22:25

标签: ios objective-c commoncrypto

在iOS上使用Apples kSecAttrIsPermanent时,libcommonCrypto.dylib属性的用法是什么?

Apples documentation说:

  

对应的值是CFBooleanRef类型并指示是否   此加密密钥将永久存储。


不将永久存储在钥匙串中的内容以及存储时间长短的原因是什么? (直到重启?直到应用关闭?直到应用程序被卸载?)

1 个答案:

答案 0 :(得分:8)

这是生成密钥时SecKeyGeneratePair内使用的参数。

来自Certificate, Key, and Trust Services Reference

  

kSecAttrIsPermanent - 如果此密钥存在且布尔值为true,则密钥或密钥对将添加到默认密钥链中。

在此上下文中,如果您提供此参数并且它为false,那么您将在内存中接收密钥,但它不会持久保存到密钥链(磁盘上)。在应用程序仍在运行时,它会持续很长时间,除非你自己坚持使用它。