Given a SecKey, is there any way to infer its type (e.g. whether it is kSecAttrKeyTypeRSA
or kSecAttrKeyTypeEC
)?
I see SecKeyGetTypeID(), but it is unclear to me what key object this function operates on as it accepts no parameters.
You can retrieve the kSecAttrKeyType
from the key and check if it is kSecAttrKeyTypeRSA
(or kSecAttrKeyTypeEC
). Example (taken from 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
}