CERIT-SC / funnel-gdi

MIT License
1 stars 3 forks source link

Built-in Htsget and Crypt4gh for the HTSGET storage #12

Closed mrtamm closed 2 months ago

mrtamm commented 3 months ago

Here is the next step for supporting the HTSGET storage: \ support for the Htsget protocol and Crypt4gh key-pair generation and content decryption is baked into the Funnel source code.

After this change, the Funnel environment does not depend on other programs for invoking content download over Htsget protocol. Therefore, this solution is more reliable.

Summary of changes:

  1. Implementation for downloading content as described in Htsget API v1.3.0 and the architecture supporting Crypt4gh
  2. Implementation for parsing and decrypting Crypt4gh content
  3. Implementation for generating or loading existing Crypt4gh key-pair (preferred order: explicit key-file-paths, ./.c4gh/key[.pub], and ~/.c4gh/key[.pub]) as described here
  4. Support for standard environment variables: C4GH_PASSPHRASE, C4GH_SECRET_KEY, and C4GH_PUBLIC_KEY (the latter is a new variable name, yet optional)
  5. Removed external Htsget and Crypt4gh implementations from the Docker images.
  6. HTSGETConfig: removed SendPublicKey (as public key is always sent), and added Timeout parameter.
  7. Added unit-tests for Crypt4gh keys and decryption related functionalities
  8. Updated the Htsget documentation page (in Funnel) with the new info.