added privateKeyID to select privatekeys in Host

added label to Keypair to return an approriate label
added ui to display keys from KeyManager
This commit is contained in:
neon443
2025-07-01 19:27:41 +01:00
parent 65eef7f29e
commit ad8e41762a
3 changed files with 25 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ protocol HostPr: Codable, Identifiable, Equatable, Hashable {
var password: String { get set }
var publicKey: Data? { get set }
var privateKey: Data? { get set }
var privateKeyID: UUID? { get set }
var passphrase: String { get set }
var key: String? { get set }
}
@@ -34,6 +35,7 @@ struct Host: HostPr {
var password: String
var publicKey: Data?
var privateKey: Data?
var privateKeyID: UUID?
var passphrase: String
var key: String?

View File

@@ -30,6 +30,14 @@ struct Keypair: KeypairProtocol {
var privateKey: Data
var passphrase: String = ""
var label: String {
if name.isEmpty {
return openSshPubkey
} else {
return name
}
}
var openSshPubkey: String {
String(data: KeyManager.makeSSHPubkey(self), encoding: .utf8) ?? "OpenSSH key format error"
}

View File

@@ -29,7 +29,21 @@ struct KeyManagerView: View {
Section() {
ForEach(keyManager.keypairs) { kp in
Text(kp.openSshPubkey)
NavigationLink {
KeyDetailView(hostsManager: hostsManager, keypair: kp)
} label: {
Image(systemName: "key")
Text(kp.label)
Spacer()
Text(kp.type.description)
}
.swipeActions(edge: .trailing) {
Button(role: .destructive) {
} label: {
Label("Delete", systemImage: "trash")
}
}
}
}