Skip to content
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

Write unit (mostly) functional (some) and end-to-end (very few) tests to clearly specify the encryption future-proofing behaviour #821

Closed
gkc opened this issue Nov 27, 2022 · 5 comments
Assignees
Labels
3 SP 3 Story Points - 1 Day Small enhancement New feature or request

Comments

@gkc
Copy link
Contributor

gkc commented Nov 27, 2022

Is your feature request related to a problem? Please describe.

(Part of the encryption future-proofing project)
Having done design and an implementation spike, now need to write all of the test cases which capture and verify detailed design intent

Describe the solution you'd like

A set of tests which embody the "We need to ..." parts of the following:

  • We currently support one single type of public-private encryption keypair (RSA). We need to support ECC and likely others in the future
  • We currently encrypt symmetric keys in one way only, by using RSA asymmetric keys. We need to explicitly store some metadata about the asymmetric key that was used to encrypt the symmetric key, and the specific encryption algorithm used (e.g. there are multiple different ECC algorithms and curves), along with the encrypted key itself
  • We currently support one single type of symmetric key - AES-256. We need to support others.
  • We currently support one single type of encryption - AES-256 using the CTR cipher mode. We need to support others.
  • We currently support having only one public-private encryption keypair. We need to support having more than one - for migration purposes if nothing else.
  • We currently support @alice having only one single shared symmetric encryption key for sharing data with @bob, and @bob likewise having only one single shared symmetric encryption key for sharing data with @alice. We need to support each atSign sharing as many symmetric encryption keys as they like with another atSign, and choosing to encrypt data with any of those shared symmetric encryption keys they wish

Describe alternatives you've considered

No response

Additional context

See #785

@gkc
Copy link
Contributor Author

gkc commented Nov 28, 2022

Marked urgent as it is the next task for #785 which is urgent

@gkc gkc added the 5 SP 5 Story Points - 3 Days Medium label Nov 28, 2022
@ksanty ksanty added the PR51 label Nov 29, 2022
@gkc
Copy link
Contributor Author

gkc commented Dec 12, 2022

Some progress in PR51. Expect to complete this ticket and the full implementation in PR52

@gkc gkc added 3 SP 3 Story Points - 1 Day Small and removed Urgent Urgent labels Dec 12, 2022
@ksanty ksanty added PR52 and removed 5 SP 5 Story Points - 3 Days Medium labels Dec 12, 2022
@gkc gkc added 5 SP 5 Story Points - 3 Days Medium and removed 3 SP 3 Story Points - 1 Day Small PR51 PR52 labels Jan 9, 2023
@gkc
Copy link
Contributor Author

gkc commented Jan 9, 2023

Implementation is largely complete (in theory); but little progress in PR52 on completing the automated tests to verify it all. Moving to PR53, it'll be between 5 and 8 SP effort to finish off the tests and deal with whatever bugs I find.

@gkc gkc added 8 SP 8 Story Points - 5 Days Large and removed 5 SP 5 Story Points - 3 Days Medium labels Jan 9, 2023
@ksanty ksanty added the PR53 label Jan 9, 2023
@gkc
Copy link
Contributor Author

gkc commented Jan 23, 2023

Some progress in PR53 but still incomplete due to other priorities, most notably APKAM draft detailed design

@gkc gkc added 3 SP 3 Story Points - 1 Day Small and removed 8 SP 8 Story Points - 5 Days Large PR53 labels Jan 23, 2023
@gkc
Copy link
Contributor Author

gkc commented Feb 6, 2023

Complete. Tweaking implementations now to verify zero backwards compatibility impact, getting PRs ready / approved / merged

@gkc gkc closed this as completed Feb 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 SP 3 Story Points - 1 Day Small enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants