[PM-18104] Implement generic key decryption in KeyStoreContext #152
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-18104
📔 Objective
Expanded a bit a POC I had to make all the key encryption and decryption methods in KeyStore generic, through the use of a
ContextHasKeys
trait that ensures the store knows how to handle each key type.I've had to introduce a trait called
KeyBytes
to deal with how to parse each key from bytes and convert them to bytes, initially I planned to enforce that keys had aTryFrom<Vec<u8>>
andTryInto<Vec<u8>>
, but hit some errors with the trait solver. I'll see if there's a better way to do it, maybe Encodable/Decodable from #142?This is using an associated type bound, which would require us to bump MSRV to 1.79Fixed it in ce39bca⏰ 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