pqc/component.json

1649 lines
54 KiB
JSON
Raw Normal View History

2026-10-12 02:42:45 +00:00
{
"component": {
"kind": "component",
"name": "pqc",
"title": "PQC Algorithms",
"description": "Post Quantum Cryptography Signature and Verification component.",
"deprecated": false,
"firstVersion": "3.24.0",
"label": "security",
"javaType": "org.apache.camel.component.pqc.PQCComponent",
"supportLevel": "Stable",
"nativeSupported": true,
"metadata": {
"quarkusVersion": "3.36.0",
"camelArtifact": "org.apache.camel:camel-pqc",
"camelVersion": "4.20.0"
},
"groupId": "org.apache.camel.quarkus",
"artifactId": "camel-quarkus-pqc",
"version": "4.20.0 (CEQ 3.36.0)",
"scheme": "pqc",
"extendsScheme": "",
"syntax": "pqc:label",
"async": false,
"api": false,
"consumerOnly": false,
"producerOnly": true,
"lenientProperties": false,
"browsable": false,
"remote": true
},
"componentProperties": {
"configuration": {
"index": 0,
"kind": "property",
"displayName": "Configuration",
"group": "producer",
"label": "",
"required": false,
"type": "object",
"javaType": "org.apache.camel.component.pqc.PQCConfiguration",
"deprecated": false,
"autowired": false,
"secret": false,
"description": "Component configuration"
},
"lazyStartProducer": {
"index": 1,
"kind": "property",
"displayName": "Lazy Start Producer",
"group": "producer",
"label": "producer",
"required": false,
"type": "boolean",
"javaType": "boolean",
"deprecated": false,
"autowired": false,
"secret": false,
"defaultValue": false,
"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing."
},
"operation": {
"index": 2,
"kind": "property",
"displayName": "Operation",
"group": "producer",
"label": "",
"required": true,
"type": "enum",
"javaType": "org.apache.camel.component.pqc.PQCOperations",
"enum": [
"sign",
"verify",
"hybridSign",
"hybridVerify",
"generateSecretKeyEncapsulation",
"extractSecretKeyEncapsulation",
"extractSecretKeyFromEncapsulation",
"hybridGenerateSecretKeyEncapsulation",
"hybridExtractSecretKeyEncapsulation",
"hybridExtractSecretKeyFromEncapsulation",
"getRemainingSignatures",
"getKeyState",
"deleteKeyState",
"generateKeyPair",
"exportKey",
"importKey",
"rotateKey",
"getKeyMetadata",
"listKeys",
"expireKey",
"revokeKey"
],
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The operation to perform"
},
"autowiredEnabled": {
"index": 3,
"kind": "property",
"displayName": "Autowired Enabled",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "boolean",
"javaType": "boolean",
"deprecated": false,
"autowired": false,
"secret": false,
"defaultValue": true,
"description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc."
},
"classicalKEMAlgorithm": {
"index": 4,
"kind": "property",
"displayName": "Classical KEMAlgorithm",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "enum",
"javaType": "java.lang.String",
"enum": [
"ECDH_P256",
"ECDH_P384",
"ECDH_P521",
"X25519",
"X448"
],
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The classical key agreement algorithm to use in hybrid KEM operations"
},
"classicalKeyAgreement": {
"index": 5,
"kind": "property",
"displayName": "Classical Key Agreement",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "object",
"javaType": "javax.crypto.KeyAgreement",
"deprecated": false,
"deprecationNote": "",
"autowired": true,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The classical KeyAgreement instance to be used in hybrid KEM operations"
},
"classicalKeyPair": {
"index": 6,
"kind": "property",
"displayName": "Classical 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 classical KeyPair to be used in hybrid operations"
},
"classicalSignatureAlgorithm": {
"index": 7,
"kind": "property",
"displayName": "Classical Signature Algorithm",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "enum",
"javaType": "java.lang.String",
"enum": [
"ECDSA_P256",
"ECDSA_P384",
"ECDSA_P521",
"ED25519",
"ED448",
"RSA_2048",
"RSA_3072",
"RSA_4096"
],
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The classical signature algorithm to use in hybrid operations"
},
"classicalSigner": {
"index": 8,
"kind": "property",
"displayName": "Classical 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 classical Signature instance to be used in hybrid signature operations"
},
"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",
"description": "The KDF algorithm to use for combining secrets in hybrid KEM operations"
},
"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",
"configurationField": "configuration",
"description": "In case there is no keyGenerator, we specify an algorithm to build the KeyGenerator"
},
"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"
},
"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 use for key lifecycle operations such as generation, rotation, import/export, expiration, and revocation"
},
"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",
"configurationField": "configuration",
"description": "In case there is no signer, we specify an algorithm to build the KeyPair or the Signer"
},
"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"
},
"statefulKeyWarningThreshold": {
"index": 19,
"kind": "property",
"displayName": "Stateful Key Warning Threshold",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "number",
"javaType": "double",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"defaultValue": 0.1,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The warning threshold for stateful key exhaustion as a fraction of total signatures (0.0 to 1.0). When the remaining signatures for a stateful key (XMSS, XMSSMT, LMS/HSS) drop below this fraction of the total capacity, a WARN log is emitted. When remaining signatures reach zero, an exception is thrown to prevent key reuse. Set to 0 to disable warnings."
},
"storeExtractedSecretKeyAsHeader": {
"index": 20,
"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 extractSecretKeyFromEncapsulation operation, this option define if we want to have the key set as header"
},
"strictKeyLifecycle": {
"index": 21,
"kind": "property",
"displayName": "Strict Key Lifecycle",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "boolean",
"javaType": "boolean",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"defaultValue": true,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "Whether to enforce key status checks before cryptographic operations. When enabled, REVOKED keys are rejected for all operations, EXPIRED keys are rejected for signing/encapsulation but allowed for verification/extraction, and DEPRECATED keys produce a warning but still function. Requires a KeyLifecycleManager and a CamelPQCKeyId header to be set."
},
"symmetricKeyAlgorithm": {
"index": 22,
"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,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "In case we are using KEM operations, we need a Symmetric algorithm to be defined for the flow to work."
},
"symmetricKeyLength": {
"index": 23,
"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": 24,
"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": 25,
"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 producer checks globally by setting camel.health.producersEnabled=true."
}
},
"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"
},
"CamelPQCSignature": {
"index": 1,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "String",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The signature of a body",
"constantName": "org.apache.camel.component.pqc.PQCConstants#SIGNATURE"
},
"CamelPQCVerification": {
"index": 2,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "Boolean",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The result of verification of a Body signature",
"constantName": "org.apache.camel.component.pqc.PQCConstants#VERIFY"
},
"CamelPQCSecretKey": {
"index": 3,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "Boolean",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The extracted key in case of extractSecretKeyFromEncapsulation operation and storeExtractedSecretKeyAsHeader option enabled",
"constantName": "org.apache.camel.component.pqc.PQCConstants#SECRET_KEY"
},
"CamelPQCRemainingSignatures": {
"index": 4,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "Long",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The remaining signatures for a stateful key",
"constantName": "org.apache.camel.component.pqc.PQCConstants#REMAINING_SIGNATURES"
},
"CamelPQCKeyState": {
"index": 5,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "org.apache.camel.component.pqc.stateful.StatefulKeyState",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The key state for a stateful key",
"constantName": "org.apache.camel.component.pqc.PQCConstants#KEY_STATE"
},
"CamelPQCKeyId": {
"index": 6,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "String",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The key ID for stateful key operations",
"constantName": "org.apache.camel.component.pqc.PQCConstants#KEY_ID"
},
"CamelPQCKeyPair": {
"index": 7,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "java.security.KeyPair",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The generated key pair",
"constantName": "org.apache.camel.component.pqc.PQCConstants#KEY_PAIR"
},
"CamelPQCKeyFormat": {
"index": 8,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "String",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The key format for import/export operations",
"constantName": "org.apache.camel.component.pqc.PQCConstants#KEY_FORMAT"
},
"CamelPQCExportedKey": {
"index": 9,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The exported key data",
"constantName": "org.apache.camel.component.pqc.PQCConstants#EXPORTED_KEY"
},
"CamelPQCKeyMetadata": {
"index": 10,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "org.apache.camel.component.pqc.lifecycle.KeyMetadata",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The key metadata",
"constantName": "org.apache.camel.component.pqc.PQCConstants#KEY_METADATA"
},
"CamelPQCKeyList": {
"index": 11,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "java.util.List",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "List of key metadata",
"constantName": "org.apache.camel.component.pqc.PQCConstants#KEY_LIST"
},
"CamelPQCAlgorithm": {
"index": 12,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "String",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The algorithm for key generation",
"constantName": "org.apache.camel.component.pqc.PQCConstants#ALGORITHM"
},
"CamelPQCIncludePrivate": {
"index": 13,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "Boolean",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "Include private key in export",
"constantName": "org.apache.camel.component.pqc.PQCConstants#INCLUDE_PRIVATE"
},
"CamelPQCRevocationReason": {
"index": 14,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "String",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "Revocation reason",
"constantName": "org.apache.camel.component.pqc.PQCConstants#REVOCATION_REASON"
},
"CamelPQCHybridSignature": {
"index": 15,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The hybrid signature combining both classical and PQC signatures",
"constantName": "org.apache.camel.component.pqc.PQCConstants#HYBRID_SIGNATURE"
},
"CamelPQCClassicalSignature": {
"index": 16,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The classical signature component of a hybrid signature",
"constantName": "org.apache.camel.component.pqc.PQCConstants#CLASSICAL_SIGNATURE"
},
"CamelPQCPqcSignature": {
"index": 17,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The PQC signature component of a hybrid signature",
"constantName": "org.apache.camel.component.pqc.PQCConstants#PQC_SIGNATURE"
},
"CamelPQCClassicalEncapsulation": {
"index": 18,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The classical encapsulation component of a hybrid KEM",
"constantName": "org.apache.camel.component.pqc.PQCConstants#CLASSICAL_ENCAPSULATION"
},
"CamelPQCPqcEncapsulation": {
"index": 19,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The PQC encapsulation component of a hybrid KEM",
"constantName": "org.apache.camel.component.pqc.PQCConstants#PQC_ENCAPSULATION"
},
"CamelPQCHybridSecretKey": {
"index": 20,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "javax.crypto.SecretKey",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The combined secret key from hybrid KEM operation",
"constantName": "org.apache.camel.component.pqc.PQCConstants#HYBRID_SECRET_KEY"
},
"CamelPQCHybridEncapsulation": {
"index": 21,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "byte[]",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The hybrid encapsulation combining both classical and PQC encapsulations",
"constantName": "org.apache.camel.component.pqc.PQCConstants#HYBRID_ENCAPSULATION"
},
"CamelPQCHybridVerification": {
"index": 22,
"kind": "header",
"displayName": "",
"group": "producer",
"label": "",
"required": false,
"javaType": "Boolean",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"description": "The verification result of hybrid signature (both must pass)",
"constantName": "org.apache.camel.component.pqc.PQCConstants#HYBRID_VERIFY"
}
},
"properties": {
"label": {
"index": 0,
"kind": "path",
"displayName": "Label",
"group": "producer",
"label": "",
"required": true,
"type": "string",
"javaType": "java.lang.String",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "Logical name"
},
"operation": {
"index": 1,
"kind": "parameter",
"displayName": "Operation",
"group": "producer",
"label": "",
"required": true,
"type": "enum",
"javaType": "org.apache.camel.component.pqc.PQCOperations",
"enum": [
"sign",
"verify",
"hybridSign",
"hybridVerify",
"generateSecretKeyEncapsulation",
"extractSecretKeyEncapsulation",
"extractSecretKeyFromEncapsulation",
"hybridGenerateSecretKeyEncapsulation",
"hybridExtractSecretKeyEncapsulation",
"hybridExtractSecretKeyFromEncapsulation",
"getRemainingSignatures",
"getKeyState",
"deleteKeyState",
"generateKeyPair",
"exportKey",
"importKey",
"rotateKey",
"getKeyMetadata",
"listKeys",
"expireKey",
"revokeKey"
],
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The operation to perform"
},
"lazyStartProducer": {
"index": 2,
"kind": "parameter",
"displayName": "Lazy Start Producer",
"group": "producer (advanced)",
"label": "producer,advanced",
"required": false,
"type": "boolean",
"javaType": "boolean",
"deprecated": false,
"autowired": false,
"secret": false,
"defaultValue": false,
"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing."
},
"classicalKEMAlgorithm": {
"index": 3,
"kind": "parameter",
"displayName": "Classical KEMAlgorithm",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "enum",
"javaType": "java.lang.String",
"enum": [
"ECDH_P256",
"ECDH_P384",
"ECDH_P521",
"X25519",
"X448"
],
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The classical key agreement algorithm to use in hybrid KEM operations"
},
"classicalKeyAgreement": {
"index": 4,
"kind": "parameter",
"displayName": "Classical Key Agreement",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "object",
"javaType": "javax.crypto.KeyAgreement",
"deprecated": false,
"deprecationNote": "",
"autowired": true,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The classical KeyAgreement instance to be used in hybrid KEM operations"
},
"classicalKeyPair": {
"index": 5,
"kind": "parameter",
"displayName": "Classical 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 classical KeyPair to be used in hybrid operations"
},
"classicalSignatureAlgorithm": {
"index": 6,
"kind": "parameter",
"displayName": "Classical Signature Algorithm",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "enum",
"javaType": "java.lang.String",
"enum": [
"ECDSA_P256",
"ECDSA_P384",
"ECDSA_P521",
"ED25519",
"ED448",
"RSA_2048",
"RSA_3072",
"RSA_4096"
],
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The classical signature algorithm to use in hybrid operations"
},
"classicalSigner": {
"index": 7,
"kind": "parameter",
"displayName": "Classical 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 classical Signature instance to be used in hybrid signature operations"
},
"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",
"description": "The KDF algorithm to use for combining secrets in hybrid KEM operations"
},
"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",
"configurationField": "configuration",
"description": "In case there is no keyGenerator, we specify an algorithm to build the KeyGenerator"
},
"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"
},
"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 use for key lifecycle operations such as generation, rotation, import/export, expiration, and revocation"
},
"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",
"configurationField": "configuration",
"description": "In case there is no signer, we specify an algorithm to build the KeyPair or the Signer"
},
"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"
},
"statefulKeyWarningThreshold": {
"index": 18,
"kind": "parameter",
"displayName": "Stateful Key Warning Threshold",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "number",
"javaType": "double",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"defaultValue": 0.1,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "The warning threshold for stateful key exhaustion as a fraction of total signatures (0.0 to 1.0). When the remaining signatures for a stateful key (XMSS, XMSSMT, LMS/HSS) drop below this fraction of the total capacity, a WARN log is emitted. When remaining signatures reach zero, an exception is thrown to prevent key reuse. Set to 0 to disable warnings."
},
"storeExtractedSecretKeyAsHeader": {
"index": 19,
"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 extractSecretKeyFromEncapsulation operation, this option define if we want to have the key set as header"
},
"strictKeyLifecycle": {
"index": 20,
"kind": "parameter",
"displayName": "Strict Key Lifecycle",
"group": "advanced",
"label": "advanced",
"required": false,
"type": "boolean",
"javaType": "boolean",
"deprecated": false,
"deprecationNote": "",
"autowired": false,
"secret": false,
"defaultValue": true,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "Whether to enforce key status checks before cryptographic operations. When enabled, REVOKED keys are rejected for all operations, EXPIRED keys are rejected for signing/encapsulation but allowed for verification/extraction, and DEPRECATED keys produce a warning but still function. Requires a KeyLifecycleManager and a CamelPQCKeyId header to be set."
},
"symmetricKeyAlgorithm": {
"index": 21,
"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,
"configurationClass": "org.apache.camel.component.pqc.PQCConfiguration",
"configurationField": "configuration",
"description": "In case we are using KEM operations, we need a Symmetric algorithm to be defined for the flow to work."
},
"symmetricKeyLength": {
"index": 22,
"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"
}
},
"propertiesSchema": {
"properties": {
"label": {
"title": "Label",
"description": "Logical name",
"type": "string",
"$comment": "group:producer"
},
"operation": {
"title": "Operation",
"description": "The operation to perform",
"type": "string",
"enum": [
"sign",
"verify",
"hybridSign",
"hybridVerify",
"generateSecretKeyEncapsulation",
"extractSecretKeyEncapsulation",
"extractSecretKeyFromEncapsulation",
"hybridGenerateSecretKeyEncapsulation",
"hybridExtractSecretKeyEncapsulation",
"hybridExtractSecretKeyFromEncapsulation",
"getRemainingSignatures",
"getKeyState",
"deleteKeyState",
"generateKeyPair",
"exportKey",
"importKey",
"rotateKey",
"getKeyMetadata",
"listKeys",
"expireKey",
"revokeKey"
],
"$comment": "group:producer"
},
"lazyStartProducer": {
"title": "Lazy Start Producer",
"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
"type": "boolean",
"$comment": "group:producer (advanced)",
"default": false
},
"classicalKEMAlgorithm": {
"title": "Classical KEMAlgorithm",
"description": "The classical key agreement algorithm to use in hybrid KEM operations",
"type": "string",
"enum": [
"ECDH_P256",
"ECDH_P384",
"ECDH_P521",
"X25519",
"X448"
],
"$comment": "group:advanced"
},
"classicalKeyAgreement": {
"title": "Classical Key Agreement",
"description": "The classical KeyAgreement instance to be used in hybrid KEM operations",
"type": "string",
"$comment": "group:advanced",
"format": "bean:javax.crypto.KeyAgreement"
},
"classicalKeyPair": {
"title": "Classical Key Pair",
"description": "The classical KeyPair to be used in hybrid operations",
"type": "string",
"$comment": "group:advanced",
"format": "bean:java.security.KeyPair"
},
"classicalSignatureAlgorithm": {
"title": "Classical Signature Algorithm",
"description": "The classical signature algorithm to use in hybrid operations",
"type": "string",
"enum": [
"ECDSA_P256",
"ECDSA_P384",
"ECDSA_P521",
"ED25519",
"ED448",
"RSA_2048",
"RSA_3072",
"RSA_4096"
],
"$comment": "group:advanced"
},
"classicalSigner": {
"title": "Classical Signer",
"description": "The classical Signature instance to be used in hybrid signature operations",
"type": "string",
"$comment": "group:advanced",
"format": "bean:java.security.Signature"
},
"hybridKdfAlgorithm": {
"title": "Hybrid Kdf Algorithm",
"description": "The KDF algorithm to use for combining secrets in hybrid KEM operations",
"type": "string",
"enum": [
"HKDF-SHA256",
"HKDF-SHA384",
"HKDF-SHA512"
],
"$comment": "group:advanced",
"default": "HKDF-SHA256"
},
"keyEncapsulationAlgorithm": {
"title": "Key Encapsulation Algorithm",
"description": "In case there is no keyGenerator, we specify an algorithm to build the KeyGenerator",
"type": "string",
"enum": [
"MLKEM",
"BIKE",
"HQC",
"CMCE",
"SABER",
"FRODO",
"NTRU",
"NTRULPRime",
"SNTRUPrime",
"KYBER"
],
"$comment": "group:advanced"
},
"keyGenerator": {
"title": "Key Generator",
"description": "The Key Generator to be used in encapsulation and extraction",
"type": "string",
"$comment": "group:advanced",
"format": "bean:javax.crypto.KeyGenerator"
},
"keyLifecycleManager": {
"title": "Key Lifecycle Manager",
"description": "The KeyLifecycleManager to use for key lifecycle operations such as generation, rotation, import/export, expiration, and revocation",
"type": "string",
"$comment": "group:advanced",
"format": "bean:org.apache.camel.component.pqc.lifecycle.KeyLifecycleManager"
},
"keyPair": {
"title": "Key Pair",
"description": "The KeyPair to be used",
"type": "string",
"$comment": "group:advanced",
"format": "bean:java.security.KeyPair"
},
"keyPairAlias": {
"title": "Key Pair Alias",
"description": "A KeyPair alias to use in combination with KeyStore parameter",
"type": "string",
"$comment": "group:advanced"
},
"keyStore": {
"title": "Key Store",
"description": "A KeyStore where we could get Cryptographic material",
"type": "string",
"$comment": "group:advanced",
"format": "bean:java.security.KeyStore"
},
"keyStorePassword": {
"title": "Key Store Password",
"description": "The KeyStore password to use in combination with KeyStore Parameter",
"type": "string",
"$comment": "group:advanced",
"format": "password"
},
"signatureAlgorithm": {
"title": "Signature Algorithm",
"description": "In case there is no signer, we specify an algorithm to build the KeyPair or the Signer",
"type": "string",
"enum": [
"MLDSA",
"SLHDSA",
"LMS",
"HSS",
"XMSS",
"XMSSMT",
"DILITHIUM",
"FALCON",
"PICNIC",
"SNOVA",
"MAYO",
"SPHINCSPLUS"
],
"$comment": "group:advanced"
},
"signer": {
"title": "Signer",
"description": "The Signer to be used",
"type": "string",
"$comment": "group:advanced",
"format": "bean:java.security.Signature"
},
"statefulKeyWarningThreshold": {
"title": "Stateful Key Warning Threshold",
"description": "The warning threshold for stateful key exhaustion as a fraction of total signatures (0.0 to 1.0). When the remaining signatures for a stateful key (XMSS, XMSSMT, LMS/HSS) drop below this fraction of the total capacity, a WARN log is emitted. When remaining signatures reach zero, an exception is thrown to prevent key reuse. Set to 0 to disable warnings.",
"type": "number",
"$comment": "group:advanced",
"default": "0.1"
},
"storeExtractedSecretKeyAsHeader": {
"title": "Store Extracted Secret Key As Header",
"description": "In the context of extractSecretKeyFromEncapsulation operation, this option define if we want to have the key set as header",
"type": "boolean",
"$comment": "group:advanced",
"default": false
},
"strictKeyLifecycle": {
"title": "Strict Key Lifecycle",
"description": "Whether to enforce key status checks before cryptographic operations. When enabled, REVOKED keys are rejected for all operations, EXPIRED keys are rejected for signing/encapsulation but allowed for verification/extraction, and DEPRECATED keys produce a warning but still function. Requires a KeyLifecycleManager and a CamelPQCKeyId header to be set.",
"type": "boolean",
"$comment": "group:advanced",
"default": true
},
"symmetricKeyAlgorithm": {
"title": "Symmetric Key Algorithm",
"description": "In case we are using KEM operations, we need a Symmetric algorithm to be defined for the flow to work.",
"type": "string",
"enum": [
"AES",
"ARIA",
"RC2",
"RC5",
"CAMELLIA",
"CAST5",
"CAST6",
"CHACHA7539",
"DSTU7624",
"GOST28147",
"GOST3412_2015",
"GRAIN128",
"HC128",
"HC256",
"SALSA20",
"SEED",
"SM4",
"DESEDE"
],
"$comment": "group:advanced"
},
"symmetricKeyLength": {
"title": "Symmetric Key Length",
"description": "The required length of the symmetric key used",
"type": "integer",
"$comment": "group:advanced",
"default": 128
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"label",
"operation"
]
}
}