mirror of
https://github.com/neon443/ShhShell.git
synced 2026-03-11 13:26:16 +00:00
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:
@@ -19,6 +19,7 @@ protocol HostPr: Codable, Identifiable, Equatable, Hashable {
|
|||||||
var password: String { get set }
|
var password: String { get set }
|
||||||
var publicKey: Data? { get set }
|
var publicKey: Data? { get set }
|
||||||
var privateKey: Data? { get set }
|
var privateKey: Data? { get set }
|
||||||
|
var privateKeyID: UUID? { get set }
|
||||||
var passphrase: String { get set }
|
var passphrase: String { get set }
|
||||||
var key: String? { get set }
|
var key: String? { get set }
|
||||||
}
|
}
|
||||||
@@ -34,6 +35,7 @@ struct Host: HostPr {
|
|||||||
var password: String
|
var password: String
|
||||||
var publicKey: Data?
|
var publicKey: Data?
|
||||||
var privateKey: Data?
|
var privateKey: Data?
|
||||||
|
var privateKeyID: UUID?
|
||||||
var passphrase: String
|
var passphrase: String
|
||||||
var key: String?
|
var key: String?
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,14 @@ struct Keypair: KeypairProtocol {
|
|||||||
var privateKey: Data
|
var privateKey: Data
|
||||||
var passphrase: String = ""
|
var passphrase: String = ""
|
||||||
|
|
||||||
|
var label: String {
|
||||||
|
if name.isEmpty {
|
||||||
|
return openSshPubkey
|
||||||
|
} else {
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var openSshPubkey: String {
|
var openSshPubkey: String {
|
||||||
String(data: KeyManager.makeSSHPubkey(self), encoding: .utf8) ?? "OpenSSH key format error"
|
String(data: KeyManager.makeSSHPubkey(self), encoding: .utf8) ?? "OpenSSH key format error"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,21 @@ struct KeyManagerView: View {
|
|||||||
|
|
||||||
Section() {
|
Section() {
|
||||||
ForEach(keyManager.keypairs) { kp in
|
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")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user