有什么方法可以获取 SecKey 的密钥类型?
Is there any way to get the key type of a SecKey?
给定一个 SecKey,有什么方法可以推断它的类型(例如它是 kSecAttrKeyTypeRSA
还是 kSecAttrKeyTypeEC
)?
我看到了 SecKeyGetTypeID(),但我不清楚这个函数在哪个关键对象上运行,因为它不接受任何参数。
您可以从密钥中检索 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
}
给定一个 SecKey,有什么方法可以推断它的类型(例如它是 kSecAttrKeyTypeRSA
还是 kSecAttrKeyTypeEC
)?
我看到了 SecKeyGetTypeID(),但我不清楚这个函数在哪个关键对象上运行,因为它不接受任何参数。
您可以从密钥中检索 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
}