This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch pqc-keylifecycle-managerr
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 9a0eed93b594900a562e4d7e43e8cd9ce10d4fbb
Author: Andrea Cosentino <[email protected]>
AuthorDate: Fri Feb 27 15:05:50 2026 +0100

    CAMEL-23098 - Camel-PQC: Wire KeyLifecycleManager into PQC producer to 
enable key lifecycle operations
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .gitignore                                         |   1 +
 AGENTS.md                                          |  29 +++
 .../org/apache/camel/catalog/components/pqc.json   |  42 ++--
 .../component/pqc/PQCComponentConfigurer.java      |   8 +-
 .../camel/component/pqc/PQCEndpointConfigurer.java |   8 +-
 .../camel/component/pqc/PQCEndpointUriFactory.java |   3 +-
 .../org/apache/camel/component/pqc/pqc.json        |  42 ++--
 .../camel/component/pqc/PQCConfiguration.java      |  17 ++
 .../apache/camel/component/pqc/PQCProducer.java    | 226 +++++++++++++++++++++
 .../component/pqc/stateful/StatefulKeyState.java   |  63 ++++++
 .../component/dsl/PqcComponentBuilderFactory.java  |  18 ++
 .../endpoint/dsl/PQCEndpointBuilderFactory.java    |  32 +++
 12 files changed, 446 insertions(+), 43 deletions(-)

diff --git a/.gitignore b/.gitignore
index 6dafc7809cc6..de2fa30d9aef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,3 +30,4 @@ mvnd.zip*
 .camel-jbang
 .camel-jbang-run
 .mvn/.develocity/develocity-workspace-id
+backlog
diff --git a/AGENTS.md b/AGENTS.md
index f2f3385bef39..1a03fda5f7ad 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -135,3 +135,32 @@ Reference JIRA when applicable.
 - https://issues.apache.org/jira/browse/CAMEL
 - [email protected]
 - https://camel.zulipchat.com/
