Sign and verify ECDSA signatures on NIST P-256, P-384, and P-521. Web Crypto produces DER-encoded signatures with RFC 6979 deterministic nonces — both are exposed below the fold.
ECDSA — the elliptic-curve variant of DSA — gives the same guarantees as RSA signatures with smaller keys and faster operations. A 256-bit ECDSA signature has roughly the security of a 3072-bit RSA signature. A 256-bit EC key verifies a signature in microseconds. This is why TLS 1.3, SSH, and most modern protocols use ECDSA (or its sibling Ed25519) instead of RSA.
What a signature actually is. An ECDSA signature is a pair of integers (r, s), each about as large as the curve order. To verify: given message m, public key Q, compute u1 = H(m)/s mod n, u2 = r/s mod n, then check that (u1 * G + u2 * Q).x == r mod n. The math guarantees that only someone with the private key d (where Q = d * G) could produce a valid (r, s) pair.
What we expose. The signature is shown as both DER (the ASN.1 wire format most protocols use) and raw r||s (useful for blockchain and custom protocols). We also display the public key as both JWK (for browsers and JWT) and uncompressed hex (for raw SEC1). The same signature verification works on either format.
Why deterministic nonces matter. ECDSA security requires a per-signature random k. If two signatures share the same k, the private key is recoverable. The 2010 Sony PS3 code-signing key was leaked exactly this way. RFC 6979 derives k deterministically from the message and private key, eliminating the failure mode without weakening security. Web Crypto always uses RFC 6979, so this tool is safe by default.
ES256/ES384/ES512 use exactly these curves. Generate a key here, export the JWK, paste into your library. Verify on the receiving side.
The math is dense. Watching a signature generate and verify, with the r and s values visible, makes the structure concrete.
You've been handed a signature, a message, and a public key. You need to verify. This tool does that — without trusting any third-party library or sending data anywhere.