Commit Graph

287 Commits

Author SHA1 Message Date
Shams Asari
0091807c2f ENT-11101: Fix all crypto issues introduced by Java 17 upgrade
The various crypto tests that were previously ignored have been re-enabled.

The abandoned i2p EdDSA library has been replaced with native support that was added in Java 15.

Java 17 (via the `SunEC` provider) does not support the secp256k1 curve (one of the two ECDSA curves supported in Corda). This would not normally have been an issue as secp256k1 is already taken care of by Bouncy Castle. However, this only works if the `Crypto` API is used or if `”BC”` is explicitly specified as the provider (e.g. `Signature.getInstance(“SHA256withECDSA”, “BC”)`). If no provider is specified, which is what is more common, and actually what the Java docs recommend, then this doesn’t work as the `SunEC` provider is selected. To resolve this, a custom provider was created, installed just in front of `SunEC`, which “augments” `SunEC` by delegating to Bouncy Castle if keys or parameters for secp256k1 are encountered.

`X509Utilities.createCertificate` now calls `X509Certificate.verify()` to verify the created certificate, rather than using the Bouncy Castle API. This is more representative of how certificates will be verified (e.g. during SSL handshake) and weeds out other issues (such as unsupported curve error for secp256k1).

`BCCryptoService` has been renamed to `DefaultCryptoService` as it no longer explicitly uses Bouncy Castle but rather uses the installed security providers. This was done to fix a failing test. Further, `BCCryptoService` was already relying on the installed providers in some places.

The hack to get Corda `SecureRandom` working was also resolved. Also, as an added bonus, tests which ignored `SPHINCS256_SHA256` have been reinstated.

