3c584be Fix invalid SSH key sync for Bitwarden 2026.5
📊 Changes
1 file changed (+62 additions, -10 deletions)
View changed files
📝src/db/models/cipher.rs (+62 -10)
📄 Description
Description
Fixes sync responses for invalid SSH key cipher data on Bitwarden 2026.5 clients.
SDK-backed clients expect SSH key cipher data to include string values for keyFingerprint, privateKey, and publicKey. Returning null for invalid SSH key data can make SDK/WASM deserialization fail before the user can edit or delete the bad item.
This changes invalid SSH key handling to return encrypted placeholder values for the mandatory SSH key fields instead of null, allowing clients to continue processing the cipher.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/dani-garcia/vaultwarden/pull/7308
**Author:** [@ix64](https://github.com/ix64)
**Created:** 6/6/2026
**Status:** 🔄 Open
**Base:** `main` ← **Head:** `fix/ssh-key-sync-2026-5`
---
### 📝 Commits (1)
- [`3c584be`](https://github.com/dani-garcia/vaultwarden/commit/3c584be7d09eaa0c15a405e08484b71468e11fa7) Fix invalid SSH key sync for Bitwarden 2026.5
### 📊 Changes
**1 file changed** (+62 additions, -10 deletions)
<details>
<summary>View changed files</summary>
📝 `src/db/models/cipher.rs` (+62 -10)
</details>
### 📄 Description
## Description
Fixes sync responses for invalid SSH key cipher data on Bitwarden 2026.5 clients.
SDK-backed clients expect SSH key cipher data to include string values for `keyFingerprint`, `privateKey`, and `publicKey`. Returning `null` for invalid SSH key data can make SDK/WASM deserialization fail before the user can edit or delete the bad item.
This changes invalid SSH key handling to return encrypted placeholder values for the mandatory SSH key fields instead of `null`, allowing clients to continue processing the cipher.
## Evidence
In `bitwarden/clients`, SSH key cipher type is `5`:
https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/enums/cipher-type.ts#L1-L7
The client API model defines `privateKey`, `publicKey`, and `keyFingerprint` as string fields:
https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/models/api/ssh-key.api.ts#L5-L17
The Bitwarden SDK SSH key view also models the decrypted fields as non-optional `String` values, and parsing `CipherSshKeyModel` requires all three encrypted fields:
https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#35
https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#89
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/dani-garcia/vaultwarden/pull/7308
Author: @ix64
Created: 6/6/2026
Status: 🔄 Open
Base:
main← Head:fix/ssh-key-sync-2026-5📝 Commits (1)
3c584beFix invalid SSH key sync for Bitwarden 2026.5📊 Changes
1 file changed (+62 additions, -10 deletions)
View changed files
📝
src/db/models/cipher.rs(+62 -10)📄 Description
Description
Fixes sync responses for invalid SSH key cipher data on Bitwarden 2026.5 clients.
SDK-backed clients expect SSH key cipher data to include string values for
keyFingerprint,privateKey, andpublicKey. Returningnullfor invalid SSH key data can make SDK/WASM deserialization fail before the user can edit or delete the bad item.This changes invalid SSH key handling to return encrypted placeholder values for the mandatory SSH key fields instead of
null, allowing clients to continue processing the cipher.Evidence
In
bitwarden/clients, SSH key cipher type is5:https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/enums/cipher-type.ts#L1-L7
The client API model defines
privateKey,publicKey, andkeyFingerprintas string fields:https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/models/api/ssh-key.api.ts#L5-L17
The Bitwarden SDK SSH key view also models the decrypted fields as non-optional
Stringvalues, and parsingCipherSshKeyModelrequires all three encrypted fields:https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#35
https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#89
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.