Есть ли способ получить ключ типа SecKey? - PullRequest
0 голосов
/ 29 октября 2019

Учитывая SecKey , есть ли способ вывести его тип (например, kSecAttrKeyTypeRSA или kSecAttrKeyTypeEC)?

Я вижу SecKeyGetTypeID () , но мне неясно, над каким ключевым объектом эта функция работает, так как она не принимает параметров.

1 Ответ

2 голосов
/ 30 октября 2019

Вы можете извлечь 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
}
...