Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Feature comparison

Every cell on this page is measured, not quoted from documentation: the matrix comes from the live interop verification runs, in which as2d exchanges real signed, encrypted and compressed traffic with each product running unmodified in its own container. Tested versions are listed; newer releases may differ.

As measured in the live interop rig (both directions, receipt reconciliation) — ✔ works as specified, ◐ works with caveats (see the per-product notes), ✘ not supported by that product.

Capabilityas2dphase2 (as2-lib)OpenAS2 4.10mendelson CE 1.1b69pyas2lib 1.4.4Waarp AS2Ruby as2 0.12node-libas2 0.8.2
Signing SHA-2 family✔✔✔✔✔✔✔✔
RSASSA-PSS signatures✔✔✔—✘———
AES-CBC / 3DES encryption✔✔✔✔✔✔✔✔
AES-GCM (RFC 5084 conformant)✔✘ rejects———✘ rejects——
AES-GCM (BC-compatible form)✔ receive + per-partner send✔—✔ (its native form)—✘ rejects——
ZLIB compression (RFC 5402)✔✔✔✔✔✔✘✘
Sync signed MDN generation✔✔✔✔✔✔✔◐ broken upstream (sends unsigned)
Async MDN delivery✔✔✔———✘✘
Honors requested receipt digest✔✔✔✔✔✔✘ always SHA-256✘ uses signature digest
Binary (raw) S/MIME bodies✔✔✔✔✔✔✔✘ base64 required
Enforces inbound security floor✔ (insufficient-message-security)——✔——✔ (requires signed+encrypted, always)—

✘ is only used where the limitation was directly measured or is the product’s own documented constraint; — means the capability was not exercised against that product in the rig and is left unclaimed rather than assumed either way.

A note on fairness. These are open-source products exercised under their own default configurations in containers; each of them may be tunable beyond what defaults deliver, and all of them interoperate correctly with as2d in the profiles above — that is the point of the interop rig. A gap in this matrix is a statement about defaults and about what we exercised, not a verdict on the product.