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

feat: externalize config #4

Merged
merged 1 commit into from
Sep 9, 2024
Merged

feat: externalize config #4

merged 1 commit into from
Sep 9, 2024

Conversation

svandenakker
Copy link
Member

This commit adds the ability for a user to specify the algorithm/mode of operation/padding directly in their application.yml. This is pretty flexible and allows the user easy access to many JCA "transformations" without them needing to write any code. A new, incompatible format for the encrypted binary blob is introduced to achieve this. The versioned format allows us to make continuous improvements to it without rendering all previous outputs undecryptable. Provisions were made for version-1 outputs: these can still be decrypted. When migrating from version 1 to version 2, legacy key versions should be marked as such in the config. These key versions are then only allowed to decrypt: no new encryptions can be performed with them.

README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
src/main/java/com/bol/crypt/KeyVersion.java Show resolved Hide resolved
src/main/java/com/bol/crypt/KeyVersion.java Show resolved Hide resolved
@svandenakker svandenakker force-pushed the sra/externalize-config branch from 1a8f1af to 9570511 Compare September 9, 2024 14:29
This commit adds the ability for a user to specify the algorithm/mode of
operation/padding directly in their `application.yml`. This is pretty
flexible and allows the user easy access to many JCA "transformations"
without them needing to write any code. A new, incompatible format for
the encrypted binary blob is introduced to achieve this. The versioned
format allows us to make continuous improvements to it without rendering
all previous outputs undecryptable. Provisions were made for version-1
outputs: these can still be decrypted. When migrating from version 1 to
version 2, legacy key versions should be marked as such in the config.
These key versions are then only allowed to decrypt: no new encryptions
can be performed with them.
@svandenakker svandenakker force-pushed the sra/externalize-config branch from 9570511 to 87bf653 Compare September 9, 2024 14:33
@svandenakker svandenakker merged commit 87bf653 into master Sep 9, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants