Imagine a scenario:
- Alice and Bob want to use a platform where they log in using email and password. The platform can be accessed on desktop and mobile devices.
- Alice would like to store encrypted information in a database or send encrypted files to an S3 server
- Bob will be able to fetch this encrypted information (data + files) if the server allows to (Alice granted Bob access to this data)
- Both Bob and Alice should be able to decrypt the information (data + files) on his side
Currently, I'm playing around to understand whether a design like this is possible, but in the upcoming future, I'll need to have this implemented. I'd be grateful if somebody could provide a "simple" answer, and maybe recommend a way to search for providers that have far more experience than I do (security is no joke), and could implement code for such a solution.