-
Notifications
You must be signed in to change notification settings - Fork 113
XMLEnc
Aleksey Sanin edited this page Jun 22, 2026
·
4 revisions
XML Security library supports the following features as defined in XML Encryption Syntax and Processing Version 1.1 (also see RFC 9231):
| Feature | Requirements | Status |
|---|---|---|
| Processing rules | ||
| Type parameter value: Element | Required | Yes |
| Type parameter value: Content | Required | Yes |
| Type parameter value: EXI | Optional | No |
| Encryption | Required | Yes |
| Decryption | Required | Yes |
| XML Encryption | Optional | Yes |
| Syntax | ||
| The EncryptedType Element | Required | Yes |
| The EncryptionMethod Element | Optional | Yes |
| The CipherData Element | Required | Yes |
| The CipherReference Element | Optional | Yes |
| The EncryptedData Element | Required | Yes |
| The EncryptedKey Element | Optional | Yes |
| The DerivedKey Element | Required | Yes (7) |
| The ds:RetrievalMethod Element | Optional | Yes |
| The ReferenceList Element | Optional | Yes |
| The EncryptionProperties Element | Optional | Yes |
| Transforms | ||
| XML Canonicalization | See XMLDsig Report |
| Algorithm | Requirements | XMLSec with OpenSSL | XMLSec with NSS | XMLSec with GnuTLS | XMLSec with MSCng | XMLSec with MSCrypto (1) | XMLSec with GCrypt (1) |
|---|---|---|---|---|---|---|---|
| Block Encryption Algorithms | |||||||
| Triple DES (DES3) | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-CBC-128 | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-CBC-192 | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-CBC-256 | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-GCM-128 | Required | Yes | Yes | Yes | Yes | No | No |
| AES-GCM-192 | Optional | Yes | Yes | Yes | Yes | No | No |
| AES-GCM-256 | Optional | Yes | Yes | Yes | Yes | No | No |
| Camellia-CBC-128 | Optional | Yes | Yes | Yes | No | No | No |
| Camellia-CBC-192 | Optional | Yes | Yes | Yes | No | No | No |
| Camellia-CBC-256 | Optional | Yes | Yes | Yes | No | No | No |
| ChaCha20 | Optional | Yes | No | Yes | No | No | No |
| ChaCha20-Poly1305 | Optional | Yes | Yes | Yes | No | No | No |
| Stream Encryption Algorithms | Optional | Yes | Yes | Yes | Yes | No | No |
| Key Derivation | |||||||
| ConcatKDF | Required | Yes (3) (6) | Yes | Yes (6) | Yes (6) (5) | No | No |
| PBKDF2 | Optional | Yes (3) (4) | Yes (4) | Yes (4) | Yes (5) (4) | No | No |
| HKDF | Optional | Yes (3) | Yes | Yes | Yes (5) | No | No |
| Key Transport | |||||||
| RSA PKCS1 v1.5 | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| RSA-OAEP with MGF1-SHA1 | Optional | Yes | Yes | No | Yes (2) | Yes (2) | Yes (2) |
| RSA-OAEP with MGF1-SHA224 | Optional | Yes | Yes | No | No | No | Yes (2) |
| RSA-OAEP with MGF1-SHA256 | Optional | Yes | Yes | Yes (2) | Yes (2) | No | Yes (2) |
| RSA-OAEP with MGF1-SHA384 | Optional | Yes | Yes | Yes (2) | Yes (2) | No | Yes (2) |
| RSA-OAEP with MGF1-SHA512 | Optional | Yes | Yes | Yes (2) | Yes (2) | No | Yes (2) |
| Symmetric Key Wrap | |||||||
| Triple DES Key Wrap | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-128 KeyWrap | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-192 KeyWrap | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| AES-256 KeyWrap | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| Camellia-128 KeyWrap | Optional | Yes | Yes | Yes | No | No | No |
| Camellia-192 KeyWrap | Optional | Yes | Yes | Yes | No | No | No |
| Camellia-256 KeyWrap | Optional | Yes | Yes | Yes | No | No | No |
| Key Agreement | |||||||
| Elliptic Curve Diffie-Hellman (ECDH) | Required | Yes (3) | Yes | Yes | Yes (5) | No | No |
| XDH Key Agreement (X25519, X448) | Optional | Yes (10) | Yes (9) | Yes | Yes (9) | No | No |
| Diffie-Hellman with legacy KDF | Optional | No | No | No | No | No | No |
| Diffie-Hellman with explicit KDF | Optional | Yes (3) (8) | No | No | Yes | No | No |
| Key Encapsulation (1) | EXPERIMENTAL | ||||||
| ML-KEM-512 | EXPERIMENTAL | Yes (1) (10) | No | No | No | No | No |
| ML-KEM-768 | EXPERIMENTAL | Yes (1) (10) | No | No | No | No | No |
| ML-KEM-1024 | EXPERIMENTAL | Yes (1) (10) | No | No | No | No | No |
| Message Digest | |||||||
| Message Digest Algorithms | See XMLDsig Report |
- The feature is disabled by default but can be re-enabled at build time.
- RSA-OAEP digest and MGF1 algorithms must be the same.
- Requires OpenSSL 3.0.0 or newer.
- Only "specified" salt is supported for PBKDF2.
- Some cryptographic algorithms are not supported on older versions of Windows.
- Only byte-aligned bit strings in ConcatKDFParams element are supported (more details).
- Some optional features in DerivedKey element are not supported (more details).
- Only DHX (X9.42 format) keys are supported.
- Only X25519 (Curve25519) is supported, the X448 (Curve448) is not supported.
- Requires OpenSSL 3.5.0 or newer.