v2.2.0: Allow to use multiple keys for a single secret (#2)
The entry key concept enables to have multiple keys for a single secret.
That supposed to replace the previous key concept, which was a single key for a
single secret.
The legacy key concept is still supported, but it is not recommended to use it
and it will be removed in the future.
The multiple keys concept is useful to share the same secret with multiple
users, and to be able to revoke access to a single user without affecting the
others.
At the moment the anyone who has access to the secret can add a new key to it.
- Introduced an entrykeymanager service.
- entrykeymanager now returns the Key Encryption Key (KEK) for Data Encryption
Key (DEK) on creation.
- Added an entry key generator endpoint.
- Shared parser codes have been implemented.
- Introduced a common interface for views.
- Implemented the view interface for entry creation.
- Updated entry delete to implement the views.View interface.
- Updated getentry to implement the views.View interface.
- Fixed an issue with finding keys.
- Refactored services to improve code organization and structure.
- Moved mocks to their respective packages.
- Added support for legacy encryption.
- Updated remaining reads of entry keys.
- Simplified test database and transaction initialization.
- Renamed entrymodel.UpdateAccessed to Use.
- Added a command to generate coverage.
- Improved EntryKeyManager and EntryManager tests.
- Added a coverage clean-up command to the Makefile.
- Handled database operation errors in entrykey tests.