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

Set Bouncy Castle as optional feature in Gradle build #1006

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

exceptionfactory
Copy link
Contributor

This pull request assigns Bouncy Castle dependencies to the bouncyCastle feature 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.

- Added bouncyCastle feature for marking Bouncy Castle libraries as optional
@exceptionfactory exceptionfactory force-pushed the bouncy-castle-feature-1 branch from 8c81fe2 to 8b2922a Compare March 20, 2025 04:24
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.

1 participant