ios - 有没有办法获取SecKey的 key 类型?

标签 ios swift keychain seckeyref

给定 SecKey ,有什么方法可以推断其类型(例如,它是 kSecAttrKeyTypeRSA 还是 kSecAttrKeyTypeEC)?

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

最佳答案

您可以从 key 中检索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
}

关于ios - 有没有办法获取SecKey的 key 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58615077/

相关文章:

ios - 从重叠 View 触发 UITapGestureRecognizers

ios - 通过 iOS 中的监听器检查 Firebase 当前登录用户

iOS,钥匙串(keychain) : Wrong passcode output

objective-c - 钥匙串(keychain)项的默认 kSecAttrAccessible 值?

ios - Swift SceneKit 照明和影响发射纹理

ios - UITextField强制重绘

ios - 将 block 中异步接收的 JSON 对象传递给实例变量 - 在 iOS6 上使用 AFNetworking

ios - View Controller 中的嵌入式 UICollectionView 未被调用 Swift

ios - 如何在 swift 3 中使用 UIPrintInteractionController.print 设置要打印的页数?

objective-c - OS X 钥匙串(keychain) : 32 to 64 bit