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

commit ba4c2979131aac2b9259d6c28aa3eeeb1823adad
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 87fba5b43d..80df9d64ec 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 6b20d63ec4..18c0a5cfc7 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 43e400bf89..9e2b4e11cf 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 749052395f..b0736d0592 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} -->

Reply via email to