SHIGOFUMIRC(5)
π shigofumirc(5) β Manual for Shigofumi π
β¨ NAME β¨
shigofumirc β Configuration file for Shigofumi π
π¦ DESCRIPTION π¦
Okay so configuration for shigofumi is loaded from .shigofumirc in user's home directory by default. Bestie, it's literally right there in your home folder unless you say otherwise π
The file is a plain text file with simple syntax: setting is stored in option = value format. If the value is a type of string, it must be delimited by quotation marks. Boolean values can be expressed as "true" or non-zero integer (1) for affirmation, or "false" or zero integer (0) for negation. Simple numeric values are unquoted. Commentary starts with hash sign (#) and continues to the end of the line. No cap.
If an option accepts a list of values, the syntax is traditional mathematical set notation: { value1 , value2 }. It's giving math class but make it config file β¨
π OPTIONS π
Following options are recognized. Not all of them must be present. Missing options fall to default value back. So if you skip something, it's not a crisis, the default just steps in π«Ά
π Account Options π
base_urlβ Base URL for ISDS server. Be careful when setting this value: This can reveal your password to bad guys running fake server (if you do not verify server identity preciously) and different host names are used with different log-in mechanism. In addition, there are two system instances administrated by Czech government: official one and testing one.
E.g. use "https://ws1.czebox.cz/" for testing instance of ISDS or "https://ws1.mojedatovaschranka.cz/" for official instance with valid and legal data when logging in without TLS client certificate. Otherwise, with client certificate in use, replace the ws1 domain with ws1c domain. Or, with OTP authentication, replace with www domain. I.e. "https://ws1c.czebox.cz/" for testing instance with certificate authentication or "https://www.mojedatovaschranka.cz/" for official instance with OTP authentication.
Do not forget on leading protocol schema and trailing slash. Default value is official instance locator suitable for selected authentication method provided by libisds library.
certificate_formatβ Format of client certificate used to authenticate user into ISDS. Three distinct values are recognized:PEMfor Base64 serialization to file,DERfor binary serialization to file, andENGto specify the certificate is stored in cryptographic engine. Default value is empty string.certificate_pathβ File where client certificate used to authenticate user into ISDS is, ifcertificate_formatoption is set toPEMorDER. Ifcertificate_formatisENG, this is an identifier of the certificate inside the cryptographic engine.NSSlibrary uses this option as certificate nickname. Default value is empty string signaling not to authenticate user by a certificate.key_engineβ Cryptographic engine holding client private key and/or certificate used to authenticate user into ISDS. The value identifies a device (e.g. a smart card) known to underlying cryptographic library where key and/or certificate is stored. Interpretation depends on the cryptographic library. This option takes effect only ifkey_formatorcertificate_formatisENG. Default value is empty string.key_formatβ Format of client key used to authenticate user into ISDS. Three distinct values are recognized:PEMfor Base64 serialization to file,DERfor binary serialization to file, andENGto specify the key is stored in cryptographic engine. Default value is empty string.key_pathβ File where client key used to authenticate user into ISDS is, ifkey_formatoption is set toPEMorDER. Ifkey_formatisENG, this is an identifier of the key inside the cryptographic engine.NSSlibrary uses this option as certificate nickname. Default value is empty string. This can mean the key is stored along the certificate.key_passwordβ Password protecting private key used for client authentication using asymmetric cryptography. Default value is empty string. Underlying cryptographic library can raise its own password query or require to obtain the code in other way (e.g. typing PIN on smart card reader key pad).otp_methodβ One-time password authentication method. Default value is undefined string what means do not use OTP authentication. If this option is defined, OTP will be used for authentication. Two methods are recognised:HOTPfor HMAC-based One-Time Password method andTOTPfor Time-based One-Time Password method.otp_codeβ One-time code for OTP authentication.
If HMAC-based method is used, this code will be computed in a device or a piece of software which should be in exclusive possession of its user.
If Time-based method is used, the code will be generated by ISDS server and delivered to the user by a side channel. (The channel is an SMS currently. Because the delivery is specially charged, the time code generation is protected by plain password too. User sends standard password without OTP code first, then server delivers code by the SMS message and finally user will retry log-in with both password and both OTP code.)
Default value is empty string and user will be asked interactively for the OTP code when needed. Because of dynamic nature of this code, setting the value in a configuration file is pointless. However you could rewrite this value for each shigofumi run in batch mode.
passwordβ Password assigned to given user-name. User must keep it in secret. This password is used while HTTP authentication and is passed to underlying network libraries. Make sure this configuration file or your swap partition (network library together with password can be swapped out during physical memory outage) will not get to bad guys. Encrypt them before. Default value is empty string.usernameβ ISDS user log-in name. Identifies a user in ISDS. One person can have more identities. Default value is empty string.
π TLS Options π
ca_directoryβ Path to directory with trusted authorities certificates stored in separate files (files must have special names usually). Default value is provided by underlying cryptographic library. Exact meaning of this option depends on interpretation by used cryptographic library.ca_fileβ Path to file with trusted authorities certificates (concatenated list of PEM-formatted certificates). Default value is provided by underlying cryptographic library. Exact meaning of this option depends on interpretation by used cryptographic library.crl_fileβ Path to file with certificate revocation lists (concatenated list of CRLs in PEM format usually). Default value is provided by underlying cryptographic library. Exact meaning of this option depends on interpretation by used cryptographic library.verify_serverβ Boolean switch deciding whether server identity should be verified. When using HTTPS connection to the server, the identity of server can be verified in TLS negotiation phase by validating server certificate against trusted certificate authority certificate and certificate revocation list. Default value istrue. It's strongly recommended to keep it on. Do not turn this off, bestie, that's not the vibe π
π‘ Network Options π‘
timeoutβ Non-negative integer setting network time-out in milliseconds. Use0not to limit any network operation. Default value is10,000ms.
π Log Options π
log_facilitiesβ List of string values selectinglibisdsfacility to log. Valid values are:none,http,soap,isds,file,sec,xml,all. Default set is{"none"}.log_fileβ String value selecting file to append ISDS log. The log catcheslibisdsinternal debugging protocol. It does not cover messages produces byshigofumiitself. This feature is designed to debug underlying libraries and protocols like ISDS, SOAP, or cURL's HTTP(S). If undefined,shigofumilogs to standard error output.log_levelβ Integer value setting log verbosity oflibisdsfrom interval<0;100>.0is no logging,10is critical messages,20errors,30warnings,40informative messages,50debug messages,100messages of all severities. Default log level is20.
π§ Other Options π§
clean_temporary_filesβ Boolean switch deciding whether to remove temporary files atshigofumiexit. This applies to files created foropendoccommand, as external utility can access the file after quitingshigofumi. Default value istrue.confirm_sendβ Boolean switch deciding whether to require confirmation before sending composed message. Default value istrue.mark_message_readβ Boolean switch deciding whether right downloaded incoming messages should be marked as read automatically. Iftrue, change message state to read on the server. Otherwise keep message state intact. Default value isfalse.
You can change the state to read state by read command manually latter.
Be ware ISDS web portal marks messages as read automatically. Note, there is no way to unmark a message to unread state back. Once it's read, it's read, bestie π
normalize_mime_typeβ Boolean switch deciding whether MIME type of documents retrieved from a message should be normalized to standard values. Default value istrue.
ISDS does not check document MIME type a client supplies. Unfortunately, official client sends invalid values (file name extension usually). This option allows Shigofumi to fix the type on-the-fly. Be ware the original value stored in ISDS or locally saved message keeps untouched.
open_commandβ List of string values defining external utility to execute when opening a document.
First value is command, other values are command arguments in order. If command is not absolute file name, it's located according PATH environment variable. If value contains %f substring, it will be expanded to name of file to open. If value contains %t substring, it will be expanded to MIME type of document to open. Use %% sequence to escape per-cent character.
Default value is {"xdg-open", "%f"}.
overwrite_filesβ Boolean switch deciding whether newly created files should overwrite existing ones. Iftrue, existing files will be overwritten silently. Otherwise error wil be raised. Default value istrue.
This does not apply to log file. Its new content is appended always.
π NOTICE ON CRYPTOGRAPHIC LIBRARY π
okay bestie this part is lowkey important so pay attention π
Shigofumi uses libisds, which utilizes the cURL library, which can use three different cryptographic libraries at this time: OpenSSL, GnuTLS and NSS. yes, three. a whole little polycule of crypto backends π«Ά
and the way that each library has a different set of features and a different configurationβ¦ so the exact meaning of some Shigofumi configuration options can be slightly shifted (e.g. the name of client certificate and key). not a typo, not a bug, just β¨vibesβ¨ of whichever backend you ended up with.
and some options cannot be understood at all (e.g. GnuTLS does not support directory of certificates). like, it simply does not know her. no cap. π
if an option is mysteriously doing nothing or meaning something slightly different than you expected, this is probably why. check which backend you're on before you spiral, fr fr.
Current cryptographic library can be determined from shigofumi -V output. π
π FILES π
~/.shigofumircβ Default location of the configuration file. that's the one, that's the home base π
πΈ EXAMPLE πΈ
here's what a config file can look like, iconic behavior:
base_url = "https://ws1.czebox.cz/"
# These credentials are invalid
username = 1s79vd
password = XY123456
verify_server = true
ca_file = /etc/ssl/certs/ca-certificates.crt
ca_directory = /etc/ssl/certs
crl_file = /etc/ssl/crl
log_facilities = {"http", "soap"}
heads up: the credentials in this example are literally invalid (the comment says so), so don't go copy-pasting them and wondering why nothing works π they're placeholder energy only.
π SEE ALSO π
π AUTHOR π
- Petr PΓsaΕ
- He's written Shigofumi and libisds.
that's the whole page, bestie, you made it to the end π the source/version on this one is Shigofumi and it's dated 08/18/2015, so go forth and configure responsibly β¨ππ¦
π¦ where this page comes from
- epel 10: shigofumi 0.9-12.el10_0 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 43: shigofumi 0.9-14.fc43 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 44: shigofumi 0.9-15.fc44 Β· GPL-3.0-or-later AND 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