func generateSecureKeyPair() -> Bool {
var pubKey, privKey: SecKey?
let privateKeyParams: [String: AnyObject] = [
kSecAttrIsPermanent as String: true as AnyObject,
kSecAttrApplicationTag as String: KeyTag.PrivateKey.rawValue as AnyObject
]
// private key parameters
let publicKeyParams: [String: AnyObject] = [
kSecAttrIsPermanent as String: true as AnyObject,
kSecAttrApplicationTag as String: KeyTag.PublicKey.rawValue as AnyObject
]
// global parameters for our key generation
let parameters: [String: AnyObject] = [
kSecAttrKeyType as String: kSecAttrKeyTypeRSA,
kSecAttrKeySizeInBits as String: kKeySize as AnyObject,
kSecPublicKeyAttrs as String: publicKeyParams as AnyObject,
kSecPrivateKeyAttrs as String: privateKeyParams as AnyObject,
]
let status = SecKeyGeneratePair(parameters as CFDictionary, &pubKey, &privKey)
print("keypair status >>> \(status)")
if status != errSecSuccess {
return false
}
return true
}
我在可可触摸框架中使用 SecKeyGeneratePair 生成 publicKey 和 privateKey。
但是当我尝试测试该方法时,它总是返回
操作系统状态 -50
我什至无法添加钥匙串共享权利,因为它在框架中不支持。