ezxmldsig token lab
ezxmldsig

XML Digital Signature · enveloping tokens · PHP

Sign it, read it, verify it.
Then try to break it.

Every token on this page is created and analyzed by the real ezxmldsig library, running in PHP behind this page. Read each block of the signature, follow the receiver's checks one by one, and replay the attacks that version 1.0.0 refuses.

The keys of demo/certs/ are public: they are published with the library. Never use them, or trust their CA, outside this demo.

01

Issuer

Signs the user data with sign.key.pem.

User data
Audience and expiry
Algorithms

Key transport is always RSA-OAEP: RSA 1.5 is refused.

02

Token

Hover or select a block to read what it does.

PHP code of the issuer

          
03

Receiver

What it trusts and what it checks.

Trust anchor
Audience
Decryption
Expected algorithms

Follows the issuer. Change one to see the token refused.

Your checks
s
Memory: 0 ids
04

Verification

The library's checks, then yours.

    PHP code of this receiver
    
              

    05 Attack lab

    Forge, wrap, swap, replay.

    Each attack starts from the last token of the issuer, alters it on the server, and submits it to the receiver configured above, with a replay memory of its own. No vulnerable code runs here: this is what 1.0.0 does with each forged token.