diff --git a/README.md b/README.md index 0a6846f..f21d954 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,27 @@ # Jenkins Bouncy Castle API Plugin -[JENKINS-35291](https://issues.jenkins-ci.org/browse/JENKINS-35291) +[![Jenkins Plugin](https://img.shields.io/jenkins/plugin/v/bouncycastle-api.svg)](https://plugins.jenkins.io/bouncycastle-api) +[![GitHub release](https://img.shields.io/github/release/jenkinsci/bouncycastle-api-plugin.svg?label=changelog)](https://github.com/jenkinsci/bouncycastle-api-plugin/releases/latest) +[![Jenkins Plugin Installs](https://img.shields.io/jenkins/plugin/i/bouncycastle-api.svg?color=blue)](https://plugins.jenkins.io/bouncycastle-api) + +This plugin provides a stable API to Bouncy Castle related tasks. +Plugins using Bouncy Castle should depend on this plugin and not directly on Bouncy Castle. + +## Implementation + +The implementation of this plugin does not expose any classes from Bouncy Castle, only JCA, allowing plugins to not depend on the specifics of Bouncy Castle. + +Later some other actions would have to be taken in order to fully solve this situation, like having one version of the plugin for each version of Bouncy Castle, etc. + +## Release notes + +* See [GitHub releases](https://github.com/jenkinsci/bouncycastle-api-plugin/releases/latest) for recent versions +* See the [changelog archive](./docs/CHANGELOG.md) for version `2.17` and before + +## Motivation Dependency to multiple Bouncy Castle versions from jenkins core and plugins is causing problems due to the binary incompatibility between versions, the different supported algorithms, etc. +See [JENKINS-35291](https://issues.jenkins-ci.org/browse/JENKINS-35291) for the full context. On Jenkins core 1.648, Bouncy Castle was bumped from version `1.47` to `1.54` as a result of a change in ``instance-identity`` module * ``instance-identity-module`` bumped Bouncy Castle from `1.47` to `1.54`: [pom.xml (v 1.4)](https://github.com/jenkinsci/instance-identity-module/blob/instance-identity-1.4/pom.xml#L32) -> [pom.xml (v 1.5.1)](https://github.com/jenkinsci/instance-identity-module/blob/instance-identity-1.5.1/pom.xml#L33) @@ -24,35 +43,4 @@ A possible solution to this problem would to create a plugin (this plugin) from * Register BC as a JVM security provider in order to allow other plugins to use JCA API with BC algorithms. * Provide an API to do common tasks like PEM Encoding/Decoding ensuring its stability among BC versions. -The implementation of this plugin does not expose any classes from BC, only JCA, allowing plugins to not depend on the specifics of BC. - -Later some other actions would have to be taken in order to fully solve this situation, like having one version of the plugin for each version of BC, etc. - -This plugin provides an stable API to Bouncy Castle related tasks. Plugins using Bouncy Castle should depend on this plugin and not directly on Bouncy Castle. See also this [plugin's wiki page][wiki] - - -# Environment - -The following build environment is required to build this plugin - -* `java-1.6` and `maven-3.0.5` - -# Build - -To build the plugin locally: - - mvn clean verify - -# Release - -To release the plugin: - - mvn release:prepare release:perform -B - -# Test local instance - -To test in a local Jenkins instance - - mvn hpi:run - [wiki]: http://wiki.jenkins-ci.org/display/JENKINS/Bouncy+Castle+API+Plugin diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000..ee4cc1f --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,99 @@ +# Release Notes (archive) + +### New versions + +See [GitHub Releases](https://github.com/jenkinsci/bouncycastle-api-plugin/releases) for recent versions. + +### 2.17 + +Release date: (Aug 21, 2018) + +- [JENKINS-53074](https://issues.jenkins-ci.org/browse/JENKINS-53074) - + Bouncy Castle library (bcpkix-jdk15on) updated to 1.60. +- Jenkins 2.60.3+ and Java 8 are now required. + +### 2.16.3 + +Release date: (Jun 6, 2018) + +- [JENKINS-50915](https://issues.jenkins-ci.org/browse/JENKINS-50915) - + Bouncy Castle library (bcpkix-jdk15on) updated to 1.59 + +### 2.16.2 + +Release date: (Jul 24, 2017) + +- [JENKINS-45621](https://issues.jenkins-ci.org/browse/JENKINS-45621) - + Bouncy Castle library (bcpkix-jdk15on) updated to 1.57 + +### 2.16.1 + +Release date: (Apr 4, 2017) + +- [JENKINS-41978](https://issues.jenkins-ci.org/browse/JENKINS-41978) - + Fixed `NullPointerException` when a PEM file couldn't be read. +- Reduce startup log level from `INFO` to `FINE`. + +### 2.16.0 + +Release date: (Jul 27, 2016) + +**MAJOR IMPROVEMENT:** [JENKINS-36923](https://issues.jenkins-ci.org/browse/JENKINS-36923) +- Move bcpkix dependency from jenkins-war to bouncycastle-api plugin. +*Requires Jenkins 2.16 or newer*.  + +### 1.648.3 + +Release date: (Jun 17, 2016) + +*Bugfix*: [JENKINS-36035](https://issues.jenkins-ci.org/browse/JENKINS-36035) - Register +Bouncy Castle before any plugin is started + +### 1.648.2 + +Release date: (Jun 15, 2016) + +*Improvement*: [JENKINS-35696](https://issues.jenkins-ci.org/browse/JENKINS-35696) -  +Provide a mechanism to register Bouncy Castle on the build agents.  +Registration can be performed by calling `InstallBouncyCastleJCAProvider.on()` + +### 1.648.1 + +Release date: (Jun 14, 2016) + +*Bugfix*: [JENKINS-35661](https://issues.jenkins-ci.org/browse/JENKINS-35661) - When +reading PCKS8 PrivateKey it should be possible to obtain a KeyPair with `toKeyPair()` + +### 1.648 + +Release date: (Jun 8, 2016) + +Release for Jenkins versions \>= 1.648 with Bouncy Castle 1.54 + +### 1.0.3 + +Release date: (Jun 17, 2014) + +*Bugfix*: [JENKINS-36035](https://issues.jenkins-ci.org/browse/JENKINS-36035) -  +Register Bouncy Castle before any plugin is started + +### 1.0.2 + +Release date: (Jun 15, 2014) + +*Improvement*: [JENKINS-35696](https://issues.jenkins-ci.org/browse/JENKINS-35696) -  +Provide a mechanism to register Bouncy Castle on the build agents.  +Registration can be performed by calling `InstallBouncyCastleJCAProvider.on()` + +### 1.0.1 + +Release date: (Jun 14, 2016) + +*Bugfix*: [JENKINS-35661](https://issues.jenkins-ci.org/browse/JENKINS-35661){.external-link} - When +reading PCKS8 PrivateKey it should be possible to obtain a KeyPair with `toKeyPair()` + +### 1 + +Release date: (Jun 7, 2016) + +First release of the API supporting Jenkins versions \>= 1.609 and \< 1.648 with BC 1.47 diff --git a/pom.xml b/pom.xml index a5dc83d..2229266 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ This plugin provides an stable API to Bouncy Castle related tasks. - http://wiki.jenkins-ci.org/display/JENKINS/Bouncy+Castle+API+Plugin + https://github.com/jenkinsci/bouncycastle-api-plugin The MIT license