From faed5514e28b5cc239786487e9c3773c1eb3a793 Mon Sep 17 00:00:00 2001 From: Max Goedjen Date: Sun, 7 Nov 2021 12:27:18 -0800 Subject: [PATCH] Add driver name when on macOS 12.0 (#223) --- SecretKit/SmartCard/SmartCardStore.swift | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/SecretKit/SmartCard/SmartCardStore.swift b/SecretKit/SmartCard/SmartCardStore.swift index 236ec0c..e56c862 100644 --- a/SecretKit/SmartCard/SmartCardStore.swift +++ b/SecretKit/SmartCard/SmartCardStore.swift @@ -9,7 +9,6 @@ extension SmartCard { public class Store: SecretStore { - // TODO: Read actual smart card name, eg "YubiKey 5c" @Published public var isAvailable: Bool = false public let id = UUID() public private(set) var name = NSLocalizedString("Smart Card", comment: "Smart Card") @@ -103,12 +102,22 @@ extension SmartCard.Store { private func loadSecrets() { guard let tokenID = tokenID else { return } - // Hack to read name if there's only one smart card - let slotNames = TKSmartCardSlotManager().slotNames - if watcher.nonSecureEnclaveTokens.count == 1 && slotNames.count == 1 { - name = slotNames.first! + + let fallbackName = NSLocalizedString("Smart Card", comment: "Smart Card") + if #available(macOS 12.0, *) { + if let driverName = watcher.tokenInfo(forTokenID: tokenID)?.driverName { + name = driverName + } else { + name = fallbackName + } } else { - name = NSLocalizedString("Smart Card", comment: "Smart Card") + // Hack to read name if there's only one smart card + let slotNames = TKSmartCardSlotManager().slotNames + if watcher.nonSecureEnclaveTokens.count == 1 && slotNames.count == 1 { + name = slotNames.first! + } else { + name = fallbackName + } } let attributes = [