This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/camel-main by this push:
new 5289fdacb9 feat: remove eddsa library dependency code since it has
been removed in camel core (#8773)
5289fdacb9 is described below
commit 5289fdacb9ff7cad788e84d3dae3365dd8a195a2
Author: Gaƫlle Fournier <[email protected]>
AuthorDate: Fri Jun 19 09:26:28 2026 +0200
feat: remove eddsa library dependency code since it has been removed in
camel core (#8773)
---
extensions/nats/runtime/pom.xml | 10 ---
.../nats/graal/EdDSAEngineSubstitutions.java | 95 ----------------------
.../component/ssh/deployment/SshProcessor.java | 31 ++-----
pom.xml | 1 -
poms/bom/pom.xml | 5 --
poms/bom/src/main/generated/flattened-full-pom.xml | 5 --
.../src/main/generated/flattened-reduced-pom.xml | 5 --
.../generated/flattened-reduced-verbose-pom.xml | 5 --
8 files changed, 7 insertions(+), 150 deletions(-)
diff --git a/extensions/nats/runtime/pom.xml b/extensions/nats/runtime/pom.xml
index d5064b5c21..9899367de5 100644
--- a/extensions/nats/runtime/pom.xml
+++ b/extensions/nats/runtime/pom.xml
@@ -48,16 +48,6 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-nats</artifactId>
</dependency>
- <dependency>
- <groupId>net.i2p.crypto</groupId>
- <artifactId>eddsa</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.graalvm.sdk</groupId>
- <artifactId>nativeimage</artifactId>
- <scope>provided</scope>
- </dependency>
</dependencies>
<build>
diff --git
a/extensions/nats/runtime/src/main/java/org/apache/camel/component/nats/graal/EdDSAEngineSubstitutions.java
b/extensions/nats/runtime/src/main/java/org/apache/camel/component/nats/graal/EdDSAEngineSubstitutions.java
deleted file mode 100644
index 9325c3d2a9..0000000000
---
a/extensions/nats/runtime/src/main/java/org/apache/camel/component/nats/graal/EdDSAEngineSubstitutions.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.nats.graal;
-
-import java.security.InvalidKeyException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.PublicKey;
-import java.security.spec.InvalidKeySpecException;
-import java.security.spec.X509EncodedKeySpec;
-import java.util.function.BooleanSupplier;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-import net.i2p.crypto.eddsa.EdDSAKey;
-import net.i2p.crypto.eddsa.EdDSAPublicKey;
-
-/**
- * TODO: https://github.com/apache/camel-quarkus/issues/5233
- *
- * Remove this when net.i2p.crypto:eddsa >= 0.3.1 is released.
- */
-@TargetClass(className = "net.i2p.crypto.eddsa.EdDSAEngine", onlyWith =
IsEddsaCryptoAvailable.class)
-public final class EdDSAEngineSubstitutions {
- @Alias
- private EdDSAKey key;
- @Alias
- private MessageDigest digest;
-
- @Alias
- public void reset() {
- }
-
- /**
- * Fix for JDK 17 to avoid importing JDK internal API
sun.security.x509.X509Key.
- * Based on the original change:
https://github.com/str4d/ed25519-java/commit/35c34a549cc933dc2d1d23ad4bfa88187fe77e7a
- */
- @Substitute
- protected void engineInitVerify(PublicKey publicKey) throws
InvalidKeyException {
- reset();
- if (publicKey instanceof EdDSAPublicKey) {
- key = (EdDSAPublicKey) publicKey;
-
- if (digest == null) {
- // Instantiate the digest from the key parameters
- try {
- digest =
MessageDigest.getInstance(key.getParams().getHashAlgorithm());
- } catch (NoSuchAlgorithmException e) {
- throw new InvalidKeyException(
- "cannot get required digest " +
key.getParams().getHashAlgorithm() + " for private key.");
- }
- } else if
(!key.getParams().getHashAlgorithm().equals(digest.getAlgorithm()))
- throw new InvalidKeyException("Key hash algorithm does not
match chosen digest");
- } else if (publicKey.getFormat().equals("X.509")) {
- // X509Certificate will sometimes contain an X509Key rather than
the EdDSAPublicKey itself; the contained
- // key is valid but needs to be instanced as an EdDSAPublicKey
before it can be used.
- EdDSAPublicKey parsedPublicKey;
- try {
- parsedPublicKey = new EdDSAPublicKey(new
X509EncodedKeySpec(publicKey.getEncoded()));
- } catch (InvalidKeySpecException ex) {
- throw new InvalidKeyException("cannot handle X.509 EdDSA
public key: " + publicKey.getAlgorithm());
- }
- engineInitVerify(parsedPublicKey);
- } else {
- throw new InvalidKeyException("cannot identify EdDSA public key: "
+ publicKey.getClass());
- }
- }
-}
-
-final class IsEddsaCryptoAvailable implements BooleanSupplier {
- @Override
- public boolean getAsBoolean() {
- try {
- Class.forName("net.i2p.crypto.eddsa.EdDSAEngine", false,
Thread.currentThread().getContextClassLoader());
- return true;
- } catch (ClassNotFoundException e) {
- return false;
- }
- }
-}
diff --git
a/extensions/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
b/extensions/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
index 8395b66cc0..b1a79d788c 100644
---
a/extensions/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
+++
b/extensions/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
@@ -19,8 +19,6 @@ package org.apache.camel.quarkus.component.ssh.deployment;
import java.security.KeyFactory;
import java.security.KeyPairGenerator;
import java.security.Signature;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import javax.crypto.KeyAgreement;
@@ -52,29 +50,14 @@ class SshProcessor {
@BuildStep
void registerForReflection(BuildProducer<ReflectiveClassBuildItem>
reflectiveClasses) {
- // Register standard Java security and SSHD classes
- List<Class<?>> classes = new ArrayList<>(Arrays.asList(
- KeyPairGenerator.class,
- KeyAgreement.class,
- KeyFactory.class,
- Signature.class,
- Mac.class,
- Nio2ServiceFactoryFactory.class));
-
- // Conditionally register net.i2p.crypto EdDSA classes only if present
on classpath.
- // When net.i2p.crypto:eddsa is excluded, Apache SSHD 2.15+
automatically falls back
- // to BouncyCastle for EdDSA support (see
BouncyCastleSecurityProviderRegistrar).
- try {
- classes.add(Class.forName("net.i2p.crypto.eddsa.EdDSAEngine",
false,
- Thread.currentThread().getContextClassLoader()));
- classes.add(Class.forName("net.i2p.crypto.eddsa.KeyFactory", false,
- Thread.currentThread().getContextClassLoader()));
- } catch (ClassNotFoundException e) {
- // EdDSA classes not available - BouncyCastle will handle EdDSA
instead
- }
-
reflectiveClasses.produce(
- ReflectiveClassBuildItem.builder(classes.toArray(new
Class<?>[0])).methods().build());
+ ReflectiveClassBuildItem.builder(
+ KeyPairGenerator.class,
+ KeyAgreement.class,
+ KeyFactory.class,
+ Signature.class,
+ Mac.class,
+ Nio2ServiceFactoryFactory.class).methods().build());
}
@BuildStep
diff --git a/pom.xml b/pom.xml
index ca07473e8a..c676a225c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,7 +94,6 @@
<dfdl-scala.version>2.12.20</dfdl-scala.version>
<drill-jdbc-all.version>${apache-drill-version}</drill-jdbc-all.version>
<dropwizard-metrics.version>${metrics-version}</dropwizard-metrics.version>
- <eddsa.version>0.3.0</eddsa.version>
<eclipse-transformer.version>0.5.0</eclipse-transformer.version>
<freemarker.version>2.3.34</freemarker.version><!-- @sync
io.quarkiverse.freemarker:quarkus-freemarker-parent:${quarkiverse-freemarker.version}
prop:freemarker.version -->
<geny.version>0.6.2</geny.version>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 258dcfff3b..8d75aad411 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -7912,11 +7912,6 @@
<artifactId>mbassador</artifactId>
<version>${mbassador.version}</version>
</dependency>
- <dependency>
- <groupId>net.i2p.crypto</groupId>
- <artifactId>eddsa</artifactId>
- <version>${eddsa.version}</version>
- </dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml
b/poms/bom/src/main/generated/flattened-full-pom.xml
index f95479b3b3..c398b00bc3 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -7794,11 +7794,6 @@
<artifactId>mbassador</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>1.3.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
- <dependency>
- <groupId>net.i2p.crypto</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
- <artifactId>eddsa</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
- <version>0.3.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
- </dependency>
<dependency>
<groupId>net.minidev</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>json-smart</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index b80e48ec5c..30ebee47c5 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -7733,11 +7733,6 @@
<artifactId>mbassador</artifactId>
<version>1.3.0</version>
</dependency>
- <dependency>
- <groupId>net.i2p.crypto</groupId>
- <artifactId>eddsa</artifactId>
- <version>0.3.0</version>
- </dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index b6df38d483..511dc10a04 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -7733,11 +7733,6 @@
<artifactId>mbassador</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>1.3.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
- <dependency>
- <groupId>net.i2p.crypto</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
- <artifactId>eddsa</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
- <version>0.3.0</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
- </dependency>
<dependency>
<groupId>net.minidev</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>json-smart</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->