carl-ff
carl-ff is a small python utility and library to parse and modify Firefox's ClientAuthenticationRememberList. The ClientAuthenticationRememberList is a binary file used by Firefox to make authentication decisions regarding whether to send a client certificate to a particular server.
Installation
carl-ff can be build and installed as a pip package. The recommended way of installing is via pipx:
[user@host ~]$ pipx install carl-ff
You can also build carl-ff from source by running the following commands:
[user@host ~]$ git clone https://github.com/qtc-de/carl-ff
[user@host ~]$ cd carl-ff
[user@host ~/carl-ff]$ pipx install .
Usage
carl-ff attempts to find the ClientAuthRememberList.bin file within your Firefox
profile automatically. Invoking carl-ff without any options just lists your current
authentication decisions:
user@host:~$ carl-ff
[+] ClientAuthRememberList:
[+]
[+] Allowed Entries:
[+] 0.) https://trusted.internal.local
[+]
[+] Blocked Entries:
[+] 1.) https://untrusted.external.web
To add a new entry, use the add subcommand. The add subcommand requires either
the --cert or --blocked arguments to be specified. With --cert you can select
the certificate to use for authentication. With --block you decide to not send a
certificate. Moreover, the --host or --from-file arguments are required. With
--host you can specify the desired host. With --from-file you can specify a file
that contains hostnames:
user@host:~$ carl-ff add --cert cert.pem --host auth.internal.local
[+] ClientAuthRememberList:
[+]
[+] Allowed Entries:
[+] 0.) https://trusted.internal.local
[+] 1.) https://auth.internal.local
[+]
[+] Blocked Entries:
[+] 2.) https://untrusted.external.web
user@host:~$ carl-ff add --block --host third-party.internal.local
[+] ClientAuthRememberList:
[+]
[+] Allowed Entries:
[+] 0.) https://trusted.internal.local
[+] 1.) https://auth.internal.local
[+]
[+] Blocked Entries:
[+] 2.) https://untrusted.external.web
[+] 3.) https://third-party.internal.local
To remove an entry from the list, use the del subcommand. The del subcommand
requires an additional integer parameter that specifies the entry you want to delete.
Be careful when using this while Firefox is open, as new authentication decisions
may change an index.
user@host:~$ carl-ff del 1
[+] ClientAuthRememberList:
[+]
[+] Allowed Entries:
[+] 0.) https://trusted.internal.local
[+]
[+] Blocked Entries:
[+] 1.) https://untrusted.external.web
[+] 2.) https://third-party.internal.local
Acknowledgements
carl-ff was inspired by ff-carl,
a Rust library for modifying ClientAuthRememberList.bin.
Disclaimer
ClientAuthenticationRememberList.bin uses a proprietary format that may change in future or has not been implemented correctly by this library. This tool and the associated library come with absolutely no warranty that they will work correctly. Always verify the results within the Firefox settings and use the tool / library on your own risk.
Metadata
Release files for carl-ff 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| carl_ff-1.0.0.tar.gz | 33.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| carl_ff-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.3 kB
Release files / carl_ff-1.0.0.tar.gz
| Download URL | carl_ff-1.0.0.tar.gz |
|---|---|
| Size | 33.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5333b8645572813824d8ece5b9ee79dad6b5b791ee65cf5a471faf3deb05b113
|
|
BLAKE2b-256 checksum How to use checksums |
d86249b94ae8612978de47753584e8ff05dd1b9092c50c052b35aeb9d9804d1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / carl_ff-1.0.0-py3-none-any.whl
| Download URL | carl_ff-1.0.0-py3-none-any.whl |
|---|---|
| Size | 31.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3a90e365e6cc3c738b6ccfb9e7a05cdc06d78d69e33511a0d2490e765767954
|
|
BLAKE2b-256 checksum How to use checksums |
e3fd8b7ff964ca35f75249e0bfe19c2d66510c7c788fe168fc50d1af8ca097db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|