Set Bouncy Castle as optional feature in Gradle build#1006
Open
exceptionfactory wants to merge 1 commit intohierynomus:masterfrom
Open
Set Bouncy Castle as optional feature in Gradle build#1006exceptionfactory wants to merge 1 commit intohierynomus:masterfrom
exceptionfactory wants to merge 1 commit intohierynomus:masterfrom
Conversation
8c81fe2 to
8b2922a
Compare
8b2922a to
f58a17f
Compare
Owner
|
I'll keep this one on the backlog for a moment. There's a ton of other changes pending, let's get them out first. This might warrant a slightly bigger version jump. |
Contributor
Author
|
Thanks @hierynomus, I agree that this change has a larger potential impact and could warrant a major version adjustment. Revisiting this later after other incremental releases sounds good! |
- Added bouncyCastle feature for marking Bouncy Castle libraries as optional
f58a17f to
1512c6e
Compare
Contributor
Author
|
@hierynomus Do you have any additional thoughts on the feature variant approach proposed, making Bouncy Castle and optional dependency? If you would prefer to keep the current approach, I can close this one. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request assigns Bouncy Castle dependencies to the
bouncyCastlefeature variant in the Gradle build. Assigning these dependencies to a variant results in marking the libraries as optional dependencies in the published Maven configuration.This change builds on recent efforts to move away from and isolate use of the Bouncy Castle library throughout the project.
This could be considered a breaking change for consumers that rely on inclusion of Bouncy Castle as a transitive dependency and require features that Bouncy Castle provides.
Direct features include reading PEM key files encrypted using historical methods other than PKCS8, and reading PuTTY Key Version 3 files that require the Argon2 key derivation function. Indirect features that depend on the Bouncy Castle security provider include support for Ed25519 when running on Java 14 or earlier, and support for X25519 when running on Java 10 or earlier. All of these features will continue to work when Bouncy Castle dependencies are declared directly.
The alternative to this change is retaining the current dependency requirements, and requiring consumers to exclude the Bouncy Castle transitive dependencies.