From e9d0b6eb2e026a90787a661d9d0baa04f2ab668c Mon Sep 17 00:00:00 2001 From: Mariotaku Date: Mon, 30 Jan 2023 19:32:59 +0900 Subject: [PATCH 1/2] Treat empty passphrase as no passphrase --- src-tauri/Cargo.lock | 6 +++--- src-tauri/Cargo.toml | 4 ++-- src-tauri/src/device_manager/privkey.rs | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 0a321787..24efdb07 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2616,7 +2616,7 @@ dependencies = [ [[package]] name = "russh" version = "0.35.0-beta.9" -source = "git+https://github.com/mariotaku/russh?branch=rsa-hash-override#38d405df3d8a7c4f872152f12b77b2408ec0507a" +source = "git+https://github.com/mariotaku/russh?rev=42f0e2c#42f0e2c02e17d18b7ba9f0d19e3ea89cf10fdb8c" dependencies = [ "aes", "aes-gcm", @@ -2651,7 +2651,7 @@ dependencies = [ [[package]] name = "russh-cryptovec" version = "0.7.0" -source = "git+https://github.com/mariotaku/russh?branch=rsa-hash-override#38d405df3d8a7c4f872152f12b77b2408ec0507a" +source = "git+https://github.com/mariotaku/russh?rev=42f0e2c#42f0e2c02e17d18b7ba9f0d19e3ea89cf10fdb8c" dependencies = [ "libc", "winapi", @@ -2660,7 +2660,7 @@ dependencies = [ [[package]] name = "russh-keys" version = "0.23.0-beta.1" -source = "git+https://github.com/mariotaku/russh?branch=rsa-hash-override#38d405df3d8a7c4f872152f12b77b2408ec0507a" +source = "git+https://github.com/mariotaku/russh?rev=42f0e2c#42f0e2c02e17d18b7ba9f0d19e3ea89cf10fdb8c" dependencies = [ "aes", "bcrypt-pbkdf", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 96b54b4f..2e9a6a5c 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -23,8 +23,8 @@ env_logger = "0.10.0" rand = "0.8.5" vt100 = "0.15.1" openssl = { version = "0.10.45", features = ["vendored"] } -russh = { git = "https://github.com/mariotaku/russh", branch = "rsa-hash-override", features = ["openssl"] } -russh-keys = { git = "https://github.com/mariotaku/russh", branch = "rsa-hash-override", features = ["openssl"] } +russh = { git = "https://github.com/mariotaku/russh", rev = "42f0e2c", features = ["openssl"] } +russh-keys = { git = "https://github.com/mariotaku/russh", rev = "42f0e2c", features = ["openssl"] } tokio = "1.24.2" uuid = { version = "1.2.2", features = ["v1"] } reqwest = "0.11.14" diff --git a/src-tauri/src/device_manager/privkey.rs b/src-tauri/src/device_manager/privkey.rs index b0d1b2fc..b13c8392 100644 --- a/src-tauri/src/device_manager/privkey.rs +++ b/src-tauri/src/device_manager/privkey.rs @@ -10,6 +10,7 @@ impl PrivateKey { passphrase: Option<&str>, hash: Option, ) -> Result { + let passphrase = passphrase.filter(|s| !s.is_empty()); return match self { PrivateKey::Path { name } => { load_secret_key_with_hash(ssh_dir().unwrap().join(name), passphrase.clone(), hash) From 9831801fe7607b3fce03045581aad09c589f9a6f Mon Sep 17 00:00:00 2001 From: Mariotaku Date: Mon, 30 Jan 2023 19:56:06 +0900 Subject: [PATCH 2/2] improved error display for message dialog --- src/app/add-device/add-device.component.ts | 3 ++- .../message-dialog/message-dialog.component.html | 11 ++++++++--- .../message-dialog/message-dialog.component.ts | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/app/add-device/add-device.component.ts b/src/app/add-device/add-device.component.ts index 4aabe91f..a2120910 100644 --- a/src/app/add-device/add-device.component.ts +++ b/src/app/add-device/add-device.component.ts @@ -106,7 +106,8 @@ export class AddDeviceComponent { private async confirmVerificationFailure(device: NewDevice, e: Error): Promise { const ref = MessageDialogComponent.open(this.modalService, { title: 'Verification Failed', - message: 'Add this device anyway?', + message: `Add ${device.name} anyway?`, + error: e, positive: 'OK', negative: 'Cancel', }); diff --git a/src/app/shared/components/message-dialog/message-dialog.component.html b/src/app/shared/components/message-dialog/message-dialog.component.html index 678244ae..12462982 100644 --- a/src/app/shared/components/message-dialog/message-dialog.component.html +++ b/src/app/shared/components/message-dialog/message-dialog.component.html @@ -4,10 +4,15 @@ diff --git a/src/app/shared/components/message-dialog/message-dialog.component.ts b/src/app/shared/components/message-dialog/message-dialog.component.ts index 32400f57..74f2629c 100644 --- a/src/app/shared/components/message-dialog/message-dialog.component.ts +++ b/src/app/shared/components/message-dialog/message-dialog.component.ts @@ -24,6 +24,7 @@ export class MessageDialogComponent implements AfterViewInit, MessageDialogConfi alternative?: string; positiveStyle?: ButtonStyle = 'primary'; messageExtras?: Record; + error?: Error; @ViewChild('messageComponent', {read: ViewContainerRef}) messageComponent?: ViewContainerRef; @@ -83,5 +84,6 @@ export interface MessageDialogConfig { negative?: string | null; alternative?: string | null; positiveStyle?: ButtonStyle; + error?: Error; messageExtras?: { [keys: string]: any }; }