Note, there is a slightly inconsistency between how EdDSA and ECDSA keys are handled (and also RSA). For the later, Bouncy Castle is preferred, and methods such as `toSupportedKey*` will convert any JDK class to Bouncy Castle. For EdDSA the preference is the JDK (`SunEC`). However, this is simply a continuation of the previous preference of the i2p library over Bouncy Castle.
2024-03-04 13:29:49 +00:00
Adel El-Beik
4031c28947
ENT-11502: Upgrade platform version to 140. (#7674) 2024-03-04 12:24:15 +00:00
Shams Asari
8840710fab ENT-11521: Upgraded to latest log4j to resolve getCallerClass warning
"WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance." warning was being caused by log4j. Latest version fixes this issue.
2024-03-01 13:53:32 +00:00
Balwant Kothari
b6007625f8
ENT-11113 Upgrading mockito kotlin version (#7639)
* ENT-11113 Removing test case that is not relevate with Kotlin 1.9.0

* ENT-11113 Upgrade mockito kotlin version
2024-01-03 18:28:16 +00:00
Shams Asari
406f7ff292
ENT-11056: Compile the external verifier using Kotlin 1.2 (#7622)
This requires Kotlin 1.2 versions of core and serialization (core-1.2 and serialization-1.2 respectively), which are just "shell" modules and which compile the existing source code with Kotlin 1.2. The 1.2 plugin does not work with the current version of Gradle and so the 1.2 compiler has to be called directly.

Now with two versions of Kotlin in the code base, each module needs to have its version manually specified to ensure a clean separation. Otherwise, the default Kotlin version can override 1.2 when needed.

Some of the code was tidied-up or improved to enable it to be cross-compiled. For post-1.2 APIs being used, they have been copied into core-1.2 with the same method signatures. OpenTelemetryComponent was moved to node-api, along with the dependency, to avoid also having a 1.2 version for the opentelemetry module.
2024-01-02 17:02:20 +00:00
Balwant Kothari
74ca2c6734
ENT-10560 JDK 17 Test Cases Fixes (#7598)
* Updated mockito version and removed ignored annotation to relevant test cases

* Updated mockito version and removed ignored annotation to relevant test cases
2023-12-07 10:46:56 +00:00
Shams Asari
4cf5fe55dd
ENT-11099: Update Java compile source & target to 17 (#7594)
And removed unused `jdkClassifier` in build files.
2023-12-06 09:46:29 +00:00
Chris Cochrane
2380364650
Jetty upgrade 2023-11-10 15:59:16 +00:00
Arshad Mahmood
958c0bf53c Updated to use Corda Shell HC01 2023-11-06 10:25:34 +00:00
Arshad Mahmood
6dd33fb8f7 Upgrade to gradle 7.6, kotlin 1.8 and jdk 17
Major changes due to JDK 17:
1. JDK17 JCE Provider now has built-in support for eddsas, corda uses
   the bouncycastle (i2p) implementation. This PR removes the conflicting
   algorithms from the built-in JCE provider.

2. JavaScript scripting has been removed from the JDK, the corda log4j config was using
   scripting to conditionally output additional diagnostic info if the MDC
   was populated. This PR has removed the scripting.

3. The artifactory plug-ins used are now deprecated, this PR has removed them
   and uses the same code as Corda 5 for publishing to artifactory.

4. Javadoc generation has been modified to use the latest dokka plug-ins.

5. Gradle 7.6 has implemented an incredibly annoying change where transitive
   dependencies are not put on the compile classpath, so that they have to be
   explicitly added as dependencies to projects.

6. Mockito has been updated, which sadly meant that quite a few source files
   have to changes to use the new (org.mockito.kotlin) package name. This makes
   this PR appear much larger than it is.

7. A number of tests have been marked as ignored to get a green, broadly they fall
   into 3 classes.

   The first is related to crypto keypair tests, it appears some logic
   in the JDK prefers to use the SunJCE implementation and we prefer to use
   bouncycastle. I believe this issue can be fixed with better test setup.

   The second group is related to our use of a method called "uncheckedCast(..)",
   the purpose of this method was to get rid of the annoying unchecked cast compiler
   warning that would otherwise exist. It looks like the Kotlin 1.9 compiler type
   inference differs and at runtime sometimes the type it infers is "Void" which causes
   an exception at runtime. The simplest solution is to use an explicit cast instead of
   unchecked cast, Corda 5 have removed unchecked cast from their codebase.

   The third class are a number of ActiveMQ tests which appear to have a memory leak somewhere.
2023-11-06 10:24:17 +00:00
r3-build
f32c4f7520 Merging forward updates from release/os/4.11 to release/os/4.12 - 2023-11-03 2023-11-03 21:37:59 +00:00
Adel El-Beik
2f8d164dd0
Merge pull request #7561 from corda/bk/update_h2_version
ENT-11115: Bumping up H2 version 2.2.224
2023-11-03 21:33:57 +00:00
Adel El-Beik
702842caeb
ENT-9940: Updated quasar to 0.7.16_r3 (#7559) 2023-11-03 15:43:51 +00:00
Balwant Kothari
632a7481db
Bumping up H2 version 2.2.224 2023-11-03 19:14:49 +05:30
r3-build
bb2c2b62e5 Merging forward updates from release/os/4.11 to release/os/4.12 - 2023-11-02 2023-11-02 17:47:59 +00:00
Jose Coll
5c32d3dec4
ENT-11073 Checkpoint agent: update java assist version. (#7554) 2023-11-02 17:46:29 +00:00
r3-build
d2350b6a5e Merging forward updates from release/os/4.11 to release/os/4.12 - 2023-09-28 2023-09-28 11:58:26 +00:00
Chris Cochrane
3b24302045
Bumped Jetty version 2023-09-27 11:27:58 +01:00
Ronan Browne
b2eba94d02
ES-1351: bump platformVersion for new release branch (#7496) 2023-09-15 21:03:13 +01:00
Ronan Browne
1fdc23692a ES-1351: set up 4.12 branch 2023-09-14 11:13:15 +01:00
Shams Asari
e0e4f51ba2
ENT-10285: Remove experimental DJVM support (#7442) 2023-08-09 08:44:32 +01:00
Adel El-Beik
106ccd7fe8
ENT-10273: Upgrade BC to 1.75. (#7422)
* ENT-10273: Upgrade BC to 1.75.

* Use BC 1.70 for core-deterministic avoid issue with primality checking done in 1.70+ which uses random numbers

---------

Co-authored-by: Shams Asari <shams.asari@r3.com>
2023-07-31 10:42:28 +01:00
Chris Cochrane
0f2312a201
ENT-8983 - Postgres migration failure (#7408)
* Set DB transaction isolation level only if its going to change; upgraded dependencies

* Removed duplicate changeset
2023-07-07 13:29:35 +01:00
Chris Cochrane
cca09fef58
Merge branch 'release/os/4.10' into cc/merge/os-4.10-os-4.11/03-may-2023
Fwd-merge from OS 4.11.
2023-05-03 17:47:44 +01:00
Chris Cochrane
0ba1cef49d
Bumped up Jackson; removed unwanted gradle task 2023-04-27 17:00:08 +01:00
Chris Cochrane
2f53e8115f
Fwd-merge from OS 4.9 2023-04-27 16:45:16 +01:00
Chris Cochrane
34d4a5f667
Fwd-merge from OS 4.8 2023-04-26 22:54:20 +01:00
Chris Cochrane
e12ab8194f
Merge branch 'release/os/4.7' into cc/merge/os-4.7-os-4.8/25-apr-2023
Fwd-merge from OS 4.7.
2023-04-25 14:54:21 +01:00
Chris Cochrane
91c38fa84b
Merge branch 'release/os/4.6' into cc/merge/os-4.6-os-4.7/24-apr-2023
Fwd-merge from OS 4.6.
2023-04-24 20:13:50 +01:00
Chris Cochrane
c58c49d27a
Upgrade corda/crash, snakeyaml 2023-04-20 14:01:20 +01:00
Chris Cochrane
95c4a18352
ENT-6336,ENT-6960 - upgrade snakeyaml to address security vulnerabilities 2023-04-06 19:14:30 +01:00
Mahmoud Almahroum
1a0d354903
ENT-8983 Upgrade H2 and liquibase to latest version (#7298) 2023-03-03 15:10:25 +00:00
Jose Coll
6e4768cd02 Bump platform version. 2023-01-24 11:54:56 +00:00
nargas-ritu
10aaedc9fc NOTICK: Branch creation for 4.11 2023-01-17 12:04:35 +00:00
Adel El-Beik
044b83508e ENT-8823: Added copyBaggageToTags configuration option to control if baggage is copied to tags.
Switched SimplLogTelemetryComponent to info logs.
2022-12-08 16:54:38 +00:00
Adel El-Beik
e0457d6762 ENT-6993: Reverting back to BC 1.70. 2022-11-03 09:18:47 +00:00
Adel El-Beik
79babc999c ENT-6993: Upgrade BC to 1.72. 2022-11-02 15:32:18 +00:00
Adel El-Beik
7a133f687c
ENT-6893: First cut of telemetry integration. (#7247)
First cut of telemetry integration.

Open telemetry can be enabled in two ways, first is via an opentelemetry java agent specified on the command line. With this way you get the advantage of spans created from other libraries, like hibernate. The java agent does byte code rewriting to insert spans.
The second way is with the open telemetry driver (that links with the opentelemetry sdk). This is a fat jar provided with this project and needs to go into the node drivers directory.
2022-10-28 14:41:39 +01:00
Chris Cochrane
64d31d3fb3
Upgraded shiro and apache commons-text, to address security issues. 2022-10-17 17:44:32 +01:00
Chris Cochrane
1ec93f01e1
Reverted netty back to 4.1.77.Final 2022-10-06 12:33:36 +01:00
Chris Cochrane
0ab4ac94c8
ENT-6903 - address security issues reported by Snyk (#7244)
ENT-6903: Update versions of BC, Shiro, Netty okhttp
Also updated platform version to 12.
2022-09-30 17:49:21 +01:00
Chris Cochrane
877e00f8d3
Fwd-merge from OS-4.9 2022-08-01 13:00:57 +01:00
Chris Cochrane
3d52a67ded
ENT-6863 upgrade netty to 4.1.77.Final 2022-06-22 16:20:03 +01:00
Waldemar Zurowski
206f3ac088 Added missing update of Jackson version 2022-05-27 09:22:29 +02:00
Waldemar Zurowski
9d3548d36e NOTICK: Merging forward updates from OS 4.9 to OS 4.10 (2022-05-26)
Conflicts:
* build.gradle
2022-05-26 20:21:53 +02:00
Waldemar Zurowski
031eb263e6 NOTICK: Merging forward updates from OS 4.8 to OS 4.9 (2022-05-26)
Conflicts:
* constants.properties
2022-05-26 16:38:00 +02:00
Waldemar Zurowski
ec14f9ccba NOTICK: Merging forward updates from OS 4.7 to OS 4.8 (2022-05-26) 2022-05-26 14:13:33 +02:00
Waldemar Zurowski
0336c938a6 NOTICK: Merging forward updates from OS 4.6 to OS 4.7 (2022-05-25)
Conflicts:
* .ci/dev/regression/Jenkinsfile
*
core/src/main/kotlin/net/corda/core/internal/PlatformVersionSwitches.kt
2022-05-25 19:07:45 +02:00
Waldemar Zurowski
ef76ae0973 NOTICK: Merging forward updates from OS 4.5 to OS 4.6 (2022-05-25)
Conflicts:
*
client/rpc/src/integration-test/kotlin/net/corda/client/rpcreconnect/CordaRPCClientReconnectionTest.kt
*
client/rpc/src/main/kotlin/net/corda/client/rpc/internal/ReconnectingCordaRPCOps.kt
* constants.properties
* gradle/wrapper/gradle-wrapper.properties
* tools/shell/src/main/kotlin/net/corda/tools/shell/InteractiveShell.kt
2022-05-25 10:14:38 +02:00
Dimos Raptis
12f339a343 Port netty upgrade to constants.properties 2022-05-18 16:55:06 +01:00