Commit Graph

956 Commits

Author SHA1 Message Date
ddb7da5a94 A more suitable classifier 2025-05-29 17:04:01 +01:00
dee067d0e0 Fwd-merge scannable jars updates from 4.11 2025-05-29 17:00:18 +01:00
cbfabb6ba1 Merge branch 'release/os/4.12' into merge-release/os/4.11-release/os/4.12-2025-05-27-614 2025-05-27 18:52:43 +01:00
2103612e4f Merging forward updates from release/os/4.10 to release/os/4.11 - 2025-05-23 2025-05-23 11:13:02 +00:00
fc0adadddf ENT-12884 - Scannable jars improvements (#7931)
* Better handling of capsule jars for scanning

* Improvements to scannable jar building
2025-05-23 12:11:53 +01:00
781aaba649 ENT-12568: Added a test to check system property is defined in external verifier. (#7898) 2025-01-22 18:00:25 +00:00
7b6df5cc14 ENT-12568: Add ability to pass system properties to external verifier. (#7897)
* ENT-12568: Add ability to pess system properties to external verifier.
2025-01-15 16:56:32 +00:00
83a7f28c67 Add bcutil dependency for BC 2024-11-21 18:41:24 +07:00
47c2aa54e9 Merging forward updates from release/os/4.10 to release/os/4.11 - 2024-10-30 2024-10-30 03:33:29 +00:00
e59ebba66a Merge branch 'release/os/4.10' into merge-release/os/4.9-release/os/4.10-2024-10-28-389 2024-10-28 14:42:03 +00:00
5b9d65ad51 MockNetwork remove hibernate sessions on stop (#7857) 2024-10-28 13:25:52 +00:00
eece1e923c Mocknetwork remove hibernate sessions on stop 2024-10-25 15:25:59 +01:00
5b812a56c2 Merge branch 'release/os/4.11' into merge-release/os/4.10-release/os/4.11-2024-10-14-372 2024-10-15 16:33:13 +01:00
3bf717a747 Merge branch 'release/os/4.10' into merge-release/os/4.9-release/os/4.10-2024-10-10-367 2024-10-14 16:11:30 +01:00
a2537d59f5 ENT-12291: Removed from rotated keys from public api. 2024-10-09 17:16:04 +01:00
828066a646 Backport contract key rotation to 4.9. 2024-10-09 14:46:57 +01:00
282ee95188 ENT-11975: Contract key rotation (#7806)
ENT-11975: Contract key rotation implementation.
2024-10-07 16:55:50 +01:00
6f4ec5d9e5 ENT-11975: Contract key rotation (#7806)
ENT-11975: Contract key rotation implementation.
2024-10-02 12:53:11 +01:00
9a438c0c56 Merging forward updates from release/os/4.11 to release/os/4.12 - 2024-10-01 2024-10-01 08:04:21 +00:00
f968aa34d8 Merging forward updates from release/os/4.10 to release/os/4.11 - 2024-10-01 2024-10-01 03:33:29 +00:00
5f39faf438 Merging forward updates from release/os/4.9 to release/os/4.10 - 2024-09-25 2024-09-25 13:19:28 +00:00
63405a28ea Recognise OU in DSL node X500 name 2024-09-24 17:16:47 +01:00
0d85c6d27f ENT-12094 - Upgraded sshd-common (#7810) 2024-09-19 16:02:58 +01:00
433deb94dd Upgraded sshd-common 2024-09-16 12:01:48 +01:00
e0e574caf0 Upgraded sshd-common 2024-09-16 11:37:40 +01:00
967402122c Merge branch 'release/os/4.12' into merge-release/os/4.11-release/os/4.12-2024-08-13-341
# Conflicts:
#	docker/src/docker/DockerfileAL
#	node/src/integration-test/kotlin/net/corda/node/services/identity/NotaryCertificateRotationTest.kt
2024-08-13 17:26:41 +01:00
237d0032ea Merge branch 'release/os/4.11' into merge-release/os/4.10-release/os/4.11-2024-08-12-297
# Conflicts:
#	constants.properties
#	core-deterministic/build.gradle
#	core/src/main/kotlin/net/corda/core/flows/ReceiveTransactionFlow.kt
#	serialization-djvm/src/test/kotlin/net/corda/serialization/djvm/DeserializePublicKeyTest.kt
2024-08-13 10:22:05 +01:00
ed3875c8b7 Merge branch 'release/os/4.10' into merge-release/os/4.9-release/os/4.10-2024-08-12-297 2024-08-12 19:27:12 +01:00
38f24d33ba ENT-12072 ENT-12073: Check notary whitelist when resolving old identities and don't depend on network map availability first for old network parameters (#7781)
Nodes currently will try and resolve network parameters from the network map and fail if it not available, rather than preferring the availability of a node they are currently interacting with.

A migrated notary identity could not be resolved on new nodes added post-migration, but the old identity is available in the network parameter notary whitelist.

Added a test that covers both bugs in a single reproduction test that simulates the scenario in which both were uncovered.
2024-08-12 19:19:30 +01:00
4ed675e56d ENT-12008: Upgrade artemis and resolved deprecated methods. 2024-07-17 11:37:43 +01:00
9e0f3759a0 ENT-11382: adding missing descriptions which get picked up in POM files 2024-06-21 23:00:40 +01:00
2b3c85a468 ENT-11676: Remove logging from debugging session (#7723)
* Remove logging from debugging session

Debugging logging statements leftover from https://github.com/corda/corda/pull/7704.
2024-05-07 10:26:28 +01:00
691f84d46e Merge pull request #7721 from corda/adel/ENT-11802
ENT-11802: Resolved messages regarding execution optimisations have been disabled.
2024-05-03 14:28:31 +01:00
35dc65550f Netty and SSHD upgrades 2024-05-02 11:12:33 +01:00
ba71b8606b ENT-11802: Resolved messages regarding execution optimisations have been disabled. 2024-04-23 11:51:08 +01:00
18e5f7d68f ENT-11676: Support for testing backwards compatible transactions in the node driver (#7704)
* ENT-11676: Support for testing backwards compatible transactions in the node driver

* Introduction of a new way to reference CorDapps for the node driver: `TestCordapp.of(URI)`
* New `TestCordapp.asSigned()` method which creates a copy of the CorDapp jar but signed by a dev key.
* Added `NodeParameters.legacyContracts` for specifying legacy contract CorDapps for the node

`TransactionBuilderDriverTest` has been updated to use these new APIs.

* ENT-11676: Support for testing backwards compatible transactions in the node driver

* Introduction of a new way to reference CorDapps for the node driver: `TestCordapp.of(URI)`
* New `TestCordapp.asSigned()` method which creates a copy of the CorDapp jar but signed by a dev key.
* Added `NodeParameters.legacyContracts` for specifying legacy contract CorDapps for the node

`TransactionBuilderDriverTest` has been updated to use these new APIs.

* ENT-11676: Added removed api and fixed alias issue.



---------

Co-authored-by: Adel El-Beik <adel.el-beik@r3.com>
2024-04-18 09:41:26 +01:00
0f713aaa44 ENT-11003: Upgraded Jetty and Jersey. (#7715)
* ENT-11003: Upgraded jetty and jersey. Fixed up simm valuation demo.
2024-04-18 09:40:42 +01:00
6c4b8fdf23 ENT-11657: Upgrade artemis. (#7707)
* ENT-11657: Upgraded artemis.

* ENT-11657: Reverted dependencies task leftin.

* ENT-11657: Upgraded log4j and slf4j.
2024-04-03 11:15:00 +01:00
72778b7fb0 ENT-11728: Switched to LTS version of BC. Also removed PQC algos as n… (#7706)
* ENT-11728: Switched to LTS version of BC. Also removed PQC algos as not supported in LTS.
* ENT-11728: Removed the SPHINCS PQC algorithm.
* ENT-11728: Added dependency on bcutil to fix missing class error.
2024-04-03 11:14:19 +01:00
900809b3d7 ENT-11090: Removed all JDK 8/11 conditional code 2024-03-05 17:10:26 +00:00
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
200333b198 ENT-11355: Backwards compatibility with older nodes via new attachments component group 2024-02-19 17:19:49 +00:00
8fd3139df1 ENT-11355: Cleanup of TransactionBuilder and CorDapp loading
This is code refactoring and cleanup that is required to add a new WireTransaction component group for 4.12+ attachments, and for supporting legacy (4.11 or older) contract CorDapps in the node.
2024-02-12 14:27:07 +00:00
c7514e1c60 ENT-11443 Function sig changes to support removing enterprise compiler warnings (#7671) 2024-02-07 14:46:18 +00:00
ee71bf5a78 ENT-11351 - Compiler warnings pass 5 (#7666)
* Reduce compiler warnings

* Address PR review comments

* Acually make use of capitalize(),decapitalize()
2024-01-30 18:09:55 +00:00
9b794795a0 ENT-11351 - Compiler warnings pass 4 (#7663)
* Compiler warnings

* Resolve detekt errors

* Reverted code change; added warning suppression

* Address PR review comments
2024-01-29 13:49:00 +00:00
a7d0684fe7 ENT-11384: Cleanup JarScanningCordappLoader (#7664)
* It uses URLs when in fact CorDapps are jar files, and so should being Path. It also does URL equality, which is not recommended
* Address (very old) TODO of removing RestrictedURL, which is not needed

Also, back-ported some minor changes from https://github.com/corda/enterprise/pull/5057.
2024-01-29 13:44:14 +00:00
3abb218bca Merge pull request #7654 from corda/shams-external-verifier-analyse-txs
ENT-11255: Scan attachments to determine if they are Kotlin 1.2 or later
2024-01-23 16:56:47 +00:00
f15e6ec56a ENT-11351 - Compiler warnings pass 2 (#7655)
* Addressed compiler warnings

* Removed unchecked cast fixes - not for this PR

* Sorted out detekt issues
2024-01-23 10:19:03 +00:00
f30ba33929 ENT-11255: Scan attachments to determine if they are Kotlin 1.2 or later
The node now sends a transaction to the verifier if any of its attachments were compiled with Kotlin 1.2 (the net.corda.node.verification.external system property has been removed). It uses kotlinx-metadata to read the Kotlin metadata in the attachment to determine this. For now this scanning is done each time the attachment is loaded from the database.

The existing external verification integration tests were converted into smoke tests so that 4.11 nodes could be involved. This required various improvements to NodeProcess.Factory. A new JAVA_8_HOME environment variable, pointing to JDK 8, is required to run these tests.

There is still some follow-up work that needs to be done:

Sending transactions from a 4.11 node to a 4.12 node works, but not the other way round. A new WireTransaction component group needs to be introduced for storing 4.12 attachments so that they can be safely ignored by 4.11 nodes, and the 4.12 node needs to be able to load both 4.11 and 4.12 versions of the same contracts CorDapp so that they can be both attached to the transaction.
Even though attachments are cached when retrieved from the database, the Kotlin metadata version should be stored in the attachments db table, rather than being scanned each time.
Finally, VerificationService was refactored into NodeVerificationSupport and can be passed into SignedTransaction.verifyInternal, instead of needing the much heavier VerifyingServiceHub. This makes it easier for internal tools to verify transactions and spawn the verifier if necessary.
2024-01-22 11:31:51 +00:00