-
Notifications
You must be signed in to change notification settings - Fork 113
XMLDSig
Aleksey Sanin edited this page Jun 22, 2026
·
4 revisions
XML Security library supports the following features as defined in XML Signature Syntax and Processing 1.1 (also see RFC 9231):
| Algorithm | Requirements | XMLSec with OpenSSL | XMLSec with NSS | XMLSec with GnuTLS | XMLSec with MSCng | XMLSec with MSCrypto (1) | XMLSec with GCrypt (1) |
|---|---|---|---|---|---|---|---|
| Message Digests | |||||||
| SHA-1 | Required (use is DISCOURAGED) | Yes | Yes | Yes | Yes | Yes | Yes |
| SHA2-224 | Optional | Yes | Yes | Yes | No | No | No |
| SHA2-256 | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| SHA2-384 | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| SHA2-512 | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| SHA3-224 | Optional | Yes | Yes | Yes | No | No | No |
| SHA3-256 | Optional | Yes | Yes | Yes | Yes (2) | No | Yes |
| SHA3-384 | Optional | Yes | Yes | Yes | Yes (2) | No | Yes |
| SHA3-512 | Optional | Yes | Yes | Yes | Yes (2) | No | Yes |
| RIPEMD160 | DEPRECATED | Yes (1) | No | No | No | No | Yes (1) |
| GOST-R3411-94 | Optional | Yes (3) | No | Yes | No | Yes (4) | No |
| GOST-R3411-2012 (256 bit) | Optional | Yes (3) | No | Yes | No | Yes (4) | No |
| GOST-R3411-2012 (512 bit) | Optional | Yes (3) | No | Yes | No | Yes (4) | No |
| MD5 | DEPRECATED | Yes (1) | Yes (1) | Yes (1) | Yes (1) | Yes (1) | Yes (1) |
| Message Authentication Codes | |||||||
| HMAC-SHA1 | Required (use is DISCOURAGED) | Yes | Yes | Yes | Yes | Yes | Yes |
| HMAC-SHA2-224 | Optional | Yes | Yes | Yes | No | Yes | No |
| HMAC-SHA2-256 | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| HMAC-SHA2-384 | Recommended | Yes | Yes | Yes | Yes | Yes | Yes |
| HMAC-SHA2-512 | Recommended | Yes | Yes | Yes | Yes | Yes | Yes |
| HMAC-RIPEMD160 | DEPRECATED | Yes (1) | Yes (1) | No | No | Yes (1) | Yes (1) |
| HMAC-MD5 | DEPRECATED | Yes (1) | Yes (1) | No | Yes (1) | Yes (1) | Yes (1) |
| Signatures | |||||||
| DSA-SHA1 | Required (use is DISCOURAGED for signature generation) | Yes | Yes | Yes | Yes | Yes | Yes |
| DSA-SHA256 | Optional | Yes | Yes | Yes | Yes | No | No |
| PKCS1 RSA-SHA1 | Recommended (use is DISCOURAGED for signature generation) | Yes | Yes | Yes | Yes | Yes | Yes |
| PKCS1 RSA-SHA2-224 | Optional | Yes | Yes | Yes | No | No | No |
| PKCS1 RSA-SHA2-256 | Required | Yes | Yes | Yes | Yes | Yes | Yes |
| PKCS1 RSA-SHA2-384 | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| PKCS1 RSA-SHA2-512 | Optional | Yes | Yes | Yes | Yes | Yes | Yes |
| PKCS1 RSA-RIPEMD160 | DEPRECATED | Yes (1) | No | No | No | No | Yes (1) |
| PKCS1 RSA-MD5 | DEPRECATED | Yes (1) | Yes (1) | No | Yes (1) | Yes (1) | Yes (1) |
| ECDSA-RIPEMD160 | DEPRECATED | Yes (1) | No | No | No | No | No |
| ECDSA-SHA1 | Optional (use is DISCOURAGED) | Yes | Yes | Yes | Yes | No | Yes |
| ECDSA-SHA2-224 | Optional | Yes | Yes | Yes | No | No | No |
| ECDSA-SHA2-256 | Required | Yes | Yes | Yes | Yes | No | Yes |
| ECDSA-SHA2-384 | Optional | Yes | Yes | Yes | Yes | No | Yes |
| ECDSA-SHA2-512 | Optional | Yes | Yes | Yes | Yes | No | Yes |
| ECDSA-SHA3-224 | Optional | Yes | No | Yes | No | No | No |
| ECDSA-SHA3-256 | Optional | Yes | No | Yes | Yes (2) | No | Yes |
| ECDSA-SHA3-384 | Optional | Yes | No | Yes | Yes (2) | No | Yes |
| ECDSA-SHA3-512 | Optional | Yes | No | Yes | Yes (2) | No | Yes |
| EdDSA (Ed25519, Ed25519ctx (9), Ed25519ph, Ed448, Ed448ph) | Optional | Yes (12) | Yes (10) | Yes | No | No | No |
| RSASSA-PSS-SHA1 without Parameters | Optional (use is DISCOURAGED) | Yes | Yes | No | Yes | No | Yes |
| RSASSA-PSS-SHA2-224 without Parameters | Optional | Yes | Yes | No | No | No | No |
| RSASSA-PSS-SHA2-256 without Parameters | Optional | Yes | Yes | Yes | Yes | No | Yes |
| RSASSA-PSS-SHA2-384 without Parameters | Optional | Yes | Yes | Yes | Yes | No | Yes |
| RSASSA-PSS-SHA2-512 without Parameters | Optional | Yes | Yes | Yes | Yes | No | Yes |
| RSASSA-PSS-SHA3-224 without Parameters | Optional | Yes | No | No | No | No | No |
| RSASSA-PSS-SHA3-256 without Parameters | Optional | Yes | No | No | Yes (2) | No | Yes |
| RSASSA-PSS-SHA3-384 without Parameters | Optional | Yes | No | No | Yes (2) | No | Yes |
| RSASSA-PSS-SHA3-512 without Parameters | Optional | Yes | No | No | Yes (2) | No | Yes |
| GOST-R3410-2001 | Optional | Yes (3) | No | Yes | No | Yes (4) | No |
| GOST-R3410-2012 (256 bit) | Optional | Yes (3) | No | Yes | No | Yes (4) | No |
| GOST-R3411-2012 (512 bit) | Optional | Yes (3) | No | Yes | No | Yes (4) | No |
| ML-DSA | EXPERIMENTAL | Yes (1)(12) | No | Yes (1) (8) | No | No | No |
| SLH-DSA-SHA2 (128, 192, 256; fast and slow variants) | EXPERIMENTAL | Yes (1)(12) | No | No | No | No | No |
| The KeyInfo Element | |||||||
| The DSAKeyValue Element | Optional | Yes (1) (5) | Yes (1) (5) | Yes (1) (5) | Yes (1) (5) | Yes (1) (5) | Yes (1) (5) |
| The RSAKeyValue Element | Optional | Yes (1) | Yes (1) | Yes (1) | Yes (1) | Yes (1) | Yes (1) |
| The ECKeyValue Element | Optional | Yes (1) | Yes (1) | Yes (1) | Yes (1) | No | Yes |
| The X509Data Element | Optional | Yes | Yes | Yes | Yes | Yes | No |
| The X509Digest Element | Optional | Yes | Yes | Yes | Yes (7) | No | No |
| The PGPData Element | Optional | No | No | No | No | No | No |
| The SPKIData Element | Optional | No | No | No | No | No | No |
| The DEREncodedKeyValue Element | Optional | Yes (1) | Yes (1) | Yes (1) | Yes (1) (11) | No | No |
- The feature is disabled by default but can be re-enabled at build time.
- Some cryptographic algorithms are not supported on older versions of Windows.
- GOST support in OpenSSL requires installation of the GOST OpenSSL Engine.
- GOST support in MSCrypto requires installation of a GOST CSP.
- The Seed and PgenCounter are not supported in DSAKeyValue element.
- Requires LibXSLT library.
- Only SHA1 digest algorithm is supported for X509Digest element.
- The ContextString is not supported.
- Ed25519ctx requires a non-empty context string (per RFC 8032).
- Only Ed25519 (Curve25519) is supported, the Ed448 (Curve448) is not supported.
- Only X25519 (Curve25519) is supported, the X448 (Curve448) is not supported.
- Requires OpenSSL 3.5.0 or newer.