Skip to main content

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)

Source distribution for carl-ff 1.0.0
File Size Uploaded
carl_ff-1.0.0.tar.gz 33.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for carl-ff 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page