Add automated tests to verify curl's TLS signature

Add automated testing infrastructure with tests verifying that
`curl-impersonate` has the same TLS signature as that of the
impersonated browser.

Each wrapper script (e.g. curl_chrome98) is launched to wikipedia.org
while a packet capture is running in the background. The Client Hello
is extracted from the capture, parsed and then compared to the known
browser signature.

The known signatures are stored in a YAML database.
This commit is contained in:
lwthiker
2022-02-22 18:10:18 +02:00
parent b1081c5a11
commit 6e672bc719
7 changed files with 1407 additions and 0 deletions
+3
View File
@@ -70,6 +70,9 @@ The layout is similar for both. For example, the Firefox directory contains:
* [curl-configure.patch](firefox/patches/curl-configure.patch) - Patch to make curl compile with a static libnghttp2.
* [curl-static-libnss.patch](firefox/patches/curl-static-libnss.patch) - Patch to make curl compile with a static libnss.
Other files of interest:
* [tests/signatures.yaml](tests/signatures.yaml) - YAML database of known browser signatures that can be impersonated.
## What's next?
This was done in a very hacky way, but I hope it could be turned into a real project. Imagine that you could run:
```