TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
A TLS 1.2 cipher suite for ECDSA certificates using ChaCha20-Poly1305, fast on devices without AES hardware.
What it is
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (code 0xCCA9) is a TLS 1.2 cipher suite defined in RFC 7905. It uses ephemeral elliptic curve Diffie-Hellman for the key exchange, an ECDSA certificate, and the ChaCha20-Poly1305 authenticated cipher instead of AES. SHA-256 is the PRF hash.
ChaCha20-Poly1305 runs fast and in constant time in plain software, so it suits phones and small devices without AES instructions. The same cipher later became one of the TLS 1.3 suites, TLS_CHACHA20_POLY1305_SHA256, where the key exchange and certificate type are no longer part of the suite name.
The suite offers forward secrecy and authenticated encryption, though the list of recommended TLS 1.2 suites in RFC 9325 names only the AES-GCM suites.
A server can only choose it when it holds an ECDSA certificate. With an RSA certificate, the matching choice is TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, which differs only in the certificate type.
Who sends it
Measured on 2026-10-25 against our own test server: sent by 12 of 12 clients. Position counts from 1 and ignores GREASE values.
Why it matters for fingerprinting
Every measured client offers it. Chrome, curl_cffi and curl-impersonate chrome116 send it 8th, Python requests and httpx 8th as well, Debian curl and Guzzle 7th, Go net/http 5th, macOS curl 4th and Node.js fetch 14th. Node.js places both ChaCha20 suites late in its list, which is a quick way to spot it in a JA3 string.
Check whether your client sends it
Open the test from your browser, or call it from your script, and look for TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 in the TLS details.
Run the TLS fingerprint test