+
+<!-- BACKLOG.MD MCP GUIDELINES START -->
+
+<CRITICAL_INSTRUCTION>
+
+## BACKLOG WORKFLOW INSTRUCTIONS
+
+This project uses Backlog.md MCP for all task and project management 
activities.
+
+**CRITICAL GUIDANCE**
+
+- If your client supports MCP resources, read `backlog://workflow/overview` to 
understand when and how to use Backlog for this project.
+- If your client only supports tools or the above request fails, call 
`backlog.get_workflow_overview()` tool to load the tool-oriented overview (it 
lists the matching guide tools).
+
+- **First time working here?** Read the overview resource IMMEDIATELY to learn 
the workflow
+- **Already familiar?** You should have the overview cached ("## Backlog.md 
Overview (MCP)")
+- **When to read it**: BEFORE creating tasks, or when you're unsure whether to 
track work
+
+These guides cover:
+- Decision framework for when to create tasks
+- Search-first workflow to avoid duplicates
+- Links to detailed guides for task creation, execution, and finalization
+- MCP tools reference
+
+You MUST read the overview resource to understand the complete workflow. The 
information is NOT summarized here.
+
+</CRITICAL_INSTRUCTION>
+
+<!-- BACKLOG.MD MCP GUIDELINES END -->
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pqc.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pqc.json
index 3fbc016cd7cc..a7ad60e9a84c 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pqc.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pqc.json
@@ -36,17 +36,18 @@
     "hybridKdfAlgorithm": { "index": 9, "kind": "property", "displayName": 
"Hybrid Kdf Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "HKDF-SHA256", 
"HKDF-SHA384", "HKDF-SHA512" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "HKDF-SHA256", 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "de [...]
     "keyEncapsulationAlgorithm": { "index": 10, "kind": "property", 
"displayName": "Key Encapsulation Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "MLKEM", "BIKE", "HQC", "CMCE", "SABER", "FRODO", "NTRU", 
"NTRULPRime", "SNTRUPrime", "KYBER" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configu [...]
     "keyGenerator": { "index": 11, "kind": "property", "displayName": "Key 
Generator", "group": "advanced", "label": "advanced", "required": false, 
"type": "object", "javaType": "javax.crypto.KeyGenerator", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The Key Generator to be 
used in encapsulation and extraction" },
-    "keyPair": { "index": 12, "kind": "property", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
-    "keyPairAlias": { "index": 13, "kind": "property", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
-    "keyStore": { "index": 14, "kind": "property", "displayName": "Key Store", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyStore", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "A KeyStore where we could get Cryptographic 
material" },
-    "keyStorePassword": { "index": 15, "kind": "property", "displayName": "Key 
Store Password", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
-    "signatureAlgorithm": { "index": 16, "kind": "property", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "c [...]
-    "signer": { "index": 17, "kind": "property", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
-    "storeExtractedSecretKeyAsHeader": { "index": 18, "kind": "property", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSec [...]
-    "symmetricKeyAlgorithm": { "index": 19, "kind": "property", "displayName": 
"Symmetric Key Algorithm", "group": "advanced", "label": "advanced", 
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ 
"AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", "CHACHA7539", 
"DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", "HC256", 
"SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "co [...]
-    "symmetricKeyLength": { "index": 20, "kind": "property", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" },
-    "healthCheckConsumerEnabled": { "index": 21, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
-    "healthCheckProducerEnabled": { "index": 22, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
+    "keyLifecycleManager": { "index": 12, "kind": "property", "displayName": 
"Key Lifecycle Manager", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyLifecycleManager 
to  [...]
+    "keyPair": { "index": 13, "kind": "property", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
+    "keyPairAlias": { "index": 14, "kind": "property", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
+    "keyStore": { "index": 15, "kind": "property", "displayName": "Key Store", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyStore", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "A KeyStore where we could get Cryptographic 
material" },
+    "keyStorePassword": { "index": 16, "kind": "property", "displayName": "Key 
Store Password", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
+    "signatureAlgorithm": { "index": 17, "kind": "property", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "c [...]
+    "signer": { "index": 18, "kind": "property", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
+    "storeExtractedSecretKeyAsHeader": { "index": 19, "kind": "property", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSec [...]
+    "symmetricKeyAlgorithm": { "index": 20, "kind": "property", "displayName": 
"Symmetric Key Algorithm", "group": "advanced", "label": "advanced", 
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ 
"AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", "CHACHA7539", 
"DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", "HC256", 
"SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "co [...]
+    "symmetricKeyLength": { "index": 21, "kind": "property", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" },
+    "healthCheckConsumerEnabled": { "index": 22, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckProducerEnabled": { "index": 23, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
   },
   "headers": {
     "CamelPQCOperation": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The operation we want to perform", "constantName": 
"org.apache.camel.component.pqc.PQCConstants#OPERATION" },
@@ -85,14 +86,15 @@
     "hybridKdfAlgorithm": { "index": 8, "kind": "parameter", "displayName": 
"Hybrid Kdf Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "HKDF-SHA256", 
"HKDF-SHA384", "HKDF-SHA512" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "HKDF-SHA256", 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "d [...]
     "keyEncapsulationAlgorithm": { "index": 9, "kind": "parameter", 
"displayName": "Key Encapsulation Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "MLKEM", "BIKE", "HQC", "CMCE", "SABER", "FRODO", "NTRU", 
"NTRULPRime", "SNTRUPrime", "KYBER" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configu [...]
     "keyGenerator": { "index": 10, "kind": "parameter", "displayName": "Key 
Generator", "group": "advanced", "label": "advanced", "required": false, 
"type": "object", "javaType": "javax.crypto.KeyGenerator", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The Key Generator to be 
used in encapsulation and extraction" },
-    "keyPair": { "index": 11, "kind": "parameter", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
-    "keyPairAlias": { "index": 12, "kind": "parameter", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
-    "keyStore": { "index": 13, "kind": "parameter", "displayName": "Key 
Store", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "java.security.KeyStore", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyStore where we 
could get Cryptographic material" },
-    "keyStorePassword": { "index": 14, "kind": "parameter", "displayName": 
"Key Store Password", "group": "advanced", "label": "advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
-    "signatureAlgorithm": { "index": 15, "kind": "parameter", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", " [...]
-    "signer": { "index": 16, "kind": "parameter", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
-    "storeExtractedSecretKeyAsHeader": { "index": 17, "kind": "parameter", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSe [...]
-    "symmetricKeyAlgorithm": { "index": 18, "kind": "parameter", 
"displayName": "Symmetric Key Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", 
"CHACHA7539", "DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", 
"HC256", "SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "c [...]
-    "symmetricKeyLength": { "index": 19, "kind": "parameter", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" }
+    "keyLifecycleManager": { "index": 11, "kind": "parameter", "displayName": 
"Key Lifecycle Manager", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyLifecycleManager 
to [...]
+    "keyPair": { "index": 12, "kind": "parameter", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
+    "keyPairAlias": { "index": 13, "kind": "parameter", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
+    "keyStore": { "index": 14, "kind": "parameter", "displayName": "Key 
Store", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "java.security.KeyStore", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyStore where we 
could get Cryptographic material" },
+    "keyStorePassword": { "index": 15, "kind": "parameter", "displayName": 
"Key Store Password", "group": "advanced", "label": "advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
+    "signatureAlgorithm": { "index": 16, "kind": "parameter", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", " [...]
+    "signer": { "index": 17, "kind": "parameter", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
+    "storeExtractedSecretKeyAsHeader": { "index": 18, "kind": "parameter", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSe [...]
+    "symmetricKeyAlgorithm": { "index": 19, "kind": "parameter", 
"displayName": "Symmetric Key Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", 
"CHACHA7539", "DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", 
"HC256", "SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "c [...]
+    "symmetricKeyLength": { "index": 20, "kind": "parameter", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" }
   }
 }
diff --git 
a/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCComponentConfigurer.java
 
b/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCComponentConfigurer.java
index 6017b9fcb364..a4da0eb7933c 100644
--- 
a/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCComponentConfigurer.java
+++ 
b/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCComponentConfigurer.java
@@ -53,6 +53,8 @@ public class PQCComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "keyEncapsulationAlgorithm": 
getOrCreateConfiguration(target).setKeyEncapsulationAlgorithm(property(camelContext,
 java.lang.String.class, value)); return true;
         case "keygenerator":
         case "keyGenerator": 
getOrCreateConfiguration(target).setKeyGenerator(property(camelContext, 
javax.crypto.KeyGenerator.class, value)); return true;
+        case "keylifecyclemanager":
+        case "keyLifecycleManager": 
getOrCreateConfiguration(target).setKeyLifecycleManager(property(camelContext, 
org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager.class, value)); 
return true;
         case "keypair":
         case "keyPair": 
getOrCreateConfiguration(target).setKeyPair(property(camelContext, 
java.security.KeyPair.class, value)); return true;
         case "keypairalias":
@@ -79,7 +81,7 @@ public class PQCComponentConfigurer extends 
PropertyConfigurerSupport implements
 
     @Override
     public String[] getAutowiredNames() {
-        return new String[]{"classicalKeyAgreement", "classicalKeyPair", 
"classicalSigner", "keyGenerator", "keyPair", "keyStore", "signer"};
+        return new String[]{"classicalKeyAgreement", "classicalKeyPair", 
"classicalSigner", "keyGenerator", "keyLifecycleManager", "keyPair", 
"keyStore", "signer"};
     }
 
     @Override
@@ -108,6 +110,8 @@ public class PQCComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "keyEncapsulationAlgorithm": return java.lang.String.class;
         case "keygenerator":
         case "keyGenerator": return javax.crypto.KeyGenerator.class;
+        case "keylifecyclemanager":
+        case "keyLifecycleManager": return 
org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager.class;
         case "keypair":
         case "keyPair": return java.security.KeyPair.class;
         case "keypairalias":
@@ -159,6 +163,8 @@ public class PQCComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "keyEncapsulationAlgorithm": return 
getOrCreateConfiguration(target).getKeyEncapsulationAlgorithm();
         case "keygenerator":
         case "keyGenerator": return 
getOrCreateConfiguration(target).getKeyGenerator();
+        case "keylifecyclemanager":
+        case "keyLifecycleManager": return 
getOrCreateConfiguration(target).getKeyLifecycleManager();
         case "keypair":
         case "keyPair": return getOrCreateConfiguration(target).getKeyPair();
         case "keypairalias":
diff --git 
a/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointConfigurer.java
 
b/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointConfigurer.java
index 6b006728cb64..1d15c2a783b7 100644
--- 
a/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointConfigurer.java
+++ 
b/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointConfigurer.java
@@ -39,6 +39,8 @@ public class PQCEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "keyEncapsulationAlgorithm": 
target.getConfiguration().setKeyEncapsulationAlgorithm(property(camelContext, 
java.lang.String.class, value)); return true;
         case "keygenerator":
         case "keyGenerator": 
target.getConfiguration().setKeyGenerator(property(camelContext, 
javax.crypto.KeyGenerator.class, value)); return true;
+        case "keylifecyclemanager":
+        case "keyLifecycleManager": 
target.getConfiguration().setKeyLifecycleManager(property(camelContext, 
org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager.class, value)); 
return true;
         case "keypair":
         case "keyPair": 
target.getConfiguration().setKeyPair(property(camelContext, 
java.security.KeyPair.class, value)); return true;
         case "keypairalias":
@@ -65,7 +67,7 @@ public class PQCEndpointConfigurer extends 
PropertyConfigurerSupport implements
 
     @Override
     public String[] getAutowiredNames() {
-        return new String[]{"classicalKeyAgreement", "classicalKeyPair", 
"classicalSigner", "keyGenerator", "keyPair", "keyStore", "signer"};
+        return new String[]{"classicalKeyAgreement", "classicalKeyPair", 
"classicalSigner", "keyGenerator", "keyLifecycleManager", "keyPair", 
"keyStore", "signer"};
     }
 
     @Override
@@ -87,6 +89,8 @@ public class PQCEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "keyEncapsulationAlgorithm": return java.lang.String.class;
         case "keygenerator":
         case "keyGenerator": return javax.crypto.KeyGenerator.class;
+        case "keylifecyclemanager":
+        case "keyLifecycleManager": return 
org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager.class;
         case "keypair":
         case "keyPair": return java.security.KeyPair.class;
         case "keypairalias":
@@ -131,6 +135,8 @@ public class PQCEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "keyEncapsulationAlgorithm": return 
target.getConfiguration().getKeyEncapsulationAlgorithm();
         case "keygenerator":
         case "keyGenerator": return 
target.getConfiguration().getKeyGenerator();
+        case "keylifecyclemanager":
+        case "keyLifecycleManager": return 
target.getConfiguration().getKeyLifecycleManager();
         case "keypair":
         case "keyPair": return target.getConfiguration().getKeyPair();
         case "keypairalias":
diff --git 
a/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointUriFactory.java
 
b/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointUriFactory.java
index 7cd7770f07b0..60e66d94b1e8 100644
--- 
a/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointUriFactory.java
+++ 
b/components/camel-pqc/src/generated/java/org/apache/camel/component/pqc/PQCEndpointUriFactory.java
@@ -23,7 +23,7 @@ public class PQCEndpointUriFactory extends 
org.apache.camel.support.component.En
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(20);
+        Set<String> props = new HashSet<>(21);
         props.add("classicalKEMAlgorithm");
         props.add("classicalKeyAgreement");
         props.add("classicalKeyPair");
@@ -32,6 +32,7 @@ public class PQCEndpointUriFactory extends 
org.apache.camel.support.component.En
         props.add("hybridKdfAlgorithm");
         props.add("keyEncapsulationAlgorithm");
         props.add("keyGenerator");
+        props.add("keyLifecycleManager");
         props.add("keyPair");
         props.add("keyPairAlias");
         props.add("keyStore");
diff --git 
a/components/camel-pqc/src/generated/resources/META-INF/org/apache/camel/component/pqc/pqc.json
 
b/components/camel-pqc/src/generated/resources/META-INF/org/apache/camel/component/pqc/pqc.json
index 3fbc016cd7cc..a7ad60e9a84c 100644
--- 
a/components/camel-pqc/src/generated/resources/META-INF/org/apache/camel/component/pqc/pqc.json
+++ 
b/components/camel-pqc/src/generated/resources/META-INF/org/apache/camel/component/pqc/pqc.json
@@ -36,17 +36,18 @@
     "hybridKdfAlgorithm": { "index": 9, "kind": "property", "displayName": 
"Hybrid Kdf Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "HKDF-SHA256", 
"HKDF-SHA384", "HKDF-SHA512" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "HKDF-SHA256", 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "de [...]
     "keyEncapsulationAlgorithm": { "index": 10, "kind": "property", 
"displayName": "Key Encapsulation Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "MLKEM", "BIKE", "HQC", "CMCE", "SABER", "FRODO", "NTRU", 
"NTRULPRime", "SNTRUPrime", "KYBER" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configu [...]
     "keyGenerator": { "index": 11, "kind": "property", "displayName": "Key 
Generator", "group": "advanced", "label": "advanced", "required": false, 
"type": "object", "javaType": "javax.crypto.KeyGenerator", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The Key Generator to be 
used in encapsulation and extraction" },
-    "keyPair": { "index": 12, "kind": "property", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
-    "keyPairAlias": { "index": 13, "kind": "property", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
-    "keyStore": { "index": 14, "kind": "property", "displayName": "Key Store", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyStore", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "A KeyStore where we could get Cryptographic 
material" },
-    "keyStorePassword": { "index": 15, "kind": "property", "displayName": "Key 
Store Password", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
-    "signatureAlgorithm": { "index": 16, "kind": "property", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "c [...]
-    "signer": { "index": 17, "kind": "property", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
-    "storeExtractedSecretKeyAsHeader": { "index": 18, "kind": "property", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSec [...]
-    "symmetricKeyAlgorithm": { "index": 19, "kind": "property", "displayName": 
"Symmetric Key Algorithm", "group": "advanced", "label": "advanced", 
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ 
"AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", "CHACHA7539", 
"DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", "HC256", 
"SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "co [...]
-    "symmetricKeyLength": { "index": 20, "kind": "property", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" },
-    "healthCheckConsumerEnabled": { "index": 21, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
-    "healthCheckProducerEnabled": { "index": 22, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
+    "keyLifecycleManager": { "index": 12, "kind": "property", "displayName": 
"Key Lifecycle Manager", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyLifecycleManager 
to  [...]
+    "keyPair": { "index": 13, "kind": "property", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
+    "keyPairAlias": { "index": 14, "kind": "property", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
+    "keyStore": { "index": 15, "kind": "property", "displayName": "Key Store", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyStore", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "A KeyStore where we could get Cryptographic 
material" },
+    "keyStorePassword": { "index": 16, "kind": "property", "displayName": "Key 
Store Password", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
+    "signatureAlgorithm": { "index": 17, "kind": "property", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "c [...]
+    "signer": { "index": 18, "kind": "property", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
+    "storeExtractedSecretKeyAsHeader": { "index": 19, "kind": "property", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSec [...]
+    "symmetricKeyAlgorithm": { "index": 20, "kind": "property", "displayName": 
"Symmetric Key Algorithm", "group": "advanced", "label": "advanced", 
"required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ 
"AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", "CHACHA7539", 
"DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", "HC256", 
"SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "co [...]
+    "symmetricKeyLength": { "index": 21, "kind": "property", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" },
+    "healthCheckConsumerEnabled": { "index": 22, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckProducerEnabled": { "index": 23, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component. Notice: Camel has by default disabled all producer based 
health-checks. You can turn on produce [...]
   },
   "headers": {
     "CamelPQCOperation": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The operation we want to perform", "constantName": 
"org.apache.camel.component.pqc.PQCConstants#OPERATION" },
@@ -85,14 +86,15 @@
     "hybridKdfAlgorithm": { "index": 8, "kind": "parameter", "displayName": 
"Hybrid Kdf Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "HKDF-SHA256", 
"HKDF-SHA384", "HKDF-SHA512" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "HKDF-SHA256", 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "d [...]
     "keyEncapsulationAlgorithm": { "index": 9, "kind": "parameter", 
"displayName": "Key Encapsulation Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "MLKEM", "BIKE", "HQC", "CMCE", "SABER", "FRODO", "NTRU", 
"NTRULPRime", "SNTRUPrime", "KYBER" ], "deprecated": false, "deprecationNote": 
"", "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configu [...]
     "keyGenerator": { "index": 10, "kind": "parameter", "displayName": "Key 
Generator", "group": "advanced", "label": "advanced", "required": false, 
"type": "object", "javaType": "javax.crypto.KeyGenerator", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The Key Generator to be 
used in encapsulation and extraction" },
-    "keyPair": { "index": 11, "kind": "parameter", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
-    "keyPairAlias": { "index": 12, "kind": "parameter", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
-    "keyStore": { "index": 13, "kind": "parameter", "displayName": "Key 
Store", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "java.security.KeyStore", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyStore where we 
could get Cryptographic material" },
-    "keyStorePassword": { "index": 14, "kind": "parameter", "displayName": 
"Key Store Password", "group": "advanced", "label": "advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
-    "signatureAlgorithm": { "index": 15, "kind": "parameter", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", " [...]
-    "signer": { "index": 16, "kind": "parameter", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
-    "storeExtractedSecretKeyAsHeader": { "index": 17, "kind": "parameter", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSe [...]
-    "symmetricKeyAlgorithm": { "index": 18, "kind": "parameter", 
"displayName": "Symmetric Key Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", 
"CHACHA7539", "DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", 
"HC256", "SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "c [...]
-    "symmetricKeyLength": { "index": 19, "kind": "parameter", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" }
+    "keyLifecycleManager": { "index": 11, "kind": "parameter", "displayName": 
"Key Lifecycle Manager", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyLifecycleManager 
to [...]
+    "keyPair": { "index": 12, "kind": "parameter", "displayName": "Key Pair", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.KeyPair", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The KeyPair to be used" },
+    "keyPairAlias": { "index": 13, "kind": "parameter", "displayName": "Key 
Pair Alias", "group": "advanced", "label": "advanced", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyPair alias to use 
in combination with KeyStore parameter" },
+    "keyStore": { "index": 14, "kind": "parameter", "displayName": "Key 
Store", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "java.security.KeyStore", "deprecated": false, 
"deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "A KeyStore where we 
could get Cryptographic material" },
+    "keyStorePassword": { "index": 15, "kind": "parameter", "displayName": 
"Key Store Password", "group": "advanced", "label": "advanced", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The KeyStore password to 
use in combination with KeyStore Parameter" },
+    "signatureAlgorithm": { "index": 16, "kind": "parameter", "displayName": 
"Signature Algorithm", "group": "advanced", "label": "advanced", "required": 
false, "type": "enum", "javaType": "java.lang.String", "enum": [ "MLDSA", 
"SLHDSA", "LMS", "HSS", "XMSS", "XMSSMT", "DILITHIUM", "FALCON", "PICNIC", 
"SNOVA", "MAYO", "SPHINCSPLUS" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", " [...]
+    "signer": { "index": 17, "kind": "parameter", "displayName": "Signer", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "java.security.Signature", "deprecated": false, "deprecationNote": 
"", "autowired": true, "secret": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "The Signer to be used" },
+    "storeExtractedSecretKeyAsHeader": { "index": 18, "kind": "parameter", 
"displayName": "Store Extracted Secret Key As Header", "group": "advanced", 
"label": "advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pqc.PQCConfiguration", "configurationField": 
"configuration", "description": "In the context of extractSe [...]
+    "symmetricKeyAlgorithm": { "index": 19, "kind": "parameter", 
"displayName": "Symmetric Key Algorithm", "group": "advanced", "label": 
"advanced", "required": false, "type": "enum", "javaType": "java.lang.String", 
"enum": [ "AES", "ARIA", "RC2", "RC5", "CAMELLIA", "CAST5", "CAST6", 
"CHACHA7539", "DSTU7624", "GOST28147", "GOST3412_2015", "GRAIN128", "HC128", 
"HC256", "SALSA20", "SEED", "SM4", "DESEDE" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "c [...]
+    "symmetricKeyLength": { "index": 20, "kind": "parameter", "displayName": 
"Symmetric Key Length", "group": "advanced", "label": "advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "defaultValue": 
128, "configurationClass": "org.apache.camel.component.pqc.PQCConfiguration", 
"configurationField": "configuration", "description": "The required length of 
the symmetric key used" }
   }
 }
diff --git 
a/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCConfiguration.java
 
b/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCConfiguration.java
index 87ace93b481d..be91d6ffb789 100644
--- 
a/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCConfiguration.java
+++ 
b/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCConfiguration.java
@@ -24,6 +24,7 @@ import javax.crypto.KeyAgreement;
 import javax.crypto.KeyGenerator;
 
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -100,6 +101,10 @@ public class PQCConfiguration implements Cloneable {
     @Metadata(label = "advanced")
     private String hybridKdfAlgorithm = "HKDF-SHA256";
 
+    @UriParam(description = "The KeyLifecycleManager to use for key lifecycle 
operations such as generation, rotation, import/export, expiration, and 
revocation")
+    @Metadata(label = "advanced", autowired = true)
+    private KeyLifecycleManager keyLifecycleManager;
+
     public PQCOperations getOperation() {
         return operation;
     }
@@ -299,6 +304,18 @@ public class PQCConfiguration implements Cloneable {
         this.hybridKdfAlgorithm = hybridKdfAlgorithm;
     }
 
+    public KeyLifecycleManager getKeyLifecycleManager() {
+        return keyLifecycleManager;
+    }
+
+    /**
+     * The KeyLifecycleManager to use for key lifecycle operations such as 
generation, rotation, import/export,
+     * expiration, and revocation
+     */
+    public void setKeyLifecycleManager(KeyLifecycleManager 
keyLifecycleManager) {
+        this.keyLifecycleManager = keyLifecycleManager;
+    }
+
     // *************************************************
     //
     // *************************************************
diff --git 
a/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCProducer.java
 
b/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCProducer.java
index fcdb77d397e6..5ab1c2d89a0a 100644
--- 
a/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCProducer.java
+++ 
b/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/PQCProducer.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.pqc;
 
 import java.security.*;
 import java.security.cert.Certificate;
+import java.util.List;
 
 import javax.crypto.KeyAgreement;
 import javax.crypto.KeyGenerator;
@@ -29,11 +30,17 @@ import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.component.pqc.crypto.hybrid.HybridKEM;
 import org.apache.camel.component.pqc.crypto.hybrid.HybridSignature;
+import org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager;
+import org.apache.camel.component.pqc.lifecycle.KeyMetadata;
+import org.apache.camel.component.pqc.stateful.StatefulKeyState;
 import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
 import org.bouncycastle.jcajce.SecretKeyWithEncapsulation;
 import org.bouncycastle.jcajce.spec.KEMExtractSpec;
 import org.bouncycastle.jcajce.spec.KEMGenerateSpec;
+import org.bouncycastle.pqc.jcajce.interfaces.LMSPrivateKey;
+import org.bouncycastle.pqc.jcajce.interfaces.XMSSMTPrivateKey;
+import org.bouncycastle.pqc.jcajce.interfaces.XMSSPrivateKey;
 
 /**
  * A Producer which sign or verify a payload
@@ -86,6 +93,39 @@ public class PQCProducer extends DefaultProducer {
             case hybridExtractSecretKeyFromEncapsulation:
                 hybridExtractSecretKeyFromEncapsulation(exchange);
                 break;
+            case generateKeyPair:
+                lifecycleGenerateKeyPair(exchange);
+                break;
+            case exportKey:
+                lifecycleExportKey(exchange);
+                break;
+            case importKey:
+                lifecycleImportKey(exchange);
+                break;
+            case rotateKey:
+                lifecycleRotateKey(exchange);
+                break;
+            case getKeyMetadata:
+                lifecycleGetKeyMetadata(exchange);
+                break;
+            case listKeys:
+                lifecycleListKeys(exchange);
+                break;
+            case expireKey:
+                lifecycleExpireKey(exchange);
+                break;
+            case revokeKey:
+                lifecycleRevokeKey(exchange);
+                break;
+            case getRemainingSignatures:
+                statefulGetRemainingSignatures(exchange);
+                break;
+            case getKeyState:
+                statefulGetKeyState(exchange);
+                break;
+            case deleteKeyState:
+                statefulDeleteKeyState(exchange);
+                break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
         }
@@ -439,4 +479,190 @@ public class PQCProducer extends DefaultProducer {
         }
     }
 
+    // ========== Key Lifecycle Operations ==========
+
+    private KeyLifecycleManager getRequiredKeyLifecycleManager() {
+        KeyLifecycleManager klm = getConfiguration().getKeyLifecycleManager();
+        if (klm == null) {
+            throw new IllegalStateException(
+                    "A KeyLifecycleManager must be configured to use key 
lifecycle operations. "
+                                            + "Set the keyLifecycleManager 
option on the PQC endpoint.");
+        }
+        return klm;
+    }
+
+    private void lifecycleGenerateKeyPair(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        String algorithm = 
exchange.getMessage().getHeader(PQCConstants.ALGORITHM, String.class);
+        String keyId = exchange.getMessage().getHeader(PQCConstants.KEY_ID, 
String.class);
+
+        if (ObjectHelper.isEmpty(algorithm)) {
+            throw new IllegalArgumentException(
+                    "Algorithm header (" + PQCConstants.ALGORITHM + ") is 
required for generateKeyPair");
+        }
+        if (ObjectHelper.isEmpty(keyId)) {
+            throw new IllegalArgumentException("Key ID header (" + 
PQCConstants.KEY_ID + ") is required for generateKeyPair");
+        }
+
+        KeyPair generated = klm.generateKeyPair(algorithm, keyId);
+        exchange.getMessage().setHeader(PQCConstants.KEY_PAIR, generated);
+    }
+
+    private void lifecycleExportKey(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        String formatStr = 
exchange.getMessage().getHeader(PQCConstants.KEY_FORMAT, String.class);
+        Boolean includePrivate = 
exchange.getMessage().getHeader(PQCConstants.INCLUDE_PRIVATE, Boolean.class);
+
+        KeyLifecycleManager.KeyFormat format = formatStr != null
+                ? KeyLifecycleManager.KeyFormat.valueOf(formatStr)
+                : KeyLifecycleManager.KeyFormat.DER;
+        boolean inclPriv = includePrivate != null ? includePrivate : false;
+
+        byte[] exported = klm.exportKey(keyPair, format, inclPriv);
+        exchange.getMessage().setHeader(PQCConstants.EXPORTED_KEY, exported);
+    }
+
+    private void lifecycleImportKey(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        byte[] keyData = exchange.getMessage().getMandatoryBody(byte[].class);
+        String formatStr = 
exchange.getMessage().getHeader(PQCConstants.KEY_FORMAT, String.class);
+        String algorithm = 
exchange.getMessage().getHeader(PQCConstants.ALGORITHM, String.class);
+
+        KeyLifecycleManager.KeyFormat format = formatStr != null
+                ? KeyLifecycleManager.KeyFormat.valueOf(formatStr)
+                : KeyLifecycleManager.KeyFormat.DER;
+
+        if (ObjectHelper.isEmpty(algorithm)) {
+            throw new IllegalArgumentException("Algorithm header (" + 
PQCConstants.ALGORITHM + ") is required for importKey");
+        }
+
+        KeyPair imported = klm.importKey(keyData, format, algorithm);
+        exchange.getMessage().setHeader(PQCConstants.KEY_PAIR, imported);
+    }
+
+    private void lifecycleRotateKey(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        String oldKeyId = exchange.getMessage().getHeader(PQCConstants.KEY_ID, 
String.class);
+        String newKeyId = exchange.getMessage().getHeader("CamelPQCNewKeyId", 
String.class);
+        String algorithm = 
exchange.getMessage().getHeader(PQCConstants.ALGORITHM, String.class);
+
+        if (ObjectHelper.isEmpty(oldKeyId)) {
+            throw new IllegalArgumentException("Key ID header (" + 
PQCConstants.KEY_ID + ") is required for rotateKey");
+        }
+        if (ObjectHelper.isEmpty(newKeyId)) {
+            throw new IllegalArgumentException("New Key ID header 
(CamelPQCNewKeyId) is required for rotateKey");
+        }
+        if (ObjectHelper.isEmpty(algorithm)) {
+            throw new IllegalArgumentException("Algorithm header (" + 
PQCConstants.ALGORITHM + ") is required for rotateKey");
+        }
+
+        KeyPair rotated = klm.rotateKey(oldKeyId, newKeyId, algorithm);
+        exchange.getMessage().setHeader(PQCConstants.KEY_PAIR, rotated);
+    }
+
+    private void lifecycleGetKeyMetadata(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        String keyId = exchange.getMessage().getHeader(PQCConstants.KEY_ID, 
String.class);
+
+        if (ObjectHelper.isEmpty(keyId)) {
+            throw new IllegalArgumentException("Key ID header (" + 
PQCConstants.KEY_ID + ") is required for getKeyMetadata");
+        }
+
+        KeyMetadata metadata = klm.getKeyMetadata(keyId);
+        exchange.getMessage().setHeader(PQCConstants.KEY_METADATA, metadata);
+    }
+
+    private void lifecycleListKeys(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        List<KeyMetadata> keys = klm.listKeys();
+        exchange.getMessage().setHeader(PQCConstants.KEY_LIST, keys);
+    }
+
+    private void lifecycleExpireKey(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        String keyId = exchange.getMessage().getHeader(PQCConstants.KEY_ID, 
String.class);
+
+        if (ObjectHelper.isEmpty(keyId)) {
+            throw new IllegalArgumentException("Key ID header (" + 
PQCConstants.KEY_ID + ") is required for expireKey");
+        }
+
+        klm.expireKey(keyId);
+    }
+
+    private void lifecycleRevokeKey(Exchange exchange) throws Exception {
+        KeyLifecycleManager klm = getRequiredKeyLifecycleManager();
+        String keyId = exchange.getMessage().getHeader(PQCConstants.KEY_ID, 
String.class);
+        String reason = 
exchange.getMessage().getHeader(PQCConstants.REVOCATION_REASON, String.class);
+
+        if (ObjectHelper.isEmpty(keyId)) {
+            throw new IllegalArgumentException("Key ID header (" + 
PQCConstants.KEY_ID + ") is required for revokeKey");
+        }
+
+        klm.revokeKey(keyId, reason);
+    }
+
+    // ========== Stateful Key Operations ==========
+
+    private void statefulGetRemainingSignatures(Exchange exchange) {
+        if (keyPair == null || keyPair.getPrivate() == null) {
+            throw new IllegalStateException("A KeyPair with a private key is 
required for getRemainingSignatures");
+        }
+
+        PrivateKey privateKey = keyPair.getPrivate();
+        long remaining;
+
+        if (privateKey instanceof XMSSPrivateKey) {
+            remaining = ((XMSSPrivateKey) privateKey).getUsagesRemaining();
+        } else if (privateKey instanceof XMSSMTPrivateKey) {
+            remaining = ((XMSSMTPrivateKey) privateKey).getUsagesRemaining();
+        } else if (privateKey instanceof LMSPrivateKey) {
+            remaining = ((LMSPrivateKey) privateKey).getUsagesRemaining();
+        } else {
+            throw new IllegalArgumentException(
+                    "getRemainingSignatures is only supported for stateful 
signature schemes (XMSS, XMSSMT, LMS/HSS). "
+                                               + "Key type: " + 
privateKey.getClass().getName());
+        }
+
+        exchange.getMessage().setHeader(PQCConstants.REMAINING_SIGNATURES, 
remaining);
+    }
+
+    private void statefulGetKeyState(Exchange exchange) {
+        if (keyPair == null || keyPair.getPrivate() == null) {
+            throw new IllegalStateException("A KeyPair with a private key is 
required for getKeyState");
+        }
+
+        PrivateKey privateKey = keyPair.getPrivate();
+        StatefulKeyState state;
+
+        if (privateKey instanceof XMSSPrivateKey) {
+            XMSSPrivateKey xmssKey = (XMSSPrivateKey) privateKey;
+            state = new StatefulKeyState(privateKey.getAlgorithm(), 
xmssKey.getIndex(), xmssKey.getUsagesRemaining());
+        } else if (privateKey instanceof XMSSMTPrivateKey) {
+            XMSSMTPrivateKey xmssmtKey = (XMSSMTPrivateKey) privateKey;
+            state = new StatefulKeyState(privateKey.getAlgorithm(), 
xmssmtKey.getIndex(), xmssmtKey.getUsagesRemaining());
+        } else if (privateKey instanceof LMSPrivateKey) {
+            LMSPrivateKey lmsKey = (LMSPrivateKey) privateKey;
+            state = new StatefulKeyState(privateKey.getAlgorithm(), 
lmsKey.getIndex(), lmsKey.getUsagesRemaining());
+        } else {
+            throw new IllegalArgumentException(
+                    "getKeyState is only supported for stateful signature 
schemes (XMSS, XMSSMT, LMS/HSS). "
+                                               + "Key type: " + 
privateKey.getClass().getName());
+        }
+
+        exchange.getMessage().setHeader(PQCConstants.KEY_STATE, state);
+    }
+
+    private void statefulDeleteKeyState(Exchange exchange) throws Exception {
+        String keyId = exchange.getMessage().getHeader(PQCConstants.KEY_ID, 
String.class);
+
+        if (ObjectHelper.isEmpty(keyId)) {
+            throw new IllegalArgumentException("Key ID header (" + 
PQCConstants.KEY_ID + ") is required for deleteKeyState");
+        }
+
+        KeyLifecycleManager klm = getConfiguration().getKeyLifecycleManager();
+        if (klm != null) {
+            klm.deleteKey(keyId);
+        }
+    }
+
 }
diff --git 
a/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/stateful/StatefulKeyState.java
 
b/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/stateful/StatefulKeyState.java
new file mode 100644
index 000000000000..73b951cb9b18
--- /dev/null
+++ 
b/components/camel-pqc/src/main/java/org/apache/camel/component/pqc/stateful/StatefulKeyState.java
@@ -0,0 +1,63 @@
+/*
+ * 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.pqc.stateful;
+
+import java.io.Serializable;
+
+/**
+ * Represents the state of a stateful PQC signature key (XMSS, XMSSMT, LMS, 
HSS). These hash-based signature schemes
+ * have a limited number of signatures that can be produced before the key is 
exhausted.
+ */
+public class StatefulKeyState implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private final String algorithm;
+    private final long index;
+    private final long usagesRemaining;
+    private final boolean exhausted;
+
+    public StatefulKeyState(String algorithm, long index, long 
usagesRemaining) {
+        this.algorithm = algorithm;
+        this.index = index;
+        this.usagesRemaining = usagesRemaining;
+        this.exhausted = usagesRemaining <= 0;
+    }
+
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    public long getIndex() {
+        return index;
+    }
+
+    public long getUsagesRemaining() {
+        return usagesRemaining;
+    }
+
+    public boolean isExhausted() {
+        return exhausted;
+    }
+
+    @Override
+    public String toString() {
+        return String.format(
+                "StatefulKeyState[algorithm=%s, index=%d, usagesRemaining=%d, 
exhausted=%s]",
+                algorithm, index, usagesRemaining, exhausted);
+    }
+}
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PqcComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PqcComponentBuilderFactory.java
index 47dc3a913158..23be92c87793 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PqcComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PqcComponentBuilderFactory.java
@@ -260,6 +260,23 @@ public interface PqcComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * The KeyLifecycleManager to use for key lifecycle operations such as
+         * generation, rotation, import/export, expiration, and revocation.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager&lt;/code&gt;
 type.
+         * 
+         * Group: advanced
+         * 
+         * @param keyLifecycleManager the value to set
+         * @return the dsl builder
+         */
+        default PqcComponentBuilder 
keyLifecycleManager(org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager
 keyLifecycleManager) {
+            doSetProperty("keyLifecycleManager", keyLifecycleManager);
+            return this;
+        }
+    
         /**
          * The KeyPair to be used.
          * 
@@ -474,6 +491,7 @@ public interface PqcComponentBuilderFactory {
             case "hybridKdfAlgorithm": getOrCreateConfiguration((PQCComponent) 
component).setHybridKdfAlgorithm((java.lang.String) value); return true;
             case "keyEncapsulationAlgorithm": 
getOrCreateConfiguration((PQCComponent) 
component).setKeyEncapsulationAlgorithm((java.lang.String) value); return true;
             case "keyGenerator": getOrCreateConfiguration((PQCComponent) 
component).setKeyGenerator((javax.crypto.KeyGenerator) value); return true;
+            case "keyLifecycleManager": 
getOrCreateConfiguration((PQCComponent) 
component).setKeyLifecycleManager((org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager)
 value); return true;
             case "keyPair": getOrCreateConfiguration((PQCComponent) 
component).setKeyPair((java.security.KeyPair) value); return true;
             case "keyPairAlias": getOrCreateConfiguration((PQCComponent) 
component).setKeyPairAlias((java.lang.String) value); return true;
             case "keyStore": getOrCreateConfiguration((PQCComponent) 
component).setKeyStore((java.security.KeyStore) value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PQCEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PQCEndpointBuilderFactory.java
index 31f0870473be..2e0bf7b2c35d 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PQCEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PQCEndpointBuilderFactory.java
@@ -314,6 +314,38 @@ public interface PQCEndpointBuilderFactory {
             doSetProperty("keyGenerator", keyGenerator);
             return this;
         }
+        /**
+         * The KeyLifecycleManager to use for key lifecycle operations such as
+         * generation, rotation, import/export, expiration, and revocation.
+         * 
+         * The option is a:
+         * 
<code>org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param keyLifecycleManager the value to set
+         * @return the dsl builder
+         */
+        default AdvancedPQCEndpointBuilder 
keyLifecycleManager(org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager
 keyLifecycleManager) {
+            doSetProperty("keyLifecycleManager", keyLifecycleManager);
+            return this;
+        }
+        /**
+         * The KeyLifecycleManager to use for key lifecycle operations such as
+         * generation, rotation, import/export, expiration, and revocation.
+         * 
+         * The option will be converted to a
+         * 
<code>org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager</code> type.
+         * 
+         * Group: advanced
+         * 
+         * @param keyLifecycleManager the value to set
+         * @return the dsl builder
+         */
+        default AdvancedPQCEndpointBuilder keyLifecycleManager(String 
keyLifecycleManager) {
+            doSetProperty("keyLifecycleManager", keyLifecycleManager);
+            return this;
+        }
         /**
          * The KeyPair to be used.
          * 

Reply via email to