SCUTE(7)
okay bestie, pull up a chair π this is scute, manual section 7, and honestly? she's a lil niche but she serves. no cap.
β¨ SYNOPSIS β¨
scute.so
that's it. that's the whole synopsis. she's a shared library, she doesn't take your orders from a command line. π
πΈ DESCRIPTION πΈ
So Scute is a PKCS#11 implementation for the GnuPG Agent that rides on the GnuPG Smart Card Daemon. As of right now, OpenPGP and PIV cards are supported β those are the two girls in the group chat. π
What she actually does: she enables the use of an OpenPGP smart card or a PIV smart card inside applications that support PKCS#11 compliant security tokens. The main application doing this at the moment is client authentication in Mozilla-based web browsers. In the future? other applications will be supported. manifesting it fr fr β¨
To prep your application for use with Scute, you have to load the Scute module as a PKCS#11 module into the application. Keep scrolling for the notes on how to do that with Firefox, bestie π
π OPTIONS π
Okay so, as a shared library, scute has no command line options β she's not taking flags. But her behaviour can be modified by using a global configuration file or with an environment variable (more on that below π).
The global configuration file is expected at /etc/gnupg/scute.conf. It's made of keywords and values, plus some meta commands.
Right now there's only one useful option for general use β the rest are for debugging, iykyk. Scute uses the same parser as GnuPG does, so for the meta commands pls consult the GnuPG description, ty π«Ά
Here's the short list of supported keywords:
only-markedβ Scute considers only keys that have theUse-for-p11as part of their meta data.username β If Scute is running with root permission and this option is used, it runs the GnuPG components in the context of name. name may either be a name or a numerical UID. This lets you use the GnuPG setup of a certain user instead of running it under the root account. It's needed to make Scute work smoothly as a PKCS#11 provider for OpenVPN. If the current user is not root, this option has no effect. periodt.debugflag β Useful values for flag are1and3. πlog-filefile β This currently has no effect, but in a future version it will write the log to file. Writing to a socket will be possible by prefixing the file with the stringsocket://.assume-single-threadedβ This is a hack to ignore a request to use native threads instead of user provided callbacks. Should only be used with caution if there's no easy way to fix the caller, or until we have fixed Scute. no biggie, just be careful bestie πno-chainβ By default, when Scute is asked for a certificate, it returns the requested certificate along with the chain of signing certificates. This option makes Scute return only the leaf certificate. πΏ
In addition to the config file above, Scute also reads GnuPG's common.conf in the same way GnuPG does. That's how the no-autostart option gets detected β and then Scute will not try to launch gpg-agent, which it usually does. The important use-case here is running Scute on a server with the gpg-agent living on a desktop box. iconic split setup tbh π₯οΈβ¨
π₯ NOTES (FIREFOX) π₯
To use Scute with Firefox or Thunderbird, follow these instructions, step by step, no skipping π
From the menu choose Edit->Preferences. In the preferences configuration dialog you then select the Advanced configuration section, then the Security tab, and then select Security Devices in the category Certificates.
In the devices manager dialog, you can select Load to load a new PKCS#11 device. In the pop-up dialog that follows, you can give a module name (e.g. Scute) and a module filename. That filename should correspond to the full file name of the installed Scute module file scute.so.
The default installation path is /usr/local/lib, which would mean that you have to provide the file name /usr/local/lib/scute.so. If you β or your system administrator β installed Scute somewhere else, you have to adjust the file name correspondingly. π¦
After confirming installation of the security device, a pop-up window should confirm that the module was successfully loaded, and an entry for the security device should appear in the device manager list of
π ENVIRONMENT π
The environment variable SCUTE_DEBUG gives the same debug flags as described above. This numerically value may be followed by a colon and the name for the log file. The global options will override these values once they have been parsed. π
bestie note: global options win the argument. always. π
π SEE ALSO π
and that's the whole page, mwah π tysm for reading, this was Scute 1.7.1-unknown, dated 2026-01-29, tagging along with SCUTE(7) πβ¨π«Ά
π¦ where this page comes from
- ubuntu resolute: scute 1:1.7.0+git20240826+8331f37-1build1 Β· LGPL-2.1-or-later
- ubuntu stonking: scute 1:1.7.0+git20240826+8331f37-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms