2

SecKeyが与えられた場合、そのタイプを推測する方法はありますか (たとえば、それがkSecAttrKeyTypeRSAか かkSecAttrKeyTypeEC)?

SecKeyGetTypeID()が表示されますが、パラメーターを受け入れないため、この関数がどのキー オブジェクトで動作するかは不明です。

4

1 に答える 1

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
}
于 2019-10-30T17:51:14.317 に答える