有没有办法获取SecKey的密钥类型?

Ada*_*hns 2 keychain ios swift seckeyref

给定一个SecKey,有什么方法可以推断它的类型(例如是否是kSecAttrKeyTypeRSAkSecAttrKeyTypeEC)?

我看到SecKeyGetTypeID(),但我不清楚该函数对哪个关键对象进行操作,因为它不接受任何参数。

Mar*_*n R 5

您可以从密钥中检索kSecAttrKeyType并检查它是否是kSecAttrKeyTypeRSA(或kSecAttrKeyTypeEC)。示例(取自SwiftyRSA):

func isRSAKey(seckey: SecKey) -> Bool {
    guard let attributes = SecKeyCopyAttributes(seckey) as? [CFString: Any],
        let keyType = attributes[kSecAttrKeyType] as? String else {
            return false
    }

    let isRSA = keyType == (kSecAttrKeyTypeRSA as String)
    return isRSA
}
Run Code Online (Sandbox Code Playgroud)