Local-first: keys and signatures you paste stay in your browser
The home of digital signatures.
ECDSA signs most of the modern internet — TLS, SSH, JWTs, passkeys, Bitcoin and Ethereum. When a signature refuses to verify, this is where you debug it: free tools that auto-detect curves, formats and encodings, and explain what is actually wrong.
Detected locally in your browser — nothing you paste leaves the page.
- free tools
- 91
- no paywall, no trial
- run fully in your browser
- 64/91
- the rest say what they send
- accounts required
- 0
- open a tool and paste
- NIST draft horizon
- 2035
- classical signatures disallowed
Signature Lab
Free tools that do the cryptography in your browser: no accounts, and nothing you paste is sent anywhere. The few tools that must look up public data — a domain, a URL, a Bitcoin address — say so on their page before they do.
Browse by category
- Signatures7 toolsVerify a signature, convert its encoding, find out why it does not verify, generate test vectors, see the elliptic-curve arithmetic underneath and split a secret into Shamir shares — every tool runs in your browser.
- JOSE & JWT9 toolsSign, decode and verify JSON Web Tokens, decrypt JWEs, read PASETO tokens, generate keys and convert them between JWK, PEM and SSH, and build or check the key sets behind them — with plain explanations of what is wrong.
- Certificates & keys17 toolsDecode certificates, signing requests, revocation lists, OCSP answers and Certificate Transparency timestamps; generate a CSR and its key, check that a key, certificate and CSR belong together, compare two certificates, put a chain in order and fetch missing intermediates, compute SPKI pins and test keys for known weaknesses; open PFX files, split PEM bundles, explore raw ASN.1 and build the openssl command you need. Keys stay in your browser; the few checks that need our server say what they send before they send it.
- TLS & DNS9 toolsGenerate a TLS configuration for your server, get ready for 47-day certificates, publish CAA, TLSA and security.txt records, follow the DNSSEC chain of trust, see whether your browser already uses post-quantum TLS and check many domains at once. Each page says exactly what, if anything, it sends over the network.
- Email5 toolsFind out why a DKIM signature fails, see what each forwarder recorded in an ARC chain, create the key and DNS record for your own domain, and check a brand’s BIMI record and Mark Certificate. The DKIM and ARC tools analyze messages in your browser and look up only public key names over DNS-over-HTTPS; the full SPF, DKIM, DMARC, ARC, BIMI and MTA-STS analysis runs on our server and sends the message only after you agree.
- Web313 toolsDecode a raw Ethereum transaction or an EIP-7702 delegation, read what a typed-data signature would hand over before you sign it, verify who signed an Ethereum message or a sign-in, compare a Safe transaction’s hashes with your hardware wallet, look for reused ECDSA nonces, inspect PSBTs and xpubs, and verify Bitcoin (BIP-137/322), Solana and Nostr signatures. Everything runs in your browser; on-chain lookups go to a public RPC node only when you ask. Seed phrases and private keys are never accepted.
- Post-quantum6 toolsHands-on post-quantum cryptography: sign with ML-DSA and SLH-DSA, encapsulate with ML-KEM and the X25519MLKEM768 hybrid that browsers already use, benchmark 100+ liboqs algorithms, and inspect PQ certificates, HPKE and age — all in your browser, nothing uploaded.
- Identity & passkeys12 toolsRegister and sign in with a real passkey and name the authenticator behind it from the FIDO Metadata Service, validate OpenID Connect ID tokens and SAML responses, inspect the credentials of the EU Digital Identity Wallet (SD-JWT VC and mdoc), DPoP proofs, COSE and CWT, and HTTP requests signed by bots and AI agents. Tokens and keys are checked in your browser; the authenticator lookup asks our server for public metadata only.
- Code & document signing12 toolsCheck what a release really is before you run it. Verify Sigstore bundles and npm provenance down to the repository, workflow and commit that built them, read SLSA and in-toto attestations, check SSH-signed Git commits and files against allowed_signers, and inspect the signatures of Windows executables, Android APKs and Java archives. Documents and media too: verify PDF signatures (PAdES, LTV) and signed email (S/MIME) without uploading anything, decode RFC 3161 time-stamps, read the Content Credentials (C2PA) of images and video, and prove a key was generated on a YubiKey. Files and keys stay in your browser; the npm checker asks the public registry for the package you name, and the optional second Sigstore check sends our server only the bundle and the file’s digest.
- OpenPGP1 toolPaste an armored key, signature or message, or open a .gpg, .sig or .asc file, and see every packet: subkeys, user IDs and self-signatures, expiry and revocation, algorithms including RFC 9580 v6 keys and the new post-quantum IDs. Verify detached, cleartext and inline signatures with the signer’s public key — like gpg --verify, without installing GnuPG. Everything runs in your browser, and private keys are refused unread.
Featured tools
Signature Error Explainer
Diagnose why verification fails
Your signature looks valid but verification fails? Paste key, message and signature — the explainer tests common mismatch causes: wrong hash, wrong curve, encoding confusion, high-S, double hashing.
Open toolNonce Reuse Checker
Scan a Bitcoin address for repeated r values
ECDSA's one fatal mistake: signing twice with the same nonce reveals the private key. Paste a Bitcoin address — the checker scans its historical signatures for repeated r values, the fingerprint of nonce reuse.
Open toolOpenSSL Command Builder
Build the openssl command you need
Pick a task — EC or RSA keys, self-signed certificates, CSRs, PKCS#12 bundles, signatures, TLS probes — fill in the blanks and copy a command that works, with every flag explained. Paste a command you found somewhere and it explains that too.
Open toolJWT Signer
Sign tokens with your own key
Build a JWT from a header and claims, set iat, nbf and exp with relative times, and sign it with any JOSE algorithm — HMAC, RSA, RSA-PSS, ECDSA or EdDSA. The key stays in your browser.
Open toolASN.1 Explorer
Decode any DER or BER structure
Paste PEM, base64 or hex, or drop a DER file, and walk its ASN.1 tree with byte offsets, OID names and highlighted hex. Flags every place that is BER but not DER.
Open toolCSR Generator
Create a CSR and its key locally
Create a PKCS #10 certificate signing request with a key generated in your browser or with your own key. Get the PEM files and the equivalent openssl req command — the private key never leaves the page.
Open toolTLS Config Generator
SSL configs for 28 servers
TLS settings for nginx, Apache, HAProxy, Caddy, Postfix, Node.js, Go, Java, .NET and 19 more servers from the TLSRef guidelines — the continuation of Mozilla’s — with post-quantum key exchange where your version supports it, and an explainer for the configuration you already run.
Open tool47-Day Certificate Calculator
Plan renewals for 200 → 100 → 47 days
Publicly trusted TLS certificates shrink from 398 to 200, 100 and finally 47 days by 2029. See what that means for your certificates: renewals and domain validations per year, the next deadlines and where your renewal policy breaks.
Open toolPost-Quantum Browser Check
Does your browser use ML-KEM?
One click shows whether your browser negotiates the post-quantum hybrid X25519MLKEM768 with Cloudflare, over TLS on TCP and inside QUIC (HTTP/3), whether that is what its version should do, and what intercepting proxies or old versions change.
Open toolDKIM Debugger
Why a DKIM signature fails, step by step
Paste a raw email and watch every DKIM signature being checked: simple and relaxed canonicalization with each change highlighted, body and header hashes, the key from DNS. When a signature fails, the debugger rebuilds what the signer saw and names the change that broke it.
Open toolEIP-712 Inspector
What a typed-data signature really allows
Paste the typed data a site asks your wallet to sign and read, in plain words, what the signature allows: token permits, Permit2 allowances, Seaport, Blur, LooksRare and CoW orders. Flags unlimited approvals, listings that pay you nothing, far-off deadlines, the wrong chain and look-alike contracts.
Open toolEthereum Transaction Decoder
Decode raw signed transactions
Paste a raw transaction or an eth_getTransactionByHash object: every field, the sender recovered from the signature, the decoded function call and warnings for unlimited approvals and delegations. All envelopes, from legacy to EIP-7702.
Open toolPost-Quantum Signatures
Sign & verify ML-DSA, SLH-DSA, Falcon
Generate keys, sign and verify with ML-DSA, SLH-DSA and Falcon, with context strings, pre-hash and deterministic modes. See how much larger post-quantum keys and signatures are than ECDSA and Ed25519.
Open toolPasskey Sandbox
Try passkey sign-up and sign-in
Register a real passkey and authenticate with it against a relying party that runs in this page: the WebAuthn options, each verification step of §7.1 and §7.2, the flags, the attestation and the credential record.
Open toolSigstore Bundle Verifier
cosign, npm and GitHub attestation bundles
Verify a Sigstore bundle against the file it signs and the identity you expect: the Fulcio certificate and its SCTs, the Rekor log entry with its inclusion proof and checkpoint, signed and RFC 3161 time-stamps, DSSE and message signatures — offline, like cosign verify-blob.
Open toolSSH Signature Verifier
ssh-keygen -Y files, signed commits and tags
Check an SSHSIG signature made with ssh-keygen -Y sign, or a Git commit or tag signed with an SSH key, against an allowed_signers file — namespaces, principals, validity windows and SSH certificates, with the same rules as ssh-keygen.
Open toolPDF Signature Verifier
Check PDF signatures without uploading
Drop a signed PDF to see what each signature covers, whether the document changed after signing, who signed it and when. PAdES, CMS, RFC 3161 time-stamps and LTV data are checked in your browser — the file is never uploaded.
Open toolHow the Lab works
Built like a workbench, not a web service: the page is the whole machine.
Paste your material
A public key, a JWT, a certificate, a stubborn signature — whatever refuses to verify. No sign-up, no upload button.
Analyzed in your browser
Curves, formats and encodings are auto-detected and checked right in the tab, with WebCrypto and audited open-source libraries. Your keys and signatures never touch the network.
An answer, with the why
Not just valid or invalid — the tools test the usual mismatch causes and explain the actual mechanism, in plain language.
From code and from AI agents
The engines behind the tools also answer your scripts, pipelines and assistants.
REST API
Free signature API
Verify ECDSA signatures, convert DER ⇄ raw, decode and verify JWTs and certificates, grade a domain — plain JSON over HTTPS, no API key required. Requests that contain a private key are refused before anything is processed.
API documentationSDKs
Client libraries in eight languages
TypeScript, Python, Go, Java, C#, PHP, Rust and Ruby, all held to one shared conformance suite; each refuses to send a private key before a request leaves your machine. Publishing to the package registries is in preparation.
Read about the SDKsMCP
A server for AI agents
Point any Model Context Protocol client at https://ecdsa.com/api/mcp: signature verification, JWT and certificate decoding, domain health and reference lookups become tools your assistant can call.
New research · 500 domains measured
The State of Signatures on the Web
We scanned the busiest sites on the internet with the same engine that powers our domain grader. RSA still outweighs ECDSA 62/38, a quarter of them still answer a TLS 1.0 handshake, and barely one percent would survive the 47-day certificate limit arriving in 2029. Charts, methodology and the raw data are all public.
Read the reportBeyond the Lab
Two bigger checks for the things you run in production:
Domain check
Signature Health: grade your domain A–F
Certificate chain, key algorithms, protocol floor, the new 47-day lifetime rules and post-quantum readiness — one scan, one letter, a README badge and free expiry alerts. The domain you enter is scanned from our server.
10 questions
PQC Migration Planner
Answer ten questions about your stack and get a prioritized post-quantum migration plan against the NIST draft timeline — built locally, exportable as Markdown or PDF.
NIST IR 8547
ECDSA has a retirement date.
NIST's draft transition plan would disallow today's elliptic-curve and RSA signatures after 2035, in favor of post-quantum algorithms. Meanwhile, TLS certificate lifetimes are shrinking from 200 days (2026) to 47 days (2029). Knowing exactly where and how your systems sign things stops being optional well before either date.
Countdown to the end of 2035
…until NIST IR 8547 (initial public draft) would have classical signature algorithms — ECDSA, EdDSA and RSA, at every key size — disallowed for federal use. That is the date P-256 and RSA-3072 are measured against.
One earlier step, ~— years out: 112-bit parameter sets — RSA-2048 and P-224 — are deprecated after 2030, meaning still usable but carrying acknowledged risk. Planned, not urgent — but the inventory that makes either date manageable takes longer to build than the swap itself.
Learn
The concepts behind the tools — short, precise, and free of hand-waving.
Free course · 7 lessons
Signatures by Hand
Learn ECDSA by computing it. Add points on a tiny curve, derive a public key, produce a signature by hand — then do the real thing on P-256 and diagnose one that fails.
What's next
The Lab is step one. We are building the platform around it:
Available now
Repository scanner
A zero-dependency CLI that maps every place your code signs or verifies: libraries, curves, key handling, JWT configuration — with findings ranked by confidence. Text, JSON and SARIF output.
npx ecdsa-scan . →In development
Signing inventory
One map from repository to key to environment: which keys exist, what they sign, which algorithms they use, and what needs to migrate before the post-quantum deadlines.
Planned
Runtime monitoring
Read-only integrations with AWS KMS and Vault that turn raw signing events into a clear picture: which key signed what, from where, and under which policy.