- 
                Notifications
    You must be signed in to change notification settings 
- Fork 20
[BEEEP] Update bitwarden-ssh RustCrypto dependencies, fixing imports of various SSH keys #536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| 
 Great job! No new security vulnerabilities introduced in this pull request | 
| Claude finished @quexten's task —— View job Comprehensive Code ReviewI've completed a thorough review of PR #536, which updates bitwarden-ssh RustCrypto dependencies to RC releases. Summary of ChangesThis PR upgrades the  
 Key improvements: 
 Critical IssuesNone identified. The changes are well-structured and the updated dependencies address legitimate security and functionality issues. Security Implications✅ Positive: 
 RC dependency pinning strategy (click to expand)The PR pins dependencies to specific RC versions (using  
 Implications: 
 Recommendation: Add a tracking issue or TODO comment in the code noting this temporary divergence and when it should be reconciled. Suggested Improvements📝 Documentation & Tracking
 # TEMPORARY: These dependencies use RC versions ahead of the workspace.
# When workspace dependencies are ready to upgrade, unpin these and use
# workspace versions. See: [link to tracking issue if one exists]
block-padding = { version = "=0.4.0-rc.4" }
ed25519 = { version = "3.0.0-rc.1", features = ["pkcs8"] }
# ... etc🎨 Code Quality
 pkcs8::PrivateKeyInfo::<(), (), ()>::PEM_LABEL => import_pkcs8_key(encoded_key, None),
pkcs8::EncryptedPrivateKeyInfo::<()>::PEM_LABEL => import_pkcs8_key(This appears to be a requirement from the updated  
 let rk: RsaPrivateKey = keypair
    .try_into()
    .map_err(|_| SshKeyExportError::KeyConversion)?;This removes the previous manual  🧪 Testing
 
 | 
| Codecov Report❌ Patch coverage is  
 Additional details and impacted files@@            Coverage Diff             @@
##             main     #536      +/-   ##
==========================================
- Coverage   78.70%   78.66%   -0.04%     
==========================================
  Files         296      296              
  Lines       30500    30504       +4     
==========================================
- Hits        24005    23997       -8     
- Misses       6495     6507      +12     ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
 | 

🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-27518
Fixes:
bitwarden/clients#17028
bitwarden/clients#14076
📔 Objective
Updates the
bitwarden-sshdependencies torcreleases from RustCrypto. This allows us to:It also replaces the RSA crate that has a vulnerability (timing attack) - though, it is unlikely that this actually affects import / was abusable.
RSA key generation test vectors are broken because the underlying RSA generation algorithm changed with rustcrypto's massive re-implementation of RSA, hence new test keys are provided.
Note: This pins the dependencies to be different from the workspace crates, as those are not yet ready to be updated. Eventually we will update those bit-by-bit too and then drop the dependency pinning.
⏰ Reminders before review
team
🦮 Reviewer guidelines
:+1:) or similar for great changes:memo:) or ℹ️ (:information_source:) for notes or general info:question:) for questions:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmedissue and could potentially benefit from discussion
:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes