diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..4d1fefb --- /dev/null +++ b/kamelet.json @@ -0,0 +1,167 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "pqc-kem-action", + "annotations": { + "camel.apache.org/kamelet.support.level": "Stable", + "camel.apache.org/catalog.version": "4.22.1", + "camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg==", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "PQC", + "camel.apache.org/kamelet.namespace": "PQC" + }, + "labels": { + "camel.apache.org/kamelet.type": "action" + } + }, + "spec": { + "definition": { + "title": "PQC Key Encapsulation/Decapsulation Action", + "description": "Encapsulate or Decapsulate a secret Key with a Post-Quantum Cryptography Key Encapsulation Mechanism (PQC KEM) algorithm.", + "required": [ + "keyEncapsulationAlgorithm", + "operation", + "symmetricKeyAlgorithm" + ], + "type": "object", + "properties": { + "keyEncapsulationAlgorithm": { + "title": "PQC Key Encapsulation Algorithm", + "description": "The PQC Key Encapsulation Algorithm to be used.", + "type": "string", + "enum": [ + "MLKEM", + "BIKE", + "HQC", + "CMCE", + "SABER", + "FRODO", + "NTRU", + "NTRULPRime" + ] + }, + "operation": { + "title": "PQC KEM Operation", + "description": "The PQC KEM Operation to be performed.", + "type": "string", + "enum": [ + "generateSecretKeyEncapsulation", + "extractSecretKeyEncapsulation", + "extractSecretKeyFromEncapsulation" + ] + }, + "symmetricKeyAlgorithm": { + "title": "Symmetric Key Algorithm", + "description": "The Symmetric Key Algorithm to be used in KEM operations.", + "type": "string", + "enum": [ + "AES", + "RC2", + "RC5", + "ARIA", + "CAMELLIA", + "CAST5", + "CAST6", + "CHACHA7539", + "DSTU7624", + "GOST28147", + "GOST3412_2015", + "GRAIN128", + "HC128", + "HC256", + "SALSA20", + "SEED", + "SM4", + "DESEDE" + ] + } + } + }, + "dependencies": [ + "camel:http", + "camel:kamelet", + "camel:core" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "to": { + "uri": "pqc:kem", + "parameters": { + "keyEncapsulationAlgorithm": "{{keyEncapsulationAlgorithm}}", + "operation": "{{operation}}", + "symmetricKeyAlgorithm": "{{symmetricKeyAlgorithm}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "PQC Key Encapsulation/Decapsulation Action", + "description": "Encapsulate or Decapsulate a secret Key with a Post-Quantum Cryptography Key Encapsulation Mechanism (PQC KEM) algorithm.", + "required": [ + "keyEncapsulationAlgorithm", + "operation", + "symmetricKeyAlgorithm" + ], + "properties": { + "keyEncapsulationAlgorithm": { + "type": "string", + "title": "PQC Key Encapsulation Algorithm", + "description": "The PQC Key Encapsulation Algorithm to be used.", + "enum": [ + "MLKEM", + "BIKE", + "HQC", + "CMCE", + "SABER", + "FRODO", + "NTRU", + "NTRULPRime" + ] + }, + "operation": { + "type": "string", + "title": "PQC KEM Operation", + "description": "The PQC KEM Operation to be performed.", + "enum": [ + "generateSecretKeyEncapsulation", + "extractSecretKeyEncapsulation", + "extractSecretKeyFromEncapsulation" + ] + }, + "symmetricKeyAlgorithm": { + "type": "string", + "title": "Symmetric Key Algorithm", + "description": "The Symmetric Key Algorithm to be used in KEM operations.", + "enum": [ + "AES", + "RC2", + "RC5", + "ARIA", + "CAMELLIA", + "CAST5", + "CAST6", + "CHACHA7539", + "DSTU7624", + "GOST28147", + "GOST3412_2015", + "GRAIN128", + "HC128", + "HC256", + "SALSA20", + "SEED", + "SM4", + "DESEDE" + ] + } + } + } +} \ No newline at end of file