What changed, and why it matters
This commit adds a new testing-only module that uses a fuzzing tool called Jazzer to automatically throw random data at Eclair's Lightning message parsers. It does not change any production code, network behavior, or security logic. It is purely a defensive testing improvement.
No security action required. Review the new module as normal build/test tooling. Ensure CI fuzzing jobs are time-bounded and do not block releases.
Security signals we found
New test-only fuzzing module added
No production code changes
No network-facing or cryptographic logic modified
Defensive testing infrastructure only
Evidence from the diff
The commit introduces an eclair-fuzz Maven module with Jazzer/JUnit 5 fuzz tests targeting LightningMessageCodecs. It adds helper scripts for CI fuzzing and coverage reports, pins new dependency checksums, and adds gitignore entries for fuzzing artifacts. No production source files are modified. The fuzz tests perform codec round-trip checks and assert encoding stability for message types 32-36.
Changed components
eclair-fuzz (new test module)LightningMessageCodecsFuzzTest.scalapom.xml (new module).gitignore.mvn/checksums/checksums-central.sha256Inspect captured patch +363 / −0
diff --git a/.gitignore b/.gitignore
index 6af8ac0..06d7e8b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,7 @@ jdbcUrlFile_*.tmp
.DS_Store
.claude*
+
+# fuzzing
+crash-*
+.cifuzz-*
diff --git a/.mvn/checksums/checksums-central.sha256 b/.mvn/checksums/checksums-central.sha256
index c966c8e..2182f6e 100644
--- a/.mvn/checksums/checksums-central.sha256
+++ b/.mvn/checksums/checksums-central.sha256
@@ -1,6 +1,7 @@
000259f15a7167de4fbd1486ad87f2130c3ed98f3d6a6cf9667b43e7a242ba34 org/scalatest/scalatest-funsuite_2.13/3.2.16/scalatest-funsuite_2.13-3.2.16.jar
000a52bc1c5efc832c7027ae4df7028ab05d11e0060e1dbbfd596b834cbcc1f0 org/scalatest/scalatest-wordspec_2.13/3.2.16/scalatest-wordspec_2.13-3.2.16.pom
000d8187952b223702fde296df799563f35de82ce72adb4e7bf157342378fbe3 org/apache/commons/commons-parent/54/commons-parent-54.pom
+0018b6614e7722b95cf342510c23c7eef139d19a0d893a4be9132feb1bf92942 com/code-intelligence/jazzer/0.30.0/jazzer-0.30.0.pom
001cde5b3c6ba91070425cfe9f2e695e4aeb8bc290a2d4cd96531127ab244fe5 org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.pom
002dd542501d89246aeb5b482d5bcbdcdb789cb6a36a22704d3524192f63ff09 org/apache/maven/surefire/surefire-api/3.1.2/surefire-api-3.1.2.pom
0076c249b4387d8369146528fd5dacb3efba098dc02ecf9ac81debdfc2e12fd5 com/typesafe/config/1.4.2/config-1.4.2.jar
@@ -44,6 +45,7 @@
0973e876682bc72016919be4569e1b1bfc462429cc4e0c937f54e3cee075c155 com/typesafe/akka/akka-parsing_2.13/10.2.7/akka-parsing_2.13-10.2.7.jar
0987adf8d5201d5db0dce8deef9d325701eb341e306a624e5a9870fbab5b6da5 org/json4s/json4s-ast_2.13/4.0.3/json4s-ast_2.13-4.0.3.pom
09a0b4cc814d7274616c9b16d4c0fd9aaf1ecc813334de5131e547271b1982e5 org/slf4j/slf4j-parent/2.0.16/slf4j-parent-2.0.16.pom
+09a2133a8ada6a52e2d312df8beeca2d1bb14954c5e0793b1abd37bedcd102d8 com/code-intelligence/jazzer-api/0.30.0/jazzer-api-0.30.0.pom
09b999a969e73525a6cc3ad2868ea744766e1d93b25c6c656d61a5ff9c881da9 org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
09c95ce9300bb535bc1c5ec0548b95d44ff9f67509f46a8c713ad10a235e031f org/scalatest/scalatest_2.13/3.2.16/scalatest_2.13-3.2.16.pom
09d992752c32b279e152481cc700296f6fc8a7d7395f68eef7a581da51915328 com/typesafe/akka/akka-coordination_2.13/2.6.20/akka-coordination_2.13-2.6.20.jar
@@ -60,12 +62,14 @@
0baf22d7475efbc70b2fa31f3d827848043ecc8adaf77c914ef3afd9193e1a23 org/apache/maven/surefire/surefire-extensions-api/3.1.2/surefire-extensions-api-3.1.2.pom
0bdb79a0a5e0cce2d8d2d339ad53453cdf90045fe34c5e4b19b064bb1aee5876 javax/json/javax.json-api/1.1.4/javax.json-api-1.1.4.jar
0c23863893a2291f5a7afdbd8d15923b3948afd87e563fa341cdcf6eae338a60 commons-io/commons-io/2.6/commons-io-2.6.pom
+0c33a58cf891dafbc621f3c6d9cc823270831eb3b189bde3b886cc303990fd6c org/junit/jupiter/junit-jupiter-params/5.9.0/junit-jupiter-params-5.9.0.pom
0c6f123b11491742ddf3dc34ec2d3d10f533e2ef9ca889db8a704290270bdd07 org/scala-sbt/util-position_2.13/1.8.0/util-position_2.13-1.8.0.jar
0cc647963b74ad1d7a37c9868e9e5a8f474e49297e1863582253a08a4c719cb1 classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
0cf0bc1966c54645ed9702538158cc4a363861905470991616f4dabd4030e851 org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
0d00b84f26ff5f3e845bf349302345633ca65f8d8e9101b31082082415912c1e org/apache/maven/plugins/maven-compiler-plugin/3.13.0/maven-compiler-plugin-3.13.0.pom
0d127b205a1fce0abc2a3757a041748651bc66c15cf4c059bac5833b27d471a5 software/amazon/ion/ion-java/1.0.2/ion-java-1.0.2.jar
0d39c3f3ed6bc405200e6126dd57d7655acc159f1d4f70b38256b0e3c691a4ae net/bytebuddy/byte-buddy-parent/1.12.7/byte-buddy-parent-1.12.7.pom
+0db4a66d386b52457d45db7c669a6cf090df1b313003182c3fe5a367432d8897 com/code-intelligence/jazzer-junit/0.30.0/jazzer-junit-0.30.0.pom
0e4fc6f7ee079f357ecdae4e51a1a66c1f130cbf64b2778541b24f432830ddf1 ru/vyarus/generics-resolver/3.0.3/generics-resolver-3.0.3.jar
0ec442f96e1e592426b9fd727a192c9990a10e1e3bb6410d802b58fc7803d5f6 org/clapper/grizzled-slf4j_2.13/1.3.4/grizzled-slf4j_2.13-1.3.4.pom
0f11a07911f2e0687e120794a67536328b61e866a953cc1ea75b796c0b926c73 org/jline/jline/3.21.0/jline-3.21.0.pom
@@ -83,6 +87,7 @@
12bd3bfb803d2004ed8318583ac7b272115a8b9303eabcd100808c54d44d2017 org/codehaus/plexus/plexus-compiler-manager/2.15.0/plexus-compiler-manager-2.15.0.pom
12cd86a3ece472b3b2cb812b6616473e4de04fc9d9cecddd66d2d5b6a34e860d io/netty/netty-transport-native-unix-common/4.1.94.Final/netty-transport-native-unix-common-4.1.94.Final.pom
12edb5096e13f40c362d0bd40902589fa9586505123fa26799ce50b116fa5bb3 org/apache/apache/6/apache-6.pom
+13000d464938249dce876d2c783c5319ad8863da2b214bcb9001f8c0ee491214 org/junit/platform/junit-platform-launcher/1.9.0/junit-platform-launcher-1.9.0.jar
13023471418b890557b982e4cbab2b5f6967adf1cebe54bf630fe201a63963cc org/jboss/weld/weld-parent/26/weld-parent-26.pom
1361078ed8ae83eaa7e860d164389249ff3742ccdfef25ca33248dfd62e55342 com/fasterxml/jackson/jackson-bom/2.12.6/jackson-bom-2.12.6.pom
1397ce1db433adc9f223dbf07496d133681448751f4ae29e58f68e78fb4b6c25 org/apache/apache/7/apache-7.pom
@@ -128,8 +133,10 @@
1a8faf7a6a2b848acb26a959954ee115c0d79dbe75a6206fb3b8c7c2f45a237f org/apache/maven/maven-parent/34/maven-parent-34.pom
1ada4580f68cd17a534fb3c0337087073223a76cb77304dbe5a1b19df3d53c2f io/netty/netty-codec-http/4.1.94.Final/netty-codec-http-4.1.94.Final.jar
1af699f8d9ddab67f9a0d202fbd7915eb0362a5a6dfd5ffc54cafa3465c9cb0a net/java/jvnet-parent/5/jvnet-parent-5.pom
+1b1ae8658216031c50e989e6008193c04c2ad63c4c9b9876d4c66e23ecb75312 com/code-intelligence/jazzer-junit/0.30.0/jazzer-junit-0.30.0.jar
1b48dc206f527b7604ef32492ada8e71706c63a65d999e0cabdafdc5793b4d63 org/scala-lang/modules/scala-xml_2.12/1.2.0/scala-xml_2.12-1.2.0.jar
1b60f6a3f20dd0582b0bdb0ec99c1977cc3aa0f7adaf75c7f887c3d060488491 com/softwaremill/sttp/client3/okhttp-backend_2.13/3.8.16/okhttp-backend_2.13-3.8.16.pom
+1b6acdfa150d69662520760001c68e365865d68ef130d1996e52b9483ec86161 org/junit/platform/junit-platform-engine/1.9.0/junit-platform-engine-1.9.0.pom
1bc264824ec876b0ca6f4f5838175c541c638cbc43326a268b9aee7d4778b5ef org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
1c0b4ee0b623402dd5bb78fd4a69bf808da2510524f489a24b0f3cc58ded046e io/netty/netty-codec-socks/4.1.94.Final/netty-codec-socks-4.1.94.Final.jar
1c36ab1098026165a9cd6d18732d58da95adab6aa25938d472fa9c4a9498f944 org/codehaus/plexus/plexus-java/1.1.2/plexus-java-1.1.2.pom
@@ -169,6 +176,7 @@
22e81ee9d5349ba0e897adb5c7fcec25656c9e0b7b86c3e93e9a7af360481c0d org/scala-lang/scala-library/2.12.8/scala-library-2.12.8.pom
2340855d40ce6125d9a23ab80d94848efa50b2957cf93531e2a7dcf631b4f22b org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
240113a2f22fd1f0b182b32baecf0e7876b3a8e41f3c4da3335eeb9ffb24b9f4 org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
+24023f20c235a69609fb2f95a60738557fcf9413f3ae92a92e1329547d6145c9 org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2.pom
2431faf4c35b658b2e98f2ea4e10f5e7bd95d11bbb75338856088fe1099c14fb org/apache/maven/maven-resolver-provider/3.8.6/maven-resolver-provider-3.8.6.pom
243c66f842cd2b3ded7c6d2c36b177a65c3f5d94800cef988ba3e29ec8cf60c9 org/apache/maven/doxia/doxia-logging-api/1.11.1/doxia-logging-api-1.11.1.jar
244564951300444c0c4c4a1a3f870756a110cb9a40405aed4ceccc3e33f5182f org/apache/maven/maven-settings/3.2.5/maven-settings-3.2.5.pom
@@ -178,6 +186,7 @@
25be6603c97d28fa3dcd122073054271c8fcaf667d220dce7a26a61a6f3cffd1 org/apache/maven/reporting/maven-reporting-api/3.1.1/maven-reporting-api-3.1.1.jar
25cf1d7f7d4dcc32ce70625210722f954084218b4e31dfcabefcdb58b1bd6b41 org/apache/maven/maven-resolver-provider/3.8.2/maven-resolver-provider-3.8.2.jar
25f1cca782fc00dd5bb90af5ff2ebb32273e2c159829ee17ab9830d87696ad18 org/json4s/json4s-scalap_2.13/4.0.6/json4s-scalap_2.13-4.0.6.pom
+25f23dc535a091e9dc80c008faf29dcb92be902e6911f77a736fbaf019908367 org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2.jar
2627c7eb1c61d62d1d18aa39d0b4e9b324cef18fb58c1801346e49335e2fd20b org/scalatest/scalatest-shouldmatchers_2.13/3.2.16/scalatest-shouldmatchers_2.13-3.2.16.pom
26678dc55ccaa813904c0795db4b11529fabe3816dab88a65410efa3f69d3931 org/scoverage/scalac-scoverage-runtime_2.13/1.4.1/scalac-scoverage-runtime_2.13-1.4.1.pom
26a90faef53a1346795d9e3a3ab24111e149b59e80408263747c9441ed966154 org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
@@ -223,12 +232,14 @@
2d727af4b8bd10382777d34a16e521e948b8a9684f1094bf06ee9b5b616bd5ed org/apache/maven/maven-model/2.0/maven-model-2.0.pom
2d970269d4d6f2a91624973a502cc0ebea83560bc0d1116ab8dcaa945e834dcd io/netty/netty-parent/4.1.94.Final/netty-parent-4.1.94.Final.pom
2ded7343dc8e57decd5e6302337139be020fdd885a2935925e8d575975e480b9 commons-lang/commons-lang/2.1/commons-lang-2.1.jar
+2df9420a6b24e5f4f314235e01cd9c3b8f646285db2f6e82d86ee06ef7af4e24 org/junit/platform/junit-platform-engine/1.9.2/junit-platform-engine-1.9.2.pom
2e016fd7e3244b5f2c20acad834d93aa4790486ee1e4564641361a3e831eef59 commons-io/commons-io/2.11.0/commons-io-2.11.0.pom
2e483a3ea4dc3a4a29f1ccf6ee8326e4f403db122f16cb5426f5e5f11d99ff6e org/scala-sbt/compiler-bridge_2.13/1.8.0/compiler-bridge_2.13-1.8.0.jar
2e7f45ee7f8c1bef33d194cdbd676adaceb999171626a4c065c0433d725f1bb0 org/scala-lang/scala-reflect/2.13.6/scala-reflect-2.13.6.pom
2e8cb2d546a01c2259cb17f1e06732db3d14b079d19622bf8400c82cb1ee6b96 org/apache/maven/shared/file-management/3.1.0/file-management-3.1.0.jar
2eb0ea667bc489384478231dda7516407d4b5b22a138077229871de9362a7ae2 org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.jar
2ed07d65845131f5336a86476c9a4056b59d0b58b9815ab3679bb0f36f35f705 org/junit/junit-bom/5.9.2/junit-bom-5.9.2.pom
+309a7d79f1bfe7bed60a1a1708aaa8bd71861c129d21684d68edf4e4d9c82c20 org/junit/platform/junit-platform-commons/1.9.0/junit-platform-commons-1.9.0.pom
30ad98b52f64377b3353c6f31289f15fce2217f01f5e3a4862305da6c78b6a71 fr/acinq/secp256k1/secp256k1-kmp-jni-jvm-extract/0.21.0/secp256k1-kmp-jni-jvm-extract-0.21.0.pom
30e8e86a673564df28b14507c7943238fcedbb87b71dc7ceee1f676c5315c1eb org/mockito/mockito-core/4.3.1/mockito-core-4.3.1.pom
30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a net/java/jvnet-parent/3/jvnet-parent-3.pom
@@ -236,6 +247,7 @@
317d515c5c69278a980c6219901d327efb4210ca44ae1f07c2a304d487ec7cae org/apache/maven/maven-aether-provider/3.2.5/maven-aether-provider-3.2.5.pom
321ddbb7ee6fe4f53dea6b4cd6db74154d6bfa42391c1f763b361b9f485acf05 org/ow2/ow2/1.5.1/ow2-1.5.1.pom
322d96e5277de60c00dd4833c19a6e8c6f148aa61bafc7debd3d962beb55d847 org/scalatest/scalatest-mustmatchers_2.13/3.2.16/scalatest-mustmatchers_2.13-3.2.16.pom
+32355081d109095c3d5d374d5a43b4f4c1b75d549e983ef50723e2772e5302a0 org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.pom
3250ac3ac6bd60ed0631f5cd0335032b2993d63e405a6ae0555d27a7e4865849 commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom
3269d0a6e3cd614a29486f57fc86488b0f1e458a11bebc61f9408fd6c7cf85ae org/apache/maven/plugins/maven-resources-plugin/3.3.1/maven-resources-plugin-3.3.1.pom
32733ab4bc90b45b63eb72677d886961003fd4ed113e07b1028f9877cb2ac735 org/apache/commons/commons-lang3/3.19.0/commons-lang3-3.19.0.jar
@@ -295,6 +307,7 @@
3d6fdeb72b2967f1fa2784134fb832d08d8d6e879b7ace7712f2c7281994fc1e org/apache/maven/maven-model/3.0/maven-model-3.0.pom
3d8b64316e38439de6e0f14131e6d7d58d74e924f03d313b3cd8292a966aa010 com/fasterxml/jackson/core/jackson-core/2.12.6/jackson-core-2.12.6.pom
3de1342b450f137ba2bdf5e93f15f6fa524404a7e3fcb36122a1bb968f3bab7a fr/acinq/secp256k1/secp256k1-kmp-jni-jvm-darwin/0.21.0/secp256k1-kmp-jni-jvm-darwin-0.21.0.pom
+3e370bcbb1e857fda5f0b203724116d02b05e788faa1eb2518814accf9cfb5b1 org/junit/jupiter/junit-jupiter-api/5.9.0/junit-jupiter-api-5.9.0.jar
3e395d6fbc43c09a3774cac8694ce527398305ea3fd5492d80e25af27d382a9c org/codehaus/mojo/mojo-parent/34/mojo-parent-34.pom
3e48e181d5efa33edb06aaa14b9af5ed2a7582e87963f87602cfdad8fa659bb4 org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
3e49037174820bbd0df63420a977255886398954c2a06291fa61f727ac35b377 org/apache/apache/29/apache-29.pom
@@ -311,6 +324,7 @@
3f98f587e527a58e0be4bbe2ea13263a83772029171a0a6d51e8629bad365ff6 com/typesafe/akka/akka-testkit_2.13/2.6.20/akka-testkit_2.13-2.6.20.jar
3f9eab1c0da7246f0add684d37c9bd1de83270735ae09777e95074a54f02d2d5 com/typesafe/akka/akka-testkit_2.13/2.6.20/akka-testkit_2.13-2.6.20.pom
40091058e34f3410c38fbec606dc954eadd96dd7d97ca06bfa5abdb84294c043 com/github/oshi/oshi-core/6.4.13/oshi-core-6.4.13.jar
+40c91f87fbb698f7d29a7df055315fe37ab4f38b3ff0da4acc913d273911fc0d org/apache/maven/surefire/surefire-junit-platform/3.1.2/surefire-junit-platform-3.1.2.pom
41b7221f1c4f7656be0e5777c6f3df99452ad0b8a54988d45febb368058e259a com/typesafe/akka/akka-remote_2.13/2.6.20/akka-remote_2.13-2.6.20.jar
41c9b71abe998efa7996a4159c2d052764767f7da97b63f3a2e0047d71c41b15 fr/acinq/secp256k1/secp256k1-kmp-jni-jvm-extract/0.23.0/secp256k1-kmp-jni-jvm-extract-0.23.0.pom
42d759c550d723373ae34556e80930b9ed2e13495dace134adf99e64ddc8d2e1 org/apache/maven/plugins/maven-plugins/35/maven-plugins-35.pom
@@ -350,6 +364,7 @@
4a14ec03fa5fdfef34b595d3fabb83832423a5d6e9b31571e44c8a48304014df org/sonatype/sisu/sisu-guice/3.2.3/sisu-guice-3.2.3.pom
4a3f8ed8a44c7ed8b31ae5101334880587c10970653f4b3b944fdb23830b2420 org/jetbrains/kotlin/kotlin-stdlib/2.3.10/kotlin-stdlib-2.3.10.pom
4a8eea7663992e49206d9f928138f334a835ad3fbbc40929342ef007ccf5471b org/apache/maven/shared/maven-common-artifact-filters/3.1.1/maven-common-artifact-filters-3.1.1.jar
+4a9550696d94946b6b3ea08bcb8cd03c9579c7514c86055d2dd1a31d29d66076 org/apache/maven/surefire/surefire-providers/3.1.2/surefire-providers-3.1.2.pom
4accc9d2a56a6dd5198ec5e1c5c05a091da563bccd346fd6578edc083152beaa eu/neilalexander/jnacl/1.0.0/jnacl-1.0.0.jar
4ae70b3cb0c215d69aeac28c9212e6811f9eb978956782340608933420880d52 org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.pom
4b2a190117c3d03e73e866d482d466aec4e28eafc4d211485df6a12e713bded9 org/apache/maven/plugins/maven-install-plugin/3.1.2/maven-install-plugin-3.1.2.pom
@@ -406,8 +421,10 @@
575945dc08966c66eb03d5bae9135bd22ca3920a1865bb99d3ecd93bef55abd3 org/codehaus/plexus/plexus/13/plexus-13.pom
5760f47ecbdf1cd61db2c1b433a711ede09b3cabc30626c4ba36fe463b323a26 org/scala-sbt/util-interface/1.8.0/util-interface-1.8.0.jar
57c085b9815c56a501a40cfbfa2dbeb077f997bb3a6c92ac13c8bd05ef182c8c nu/studer/java-ordered-properties/1.0.4/java-ordered-properties-1.0.4.pom
+57e0451153d5e43cc8a66e92c2944d682aa6dbda9ad7d15751b69beeb05d7fa3 org/apache/maven/surefire/surefire-junit-platform/3.1.2/surefire-junit-platform-3.1.2.jar
57ef5a1efc69d1470e45d0d1230880b6def5f17dcc55597ec43e37444c149262 org/checkerframework/checker-qual/3.49.5/checker-qual-3.49.5.pom
57f40000ee605334ff7f5c353b90fcc9fbf93b4e13e6f91ab5d9efa27bcca625 org/scalatest/scalatest-diagrams_2.13/3.2.16/scalatest-diagrams_2.13-3.2.16.pom
+58812de60898d976fb81ef3b62da05c6604c18fd4a249f5044282479fc286af2 org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar
58a198d7c8f67346784fa5c6ced3200e6ff1f9325a67cc095465710077f20715 ru/vyarus/generics-resolver/3.0.3/generics-resolver-3.0.3.pom
590288e8f5bd89ec0500a299879f004c200f9296b21cfaebb770c387429cabde org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
5909b396ca3a2be10d0eea32c74ef78d816e1b4ead21de1d78de1f890d033e04 javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
@@ -451,6 +468,7 @@
61988e54486a5dc38f06c70fdae5b108556c63bd433697b9f4305fcdb30fa40e org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.jar
61b49d85c73476d990fe289d7024ddc48739273777f5b6a15ac80ff9b7790a3b io/netty/netty-codec-dns/4.1.94.Final/netty-codec-dns-4.1.94.Final.pom
61b4d7c515a0894ffad925fd7052620c1425a86433fd35113b5fab0de890a57f com/squareup/okio/okio-jvm/3.6.0/okio-jvm-3.6.0.pom
+624a3d745ef1d28e955a6a67af8edba0fdfc5c9bad680a73f67a70bb950a683d org/junit/platform/junit-platform-commons/1.9.2/junit-platform-commons-1.9.2.jar
62aa1c1679ade09f173dbf1b6c32d35c55e75800238fd5e48f13aa4337c0875b com/fasterxml/jackson/jackson-parent/2.12/jackson-parent-2.12.pom
62aee8cd05e9e0e41dbdb22a82d2569af1ee137978527a1ffef5394a9114c6e3 io/netty/netty-handler/4.1.94.Final/netty-handler-4.1.94.Final.pom
62bd7a7198193c5373a992c122990279e413af3307162472a5d3cbb8ecadb35e org/scala-lang/scala-reflect/2.13.10/scala-reflect-2.13.10.jar
@@ -487,6 +505,7 @@
6a46ed9b333857e8b5ea668bb254ed8e47dacd1116bf53ade9467aa4ae8f1818 org/scala-lang/scala-reflect/2.13.11/scala-reflect-2.13.11.jar
6a58eb24291600f75ce0fe369b73fe6700f575ace4b664724d3cd0a6b85b63ee org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
6a80b1821e5d6956cf78ec4c0ce3c640c7f1141edd4885fae3e0b060797cca01 org/slf4j/slf4j-api/1.7.9/slf4j-api-1.7.9.pom
+6a9d8c4698dc8c6904d6ac1f5d13018aa7f828449bc5b8cef78fc1431ce08217 org/junit/jupiter/junit-jupiter-api/5.9.0/junit-jupiter-api-5.9.0.pom
6abdbcd5020cbeeb748e63ad6ec18ea99b3ccd631d504e2be3975d14510ca664 pl/project13/maven/git-commit-id-plugin-parent/4.9.10/git-commit-id-plugin-parent-4.9.10.pom
6aecfd5459728a595601cfa07258d131972ffc39b492eb48bdd596577a2f244a org/apache/commons/commons-compress/1.21/commons-compress-1.21.jar
6b374ad2606f738c037e68b060f9b0d4c658ceefd7ac55ef15f7b6c584bf3aa0 org/scalatest/scalatest-diagrams_2.13/3.2.16/scalatest-diagrams_2.13-3.2.16.jar
@@ -630,6 +649,7 @@
8a8ecb570553bf9f1ffae211a8d4ca9ee630c17afe59293368fba7bd9b42fcb7 org/apache/commons/commons-parent/47/commons-parent-47.pom
8abf8511bb13a26ef1c481ce22b0fba8cf12fa399740e28123c06f70b5007103 com/typesafe/akka/akka-remote_2.13/2.6.20/akka-remote_2.13-2.6.20.pom
8b30025f0ecb40d2b71a71ffeb6e97dfc7c43ce3cf2c698e51c7afac474b10ea org/json4s/json4s-jackson-core_2.13/4.0.6/json4s-jackson-core_2.13-4.0.6.pom
+8bdeac017bcd3d9473c9772fac62111c4df830188571def1d001a1b743a62b2f com/code-intelligence/jazzer/0.30.0/jazzer-0.30.0.jar
8bf726150d1d6a43ba0aa92060e552933caf2873aa193952d9d496470fa9fbd8 org/apache/commons/commons-parent/88/commons-parent-88.pom
8c0e6aa7f35593016f2c5e78b604b57f023cdaca3561fe2fe36f2b5dbbae1d16 org/eclipse/sisu/org.eclipse.sisu.inject/0.3.4/org.eclipse.sisu.inject-0.3.4.jar
8c19e7148bee907597129b2fd706839c45db849c72a25285ec1674f0ffdabf8e org/zeromq/jeromq/0.5.2/jeromq-0.5.2.jar
@@ -672,6 +692,7 @@
9304e36b38ea5af6f4c760f585796588ba72a2fba81259500acd7dcd052e9a44 io/zonky/test/postgres/embedded-postgres-binaries-linux-amd64-alpine/14.20.0/embedded-postgres-binaries-linux-amd64-alpine-14.20.0.jar
930f23cb1386d71ef771d7cc18d1a792755f555aad69e0de05fcadc5768caf8f org/apache/maven/plugins/maven-wrapper-plugin/3.3.2/maven-wrapper-plugin-3.3.2.pom
934171640fbd3d2495c50b79b0d9adb11e2c83e65bad157df8fe34bcac0ff798 org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
+942b4580218bd4352cd18d4a4b32bf2427d2be52da0a3bd08b807bedc5201309 org/junit/platform/junit-platform-launcher/1.9.0/junit-platform-launcher-1.9.0.pom
943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa javax/inject/javax.inject/1/javax.inject-1.pom
94b367a52d136cc675909c6527a8cc03c43595ee9660167c89c911cba7b68d2d org/scala-sbt/util-control_2.13/1.8.0/util-control_2.13-1.8.0.pom
94d5aedb3c46023265396527cf8ce7fc944b7bd79e4ebab907386418eb5a08d7 org/codehaus/plexus/plexus-containers/2.1.0/plexus-containers-2.1.0.pom
@@ -769,11 +790,13 @@ a854365061c28821ddf1a520b8a197991613fd1d56f50f42c468b789b4714f20 org/codehaus/p
a87c049279564d207b6f807a9b27c859b4e68273692d9e2c80fbe283fd86a6aa com/typesafe/akka/akka-slf4j_2.13/2.6.20/akka-slf4j_2.13-2.6.20.pom
a88f57fa7917db25fa555ac867b5bf76c660a7016a6be39be607f5dcfa792944 org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.4/org.eclipse.sisu.plexus-0.3.4.pom
a89a2f99088e244b3e52e35f19f5f7d3aba03dbb3cfaea044e2a694119e88f79 org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
+a8b7d1ed032fb92b43258d78d239b019c5f5834dacc084f99783e34c3ee12cbf org/junit/jupiter/junit-jupiter-engine/5.9.0/junit-jupiter-engine-5.9.0.pom
a8cac905ad0e52e724f33faa395415ef7fdbede354d7c25a11072c87c064dc1d net/java/dev/jna/jna-platform/5.12.0/jna-platform-5.12.0.jar
a901f87b115c55070c7ee43efff63e20e7b02d30af2443ae292bf1f4e532d3aa org/apache/httpcomponents/httpcomponents-parent/11/httpcomponents-parent-11.pom
a909af8c61361b3cea2aece5e9cd9acbe36badee294ea710a8dad77d90c64654 org/codehaus/plexus/plexus-archiver/4.6.1/plexus-archiver-4.6.1.jar
a9409750e84e2b9f10dbc05ca1778b6162d91425438c232dfb62110a8dbbcaf5 fr/acinq/secp256k1/secp256k1-kmp-jni-jvm-linux/0.21.0/secp256k1-kmp-jni-jvm-linux-0.21.0.pom
a941745d7faeb8dc9a75edc2c330c994b7440b9a44d21142716b6053967a41c1 org/apache/maven/shared/maven-shared-utils/3.4.2/maven-shared-utils-3.4.2.pom
+a96e671816c1ff8803bdec74c9241f025bdfb277da5d2b4ee02266405936f994 org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom
a98e6af5cdf1b2456486ae0bb8128e52fee8d6996629af60606bbc9c1aadf8ec org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.pom
a9afce635b3e48663b4b356119873288326503030c779f723c70a3deae6b8d2c org/scala-sbt/zinc-apiinfo_2.13/1.8.0/zinc-apiinfo_2.13-1.8.0.jar
a9c5463598c4396066c897ac4982f29f0f18922d4dedf47986f9d5784bafce75 net/alchim31/maven/scala-maven-plugin/4.8.1/scala-maven-plugin-4.8.1.pom
@@ -781,6 +804,7 @@ aa0c731d3f90fe7e9be5446353af6a3c954628f85c18a440aeedb2b898284f2f org/codehaus/m
aa254b373b6f6d46bc9dca86331b072a8ab86eb25ea9921fd439618392e98a16 org/apache/commons/commons-lang3/3.18.0/commons-lang3-3.18.0.pom
aa4ea451bb6fa92e9cc96654eef53e334ff4d36a946633e01765fed41e845e03 org/codehaus/plexus/plexus-utils/3.5.0/plexus-utils-3.5.0.pom
aa7fc1270606120a4b78a7023a7fda77c25058c612ed46462f643a19b05b4a79 org/json4s/json4s-jackson_2.13/4.0.6/json4s-jackson_2.13-4.0.6.pom
+aaec735f7444a9fc055e206598de3d829c24e9c7a8eea6efdeeb1962087fe811 org/junit/platform/junit-platform-engine/1.9.0/junit-platform-engine-1.9.0.jar
abb04084d0885319fd0b372d77655f8feb8aa8bb091699fcd99b45798a9587d5 org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
abdbeafa38c4ccd82578c1f3d08ea48af439eff194d23aa3bae18fbe93b4dcf0 org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
abf521a0bd609cd2a8c40e75c3f5958bd28aea4720b440e65ea44300a665ffbb org/scala-lang/scala-library/2.13.7/scala-library-2.13.7.pom
@@ -825,6 +849,7 @@ b4306d13e8f5392458a1b30866f1cff161b3d2e6999a88d059eea3932c8a8499 org/sonatype/o
b4670b95f75957c974284c5f3ada966040be2578f643c5c6083d262162061fa2 joda-time/joda-time/2.8.1/joda-time-2.8.1.jar
b4a96b898513b73cdd96947cd080b3f3acbbd6126720ede9e075a0eb2d346d03 org/apache/maven/surefire/surefire-shared-utils/3.1.2/surefire-shared-utils-3.1.2.jar
b4d6f1e2b9172fb7510e18b14aea4ca5a0646fc8b3a2d70a2ebffa6fe48787dc org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.pom
+b509448ac506d607319f182537f0b35d71007582ec741832a1f111e5b5b70b38 org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar
b518bcfc7dad77df2701bbc93c013e7165361f8b4761a995346ecda2f9d4e250 org/scoverage/scoverage-maven-plugin/1.4.1/scoverage-maven-plugin-1.4.1.pom
b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 org/sonatype/oss/oss-parent/7/oss-parent-7.pom
b58a98c56ab8efa2e343fb485b073cd583d281c01f97252ed4433b643839d994 fr/acinq/bitcoin/bitcoin-kmp-jvm/0.29.0/bitcoin-kmp-jvm-0.29.0.jar
@@ -846,6 +871,7 @@ b7cd5f090ce4be13c21f5c7791d8a439fb9d5b5ae545499d3dd45f0a9bad47fd com/typesafe/a
b80031b8cb961b73b5cb35a7c720f5f6044c2ec527fdfc341e713cfca1997c08 com/fasterxml/jackson/dataformat/jackson-dataformats-binary/2.12.6/jackson-dataformats-binary-2.12.6.pom
b817c67a40c94249fd59d4e686e3327ed0d3d3fae426b20da0f1e75652cfc461 org/postgresql/postgresql/42.6.0/postgresql-42.6.0.jar
b8bcf4a49b85db0081c6b9305f56fd79dff75be33d8ec3e0f36042d3991adf49 org/apache/maven/plugins/maven-assembly-plugin/3.6.0/maven-assembly-plugin-3.6.0.pom
+b8cef7982dd53df84c957a6e9ac89ede967cf2e6d9340ef4c51786e20548c41b org/junit/jupiter/junit-jupiter-params/5.9.0/junit-jupiter-params-5.9.0.jar
b8dc24892f9193904e454ee9ca49bf7bf020a10968be297f8375fee6ff2b681e io/zonky/test/postgres/embedded-postgres-binaries-windows-amd64/14.20.0/embedded-postgres-binaries-windows-amd64-14.20.0.jar
b93f689f924e1718e27ae835c96c0b3397768427489685d97643eb9244cf9d64 com/github/jsqlparser/jsqlparser/4.1/jsqlparser-4.1.pom
b9853cf6917a7254a02a64931c870103eaaf879732ecf3c86fc95928e996740a fr/acinq/secp256k1/secp256k1-kmp-jni-common/0.21.0/secp256k1-kmp-jni-common-0.21.0.jar
@@ -871,6 +897,7 @@ bda25fcd0fa6b0d2fe359c571867d5b28b2b7200e3dd39ffe7b9890828109f4c org/scala-sbt/
bdbdf81072c190ee9a8b181a5c58f5bd917a750fb13a256debbf53f5dbd33a2a commons-io/commons-io/2.20.0/commons-io-2.20.0.pom
bde3617ce9b5bcf9584126046080043af6a4b3baea40a3b153f02e7bbc32acac org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0.jar
bdf2a77186c9463b0e6b5b29be35b91528bb59f3148e23c52719470b9bbb3a47 io/netty/netty-resolver-dns-classes-macos/4.1.94.Final/netty-resolver-dns-classes-macos-4.1.94.Final.pom
+be42c50e6555d906b14ff0bdec92ccdf91624a6ef6d91ddd41ed591a8f3b72c8 org/apache/maven/surefire/common-java5/3.1.2/common-java5-3.1.2.pom
be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907 com/squareup/okio/okio-jvm/3.0.0/okio-jvm-3.0.0.jar
be91e6192dd0296aaff949b5b27412a56da8b41aed73d0bfacebd83717686979 org/scala-lang/scala-reflect/2.13.11/scala-reflect-2.13.11.pom
bea12e747708d25e73410ca1c731ebdfa102e8bdb6ec7d81bd4522583b234bcc org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
@@ -922,6 +949,7 @@ cd4da2ffd9adddfa30878350878286a5cfb332f7aeb08a39f24465c55e0cfb38 org/codehaus/p
cdba07964d1bb40a0761485c6b1e8c2f8fd9eb1d19c53928ac0d7f9510105c57 org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar
cdcad9355b625743f40e4cead9a96353404e010c39c808d23b044be331afa251 org/apache/maven/resolver/maven-resolver-util/1.6.3/maven-resolver-util-1.6.3.jar
ce6f6b7ab76d800fa28cd0671c8a3d55cb7f5cf787c0498bbae98a9862acbce8 org/codehaus/janino/janino/3.1.10/janino-3.1.10.jar
+ce9148998a8ef1de67e5a8f44079c03e1752eab52a23a1f76e07a8147f2c198e org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2.pom
cf31f923196c63aedecd0a57c24269bd3702a4e47c0bf0bd64b5ada5de522272 org/jetbrains/kotlin/kotlin-stdlib/2.2.21/kotlin-stdlib-2.2.21.pom
cfa008d15f052e69221e8c3193056ff95c3c594271321ccac8d72dc1a770619c com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.12.6/jackson-dataformat-cbor-2.12.6.jar
cfd872c0ec27f53ae68f43dbc0fecded8add773079a53afbd390e407b42ce72f org/apache/apache/32/apache-32.pom
@@ -946,6 +974,7 @@ d2ee7efbcdc82206c69559548aef86a99add95378f03cc58b4d9696b3969c8bb org/sonatype/s
d2f8b6fd4800b6aaf120f5a38226d5f9d5fc6db837af99e2f9b33067868b9872 org/apache/commons/commons-parent/91/commons-parent-91.pom
d31d744eb69f77dffd3722dca4094758e0f90e79918a7b3b9fdc37ce49b60342 org/codehaus/plexus/plexus-compiler-api/2.15.0/plexus-compiler-api-2.15.0.jar
d350f8f780f9ae4e9bcadc10ac6c7baef8337370bde8c7d444a52d7b81591561 com/typesafe/akka/akka-slf4j_2.13/2.6.20/akka-slf4j_2.13-2.6.20.jar
+d36a725cfedcb7f3590206866cc2836f84d12afccf7c98912f5c720e4d2208d7 com/code-intelligence/jazzer-api/0.30.0/jazzer-api-0.30.0.jar
d38fee3ac551747264be86b489e727c48ffcc75e1644e3ce3fc58c51029df118 org/scalatest/scalatest-freespec_2.13/3.2.16/scalatest-freespec_2.13-3.2.16.pom
d3cb55d6b1542fee5cad6fcfd21386b9d9efe5f08af692b4ffc7e14d2fb0ffa8 com/typesafe/akka/akka-stream-testkit_2.13/2.6.20/akka-stream-testkit_2.13-2.6.20.pom
d3ef575e3e4979678dc01bf1dcce51021493b4d11fb7f1be8ad982877c16a1c0 org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar
@@ -961,6 +990,7 @@ d7a08a99b2502f0bb68cd4e1f984f0bf69324aaa208bd0f73366c03fc3548a42 org/junit/juni
d7d713c993363764ba1667296b835ee914e19b2e70921eafe96b37f0d5b4088f javax/enterprise/cdi-api/1.2/cdi-api-1.2.pom
d811cf9f118cc2cad130c9427ad55c174d4c0a6f1a00ac1ae1c9bcbec5c44b19 io/github/java-diff-utils/java-diff-utils-parent/4.12/java-diff-utils-parent-4.12.pom
d82408269aada2eb1521ee8ff17f7c67333684f8ed2a09a9e35badd2e7575957 org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
+d83e87f1676cde44191eec5cda690492392f26923b1e498148ca739dfed75295 org/junit/junit-bom/5.9.0/junit-bom-5.9.0.pom
d8847186c55805e057c9382f51751e8d9c740153de0913fc9011add4e7a38ade org/scala-sbt/io_2.13/1.8.0/io_2.13-1.8.0.pom
d919d904486c037f8d193412da0c92e22a9fa24230b9d67a57855c5c31c7e94e org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar
d9440bbd99b48c4e2c924657a7580a33c8eab24d6d2c4551ae7791b00ea89792 org/apache/maven/maven-settings/3.8.2/maven-settings-3.8.2.jar
@@ -972,6 +1002,7 @@ dac807f65b07698ff39b1b07bfef3d87ae3fd46d91bbf8a2bc02b2a831616f68 org/apache/com
dada2833d2f72fe87a60f5cd115762a8d7e8979d19dd35559893ff3ad1d9253c org/scodec/scodec-core_2.13/1.11.10/scodec-core_2.13-1.11.10.pom
daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636 commons-logging/commons-logging/1.2/commons-logging-1.2.jar
db5f50d0615eb423bf46aef97bf0e2ffcf96f135fff6028fb6f8ffa6df280b98 org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.pom
+db86cbb3352719fa0a97800edfd09c20463c7f2ab4a04699244430bd8954583b org/junit/jupiter/junit-jupiter-engine/5.9.0/junit-jupiter-engine-5.9.0.jar
dbf7d1a66c749d7ec18aea711009d491d04575c806a9a6345598badd7cb0b26a fr/acinq/secp256k1/secp256k1-kmp-jni-jvm-darwin/0.21.0/secp256k1-kmp-jni-jvm-darwin-0.21.0.jar
dc2807225359adffd593c60a7d1352969554113a0a5a20962f23a1cfd6539ffc org/jline/jline-parent/3.19.0/jline-parent-3.19.0.pom
dcebf76a37ae96af964e6491232fbe87298d7e8cffbbfad1990e30050f6fffb9 fr/acinq/secp256k1/secp256k1-kmp-jni-jvm/0.21.0/secp256k1-kmp-jni-jvm-0.21.0.jar
@@ -1012,6 +1043,7 @@ e465bc09128b9b9ed92e26c56bba72a2c6101560abf7d60df5753f6b05222a41 org/apache/mav
e5182eb3e5e73cf89d6426ca7f5cbae2e72819b9bed68d872f80f3b535269cb8 org/codehaus/plexus/plexus-utils/3.5.0/plexus-utils-3.5.0.jar
e5430a6275a3c8c5230a73b3bf05ea20fde8383b113744a2c306f912f75fc575 io/zonky/test/postgres/embedded-postgres-binaries-linux-amd64-alpine/14.5.0/embedded-postgres-binaries-linux-amd64-alpine-14.5.0.jar
e56188aa8ce51278006aa90bc7e0f304a81e2f1219f462e7d21f262535cd2795 org/sonatype/forge/forge-parent/5/forge-parent-5.pom
+e5894b710094b4caafc6280b8829a439fb764901ea0ae18d06ed80388b309b7a org/junit/platform/junit-platform-commons/1.9.0/junit-platform-commons-1.9.0.jar
e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d commons-codec/commons-codec/1.11/commons-codec-1.11.jar
e5aebcc93079a6f6470e93a8b8c446ede7db704fc1c75c7362f7e15af76f851b io/netty/netty-codec-xml/4.1.94.Final/netty-codec-xml-4.1.94.Final.pom
e5f820f02dc5513b3f9518f6403fbcbcb0f1654cb965c759eb1e31ddd80f57fb org/codehaus/plexus/plexus-utils/3.0.17/plexus-utils-3.0.17.pom
@@ -1046,6 +1078,7 @@ ec8e973e7964aaf490dbddd39f312340e00d113b8470f135a13e35e45f4baf9f org/apache/mav
ec95e400c9b272b87254327ec408ef50f0252a5a8edf331f00902371c733fc00 org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
ecf5d06fafe2b3d85de30f81a9801d6af406278f5ec5e5a4e0d1380d12e863ca org/apache/maven/plugins/maven-source-plugin/3.3.0/maven-source-plugin-3.3.0.jar
ed4c936be78a46d73fb64a24f97f971465eb32e76c4625a9738b6f1a25b2d570 org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
+eef139eb09c98e9cdd358b6ce4c6cdd59b30c6a88096e369c33ba96e67edf0e4 org/junit/platform/junit-platform-launcher/1.9.2/junit-platform-launcher-1.9.2.jar
ef5bd5faf8c2a8846fffc26ad3ca9bab4162e18f19e8fd5f77dfc6ad21ed1699 io/netty/netty-transport-native-kqueue/4.1.94.Final/netty-transport-native-kqueue-4.1.94.Final-osx-x86_64.jar
ef5dbc7fa918b6dbba71d27e5b3d7a00df624bcfa2549a7297f36fe275f634d7 org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
ef5fa49aeb90df9cac923435577dc9c2701a18ba29191b6e407e7870795eea35 org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar
@@ -1092,6 +1125,7 @@ fa4c953376461efd10d462d07276007f196432405afa56b35475ed1324b40132 com/typesafe/a
fa4efbdc62b7e885a8ee35b23bd71a3b0c08f7fc7d2da878795042ede9f7dc48 org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
fa68451ea830572ed43ffe51d75b6a05f7a5e665a602a51f49d6be02063a65f3 org/junit/junit-bom/5.13.1/junit-bom-5.13.1.pom
fa702c68fa8bfb6c8fa631b106946b011b519ca6e423b861f2d2280b6639b887 au/com/acegi/acegi-standard-project/0.2.3/acegi-standard-project-0.2.3.pom
+fa78f56b5144d602c56c102a8f3456af855a4c7562b378aaf9ed4a423b291044 org/apache/maven/surefire/common-java5/3.1.2/common-java5-3.1.2.jar
fa9a9cb2f0d7914d7817ae96e05b84cb1ce115a40e23c0d25bf0321035d02b38 org/scala-lang/modules/scala-parallel-collections_2.13/1.0.4/scala-parallel-collections_2.13-1.0.4.pom
fb046a9c229437928bb11c2d27c8b5d773eb8a25e60cbd253d985210dedc2684 org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.pom
fb061b5d4bf3287ee3eab2aa7ca150348788d7b464e409dd59d005f0856454b2 com/typesafe/akka/akka-distributed-data_2.13/2.6.20/akka-distributed-data_2.13-2.6.20.pom
diff --git a/eclair-fuzz/README.md b/eclair-fuzz/README.md
new file mode 100644
index 0000000..45bfbdc
--- /dev/null
+++ b/eclair-fuzz/README.md
@@ -0,0 +1,58 @@
+# Eclair Fuzzing
+
+Eclair uses [Jazzer](https://github.com/CodeIntelligenceTesting/jazzer), a coverage-guided fuzz testing tool.
+
+## Prerequisites
+
+`eclair-fuzz` depends on `eclair-core` which must be installed in your local Maven repository before running fuzz tests:
+
+```shell
+./mvnw clean install -pl eclair-core -am -Dmaven.test.skip=true
+```
+
+Re-run this command whenever you modify eclair-core source code to ensure fuzz tests exercise your latest changes.
+
+## Fuzzing mode
+
+Actively generates and mutates inputs to maximize code coverage and find bugs. Runs until a crash is found or interrupted. Specify a single fuzz target since each runs indefinitely.
+
+New-coverage inputs are saved to `.cifuzz-corpus/`, crash inputs to `src/test/resources/`.
+
+```shell
+JAZZER_FUZZ=1 ./mvnw test -f eclair-fuzz/pom.xml -Dtest=<TestClass>#<fuzzMethod>
+
+# For example:
+# JAZZER_FUZZ=1 ./mvnw test -f eclair-fuzz/pom.xml -Dtest=LightningMessageCodecsFuzzTest#fuzzOpenChannel
+```
+
+## Regression mode
+
+Replays previously saved crash inputs to verify they no longer fail. This is the default when `JAZZER_FUZZ` is not set.
+
+Set `JAZZER_COVERAGE=1` to also replay inputs from the generated corpus directory (`.cifuzz-corpus/`).
+
+```shell
+# Replay crash inputs only (all fuzz targets)
+./mvnw test -f eclair-fuzz/pom.xml
+
+# Replay crash inputs + corpus (all fuzz targets)
+JAZZER_COVERAGE=1 ./mvnw test -f eclair-fuzz/pom.xml
+```
+
+## Coverage report
+
+To generate an HTML coverage report, download and unzip a [JaCoCo](https://github.com/jacoco/jacoco/releases) release, then run:
+
+```shell
+./eclair-fuzz/generate-coverage-report.sh /path/to/jacoco/lib
+```
+
+This runs the fuzz tests in regression mode (with corpus) under the JaCoCo agent and generates a report at `eclair-fuzz/target/coverage-report/index.html`.
+
+## Updating checksums
+
+`eclair-fuzz` is a standalone module, so the standard checksum recording command (see `BUILD.md`) does not cover it. When updating dependencies in `eclair-fuzz` (e.g. Jazzer), run:
+
+```shell
+./mvnw clean install -DskipTests -f eclair-fuzz/pom.xml -Daether.artifactResolver.postProcessor.trustedChecksums.record
+```
diff --git a/eclair-fuzz/ci-fuzz.sh b/eclair-fuzz/ci-fuzz.sh
new file mode 100755
index 0000000..dc72cb8
--- /dev/null
+++ b/eclair-fuzz/ci-fuzz.sh
@@ -0,0 +1,69 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# CI fuzzing script: discovers all @FuzzTest targets and fuzzes each one
+# in a separate JVM process since Jazzer only supports one fuzz target per JVM in fuzzing mode.
+# See FuzzTestExecutor#prepare: https://github.com/CodeIntelligenceTesting/jazzer/blob/main/src/main/java/com/code_intelligence/jazzer/junit/FuzzTestExecutor.java
+#
+# Usage:
+# JAZZER_MAX_DURATION=2m ./eclair-fuzz/ci-fuzz.sh
+#
+# Prerequisites:
+# eclair-core must be installed first:
+# ./mvnw clean install -pl eclair-core -am -Dmaven.test.skip=true
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+SRC_DIR="$SCRIPT_DIR/src/test/scala"
+
+# Default max duration to prevent indefinite fuzzing when run locally.
+: "${JAZZER_MAX_DURATION:=5m}"
+export JAZZER_MAX_DURATION
+
+# Discover all @FuzzTest methods: extracts "ClassName#methodName" pairs.
+TARGETS=()
+while IFS= read -r src_file; do
+ class_name="$(basename "$src_file" .scala)"
+
+ # Extract method names annotated with @FuzzTest.
+ methods=$(grep -A1 '@FuzzTest' "$src_file" | grep -oP '(?<=def )\w+')
+
+ for method in $methods; do
+ TARGETS+=("${class_name}#${method}")
+ done
+done < <(find "$SRC_DIR" -name '*FuzzTest.scala' -type f)
+
+if [ ${#TARGETS[@]} -eq 0 ]; then
+ echo "Error: no @FuzzTest targets found in $SRC_DIR"
+ exit 1
+fi
+
+echo "==> Discovered ${#TARGETS[@]} fuzz target(s) (max duration: $JAZZER_MAX_DURATION):"
+for target in "${TARGETS[@]}"; do
+ echo " $target"
+done
+echo ""
+
+# Fuzz each target in a separate JVM invocation.
+# Jazzer can only fuzz one target per JVM process.
+FAILED=()
+for target in "${TARGETS[@]}"; do
+ echo "==> Fuzzing: $target"
+ if JAZZER_FUZZ=1 "$PROJECT_ROOT/mvnw" test -f "$SCRIPT_DIR/pom.xml" -Dtest="$target" -DfailIfNoTests=true; then
+ echo "==> PASSED: $target"
+ else
+ echo "==> FAILED: $target"
+ FAILED+=("$target")
+ fi
+ echo ""
+done
+
+# Summary
+echo "==> Fuzzing complete: ${#TARGETS[@]} target(s), ${#FAILED[@]} failure(s)"
+if [ ${#FAILED[@]} -gt 0 ]; then
+ echo "==> Failed targets:"
+ for target in "${FAILED[@]}"; do
+ echo " $target"
+ done
+ exit 1
+fi
diff --git a/eclair-fuzz/generate-coverage-report.sh b/eclair-fuzz/generate-coverage-report.sh
new file mode 100755
index 0000000..faaae1b
--- /dev/null
+++ b/eclair-fuzz/generate-coverage-report.sh
@@ -0,0 +1,81 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# Generate an HTML coverage report for eclair-fuzz tests using JaCoCo.
+#
+# Usage:
+# ./eclair-fuzz/generate-coverage-report.sh <path/to/jacoco/lib>
+#
+# Example:
+# ./eclair-fuzz/generate-coverage-report.sh /tmp/jacoco/lib
+#
+# Prerequisites:
+# - JaCoCo CLI: https://github.com/jacoco/jacoco/releases
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+
+if [ $# -lt 1 ]; then
+ echo "Usage: $0 <path/to/jacoco/lib>"
+ echo ""
+ echo "Download JaCoCo from: https://github.com/jacoco/jacoco/releases"
+ echo ""
+ echo "Then run:"
+ echo " $0 /path/to/jacoco/lib"
+ exit 1
+fi
+
+JACOCO_LIB="$1"
+JACOCO_AGENT="$JACOCO_LIB/jacocoagent.jar"
+JACOCO_CLI="$JACOCO_LIB/jacococli.jar"
+
+if [ ! -f "$JACOCO_AGENT" ]; then
+ echo "Error: JaCoCo agent not found at $JACOCO_AGENT"
+ exit 1
+fi
+if [ ! -f "$JACOCO_CLI" ]; then
+ echo "Error: JaCoCo CLI not found at $JACOCO_CLI"
+ exit 1
+fi
+
+EXEC_FILE="$SCRIPT_DIR/target/jacoco.exec"
+REPORT_DIR="$SCRIPT_DIR/target/coverage-report"
+CLASSFILES="$PROJECT_ROOT/eclair-core/target/classes"
+SOURCEFILES="$PROJECT_ROOT/eclair-core/src/main/scala"
+
+if [ ! -d "$CLASSFILES" ]; then
+ echo "Error: eclair-core classes not found at $CLASSFILES"
+ echo ""
+ echo "Build eclair-core first:"
+ echo " ./mvnw clean install -pl eclair-core -am -Dmaven.test.skip=true"
+ exit 1
+fi
+
+echo "==> Running fuzz tests in regression mode with JaCoCo agent..."
+# JAZZER_COVERAGE=1 replays both crash inputs and the generated corpus (.cifuzz-corpus/).
+# -DargLine sets JVM options on the forked test JVM launched by Maven Surefire.
+# See: https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#argLine
+# The JaCoCo agent is attached via -javaagent to collect execution data:
+# destfile - where to write the coverage .exec file
+# append - overwrite (not append to) any existing exec file from a previous run
+# includes - restrict instrumentation to eclair packages for faster runs
+# See: https://www.jacoco.org/jacoco/trunk/doc/agent.html
+JAZZER_COVERAGE=1 "$PROJECT_ROOT/mvnw" test -f "$SCRIPT_DIR/pom.xml" \
+ -DargLine="-javaagent:${JACOCO_AGENT}=destfile=${EXEC_FILE},append=false,includes=fr.acinq.eclair.*"
+
+if [ ! -f "$EXEC_FILE" ]; then
+ echo "Error: JaCoCo execution data not found at $EXEC_FILE"
+ echo "The test run may not have produced any coverage data."
+ exit 1
+fi
+
+echo "==> Generating HTML coverage report..."
+# Use the JaCoCo CLI to convert the .exec data into a human-readable HTML report.
+# See: https://www.jacoco.org/jacoco/trunk/doc/cli.html
+java -jar "$JACOCO_CLI" report "$EXEC_FILE" \
+ --classfiles "$CLASSFILES" \
+ --sourcefiles "$SOURCEFILES" \
+ --html "$REPORT_DIR" \
+ --name "Eclair Fuzz Coverage Report"
+
+echo "==> Report generated at: $REPORT_DIR/index.html"
diff --git a/eclair-fuzz/pom.xml b/eclair-fuzz/pom.xml
new file mode 100644
index 0000000..b78defe
--- /dev/null
+++ b/eclair-fuzz/pom.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>fr.acinq.eclair</groupId>
+ <artifactId>eclair_2.13</artifactId>
+ <version>0.14.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>eclair-fuzz_2.13</artifactId>
+ <packaging>jar</packaging>
+
+ <name>${project.artifactId}</name>
+ <description>Fuzz tests for eclair</description>
+
+ <build>
+ <plugins>
+ <!-- Disable ScalaTest - this module uses Surefire/JUnit 5 for Jazzer -->
+ <plugin>
+ <groupId>org.scalatest</groupId>
+ <artifactId>scalatest-maven-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ <!-- Enable Surefire for Jazzer -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>false</skipTests>
+ <includes>
+ <include>**/*FuzzTest.class</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>fr.acinq.eclair</groupId>
+ <artifactId>eclair-core_${scala.version.short}</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Jazzer fuzz testing -->
+ <dependency>
+ <groupId>com.code-intelligence</groupId>
+ <artifactId>jazzer-junit</artifactId>
+ <version>0.30.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.code-intelligence</groupId>
+ <artifactId>jazzer-api</artifactId>
+ <version>0.30.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/eclair-fuzz/src/test/resources/junit-platform.properties b/eclair-fuzz/src/test/resources/junit-platform.properties
new file mode 100644
index 0000000..2702d59
--- /dev/null
+++ b/eclair-fuzz/src/test/resources/junit-platform.properties
@@ -0,0 +1,5 @@
+# Jazzer configuration
+# See: https://github.com/CodeIntelligenceTesting/jazzer/blob/main/docs/arguments-and-configuration-options.md
+
+# Restrict coverage instrumentation to eclair packages for faster, more targeted fuzzing.
+jazzer.instrument=fr.acinq.eclair.**
diff --git a/eclair-fuzz/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsFuzzTest.scala b/eclair-fuzz/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsFuzzTest.scala
new file mode 100644
index 0000000..da79672
--- /dev/null
+++ b/eclair-fuzz/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsFuzzTest.scala
@@ -0,0 +1,51 @@
+package fr.acinq.eclair.wire.protocol
+
+import com.code_intelligence.jazzer.api.FuzzedDataProvider
+import com.code_intelligence.jazzer.junit.FuzzTest
+import fr.acinq.bitcoin.scalacompat.Protocol
+import fr.acinq.eclair.wire.protocol.LightningMessageCodecs.lightningMessageCodec
+import scodec.bits.ByteVector
+
+import java.nio.ByteOrder
+
+/**
+ * Fuzz tests for Lightning message codecs.
+ */
+class LightningMessageCodecsFuzzTest {
+
+ /**
+ * Prepend a two-byte big-endian message type to the fuzz data, then verify
+ * that the codec does not throw on arbitrary input and that the canonical
+ * encoding is stable.
+ */
+ private def codecRoundTrip(data: FuzzedDataProvider, msgType: Int): Unit = {
+ val wire = Protocol.writeUInt16(msgType, ByteOrder.BIG_ENDIAN) ++ ByteVector(data.consumeRemainingAsBytes())
+
+ val decoded = lightningMessageCodec.decode(wire.bits)
+ if (decoded.isFailure) return
+
+ val encoded1 = lightningMessageCodec.encode(decoded.require.value).require
+ val encoded2 = lightningMessageCodec.encode(lightningMessageCodec.decode(encoded1).require.value).require
+ assert(encoded1 == encoded2)
+ }
+
+ @FuzzTest(maxDuration = "")
+ def fuzzOpenChannel(data: FuzzedDataProvider): Unit =
+ codecRoundTrip(data, 32)
+
+ @FuzzTest(maxDuration = "")
+ def fuzzAcceptChannel(data: FuzzedDataProvider): Unit =
+ codecRoundTrip(data, 33)
+
+ @FuzzTest(maxDuration = "")
+ def fuzzFundingCreated(data: FuzzedDataProvider): Unit =
+ codecRoundTrip(data, 34)
+
+ @FuzzTest(maxDuration = "")
+ def fuzzFundingSigned(data: FuzzedDataProvider): Unit =
+ codecRoundTrip(data, 35)
+
+ @FuzzTest(maxDuration = "")
+ def fuzzChannelReady(data: FuzzedDataProvider): Unit =
+ codecRoundTrip(data, 36)
+}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.