1
0
spogulis no https://github.com/maxgoedjen/secretive.git synced 2025-12-30 21:38:51 +01:00

Add capabilities.

Šī revīzija ir iekļauta:
Max Goedjen 2025-08-23 19:35:21 -07:00
vecāks 8c2f9c14cd
revīzija bfa7a3cd51
Šim parakstam datu bāzē netika atrasta zināma atslēga
2 mainīti faili ar 14 papildinājumiem un 1 dzēšanām

Parādīt failu

@ -12,6 +12,12 @@ extension SmartCard {
public let keySize: Int public let keySize: Int
public let requiresAuthentication: Bool = false public let requiresAuthentication: Bool = false
public let publicKey: Data public let publicKey: Data
public let capabilities: Set<KeyCapabilities>
public enum KeyCapabilities: Sendable {
case signature
case encryption
}
} }

Parādīt failu

@ -170,7 +170,14 @@ extension SmartCard.Store {
let publicKeySecRef = SecKeyCopyPublicKey(publicKeyRef)! let publicKeySecRef = SecKeyCopyPublicKey(publicKeyRef)!
let publicKeyAttributes = SecKeyCopyAttributes(publicKeySecRef) as! [CFString: Any] let publicKeyAttributes = SecKeyCopyAttributes(publicKeySecRef) as! [CFString: Any]
let publicKey = publicKeyAttributes[kSecValueData] as! Data let publicKey = publicKeyAttributes[kSecValueData] as! Data
return SmartCard.Secret(id: tokenID, name: name, algorithm: algorithm, keySize: keySize, publicKey: publicKey) var capabilities: Set<SmartCard.Secret.KeyCapabilities> = []
if ($0[kSecAttrCanSign] as? Bool) == true {
capabilities.insert(.signature)
}
if ($0[kSecAttrCanEncrypt] as? Bool) == true && ($0[kSecAttrCanDecrypt] as? Bool) == true {
capabilities.insert(.encryption)
}
return SmartCard.Secret(id: tokenID, name: name, algorithm: algorithm, keySize: keySize, publicKey: publicKey, capabilities: capabilities)
} }
state.secrets.append(contentsOf: wrapped) state.secrets.append(contentsOf: wrapped)
} }