feat: Crypt4GH support using LocalStorage #262
Merged
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.
Changes
Crypt4GH
support forLocalStorage
. The process is:private_key
andrecipient_public_key
.private_key
.recipient_public_key
.Storage
is significantly refactored, it now uses dynamic traits and some heap-allocated indirection. I think this was necesssary because otherwise there would be a large amount of less readable generic types on many structs inhtsget-storage
andhtsget-search
. This would be coupled with many more#[cfg(feature = "c4gh-experimental")]
flags, and I thought it would be best to reduce these.C4GHStorage
now wraps any otherStorageTrait
and decrypts the stream.A lot of this code is copied from the existing https://github.com/umccr/htsget-rs/tree/crypt4gh branch, except it's been tidied up and made a bit more generic so that it supports other storage interfaces, not just
UrlStorage
.I think a lot of the code under https://github.com/umccr/htsget-rs/blob/feat/crypt4gh-storage/htsget-storage/src/c4gh/edit.rs and https://github.com/umccr/htsget-rs/blob/feat/crypt4gh-storage/htsget-storage/src/c4gh/mod.rs belongs in the Crypt4GH-Rust repository eventually.