NeoMutt  2021-02-05-89-gabe350
Teaching an old dog new tricks
DOXYGEN
config.c
Go to the documentation of this file.
1 
29 #include "config.h"
30 #include <stddef.h>
31 #include <config/lib.h>
32 #include <stdbool.h>
33 #include "private.h"
34 #include "lib.h"
35 #include "init.h"
36 
37 // clang-format off
38 
42 const struct Mapping SortKeyMethods[] = {
43  { "address", SORT_ADDRESS },
44  { "date", SORT_DATE },
45  { "keyid", SORT_KEYID },
46  { "trust", SORT_TRUST },
47  { NULL, 0 },
48 };
49 
50 #ifdef CRYPT_BACKEND_GPGME
52 #endif
65 char * C_PgpSignAs;
68 char * C_SmimeSignAs;
73 unsigned char C_PgpEncryptSelf;
74 unsigned char C_PgpMimeAuto;
78 unsigned char C_SmimeEncryptSelf;
80 #ifdef CRYPT_BACKEND_GPGME
82 #endif
86 struct Regex * C_PgpGoodSign;
113 char * C_SmimeKeys;
121 unsigned char C_CryptVerifySig;
122 // clang-format on
123 
124 struct ConfigDef NcryptVars[] = {
125  // clang-format off
126  { "crypt_confirm_hook", DT_BOOL, &C_CryptConfirmHook, true, 0, NULL,
127  "Prompt the user to confirm keys before use"
128  },
129  { "crypt_opportunistic_encrypt", DT_BOOL, &C_CryptOpportunisticEncrypt, false, 0, NULL,
130  "Enable encryption when the recipient's key is available"
131  },
132  { "crypt_opportunistic_encrypt_strong_keys", DT_BOOL, &C_CryptOpportunisticEncryptStrongKeys, false, 0, NULL,
133  "Enable encryption only when strong a key is available"
134  },
135  { "crypt_protected_headers_read", DT_BOOL, &C_CryptProtectedHeadersRead, true, 0, NULL,
136  "Display protected headers (Memory Hole) in the pager"
137  },
138  { "crypt_protected_headers_subject", DT_STRING, &C_CryptProtectedHeadersSubject, IP "...", 0, NULL,
139  "Use this as the subject for encrypted emails"
140  },
141  { "crypt_protected_headers_write", DT_BOOL, &C_CryptProtectedHeadersWrite, false, 0, NULL,
142  "Generate protected header (Memory Hole) for signed and encrypted emails"
143  },
144  { "crypt_timestamp", DT_BOOL, &C_CryptTimestamp, true, 0, NULL,
145  "Add a timestamp to PGP or SMIME output to prevent spoofing"
146  },
147 #ifdef CRYPT_BACKEND_GPGME
148  { "crypt_use_gpgme", DT_BOOL, &C_CryptUseGpgme, true, 0, NULL,
149  "Use GPGME crypto backend"
150  },
151  { "crypt_use_pka", DT_BOOL, &C_CryptUsePka, false, 0, NULL,
152  "Use GPGME to use PKA (lookup PGP keys using DNS)"
153  },
154 #endif
155  { "envelope_from_address", DT_ADDRESS, &C_EnvelopeFromAddress, 0, 0, NULL,
156  "Manually set the sender for outgoing messages"
157  },
158  { "pgp_auto_inline", DT_BOOL, &C_PgpAutoInline, false, 0, NULL,
159  "Use old-style inline PGP messages (not recommended)"
160  },
161 #ifdef CRYPT_BACKEND_CLASSIC_PGP
162  { "pgp_check_exit", DT_BOOL, &C_PgpCheckExit, true, 0, NULL,
163  "Check the exit code of PGP subprocess"
164  },
165  { "pgp_check_gpg_decrypt_status_fd", DT_BOOL, &C_PgpCheckGpgDecryptStatusFd, true, 0, NULL,
166  "File descriptor used for status info"
167  },
168  { "pgp_clear_sign_command", DT_STRING|DT_COMMAND, &C_PgpClearSignCommand, 0, 0, NULL,
169  "(pgp) External command to inline-sign a message"
170  },
171  { "pgp_decode_command", DT_STRING|DT_COMMAND, &C_PgpDecodeCommand, 0, 0, NULL,
172  "(pgp) External command to decode a PGP attachment"
173  },
174  { "pgp_decrypt_command", DT_STRING|DT_COMMAND, &C_PgpDecryptCommand, 0, 0, NULL,
175  "(pgp) External command to decrypt a PGP message"
176  },
177  { "pgp_decryption_okay", DT_REGEX, &C_PgpDecryptionOkay, 0, 0, NULL,
178  "Text indicating a successful decryption"
179  },
180 #endif
181  { "pgp_default_key", DT_STRING, &C_PgpDefaultKey, 0, 0, NULL,
182  "Default key to use for PGP operations"
183  },
184 #ifdef CRYPT_BACKEND_CLASSIC_PGP
185  { "pgp_encrypt_only_command", DT_STRING|DT_COMMAND, &C_PgpEncryptOnlyCommand, 0, 0, NULL,
186  "(pgp) External command to encrypt, but not sign a message"
187  },
188  { "pgp_encrypt_sign_command", DT_STRING|DT_COMMAND, &C_PgpEncryptSignCommand, 0, 0, NULL,
189  "(pgp) External command to encrypt and sign a message"
190  },
191 #endif
192  { "pgp_entry_format", DT_STRING|DT_NOT_EMPTY, &C_PgpEntryFormat, IP "%4n %t%f %4l/0x%k %-4a %2c %u", 0, NULL,
193  "printf-like format string for the PGP key selection menu"
194  },
195 #ifdef CRYPT_BACKEND_CLASSIC_PGP
196  { "pgp_export_command", DT_STRING|DT_COMMAND, &C_PgpExportCommand, 0, 0, NULL,
197  "(pgp) External command to export a public key from the user's keyring"
198  },
199  { "pgp_get_keys_command", DT_STRING|DT_COMMAND, &C_PgpGetKeysCommand, 0, 0, NULL,
200  "(pgp) External command to download a key for an email address"
201  },
202  { "pgp_good_sign", DT_REGEX, &C_PgpGoodSign, 0, 0, NULL,
203  "Text indicating a good signature"
204  },
205 #endif
206  { "pgp_ignore_subkeys", DT_BOOL, &C_PgpIgnoreSubkeys, true, 0, NULL,
207  "Only use the principal PGP key"
208  },
209 #ifdef CRYPT_BACKEND_CLASSIC_PGP
210  { "pgp_import_command", DT_STRING|DT_COMMAND, &C_PgpImportCommand, 0, 0, NULL,
211  "(pgp) External command to import a key into the user's keyring"
212  },
213  { "pgp_list_pubring_command", DT_STRING|DT_COMMAND, &C_PgpListPubringCommand, 0, 0, NULL,
214  "(pgp) External command to list the public keys in a user's keyring"
215  },
216  { "pgp_list_secring_command", DT_STRING|DT_COMMAND, &C_PgpListSecringCommand, 0, 0, NULL,
217  "(pgp) External command to list the private keys in a user's keyring"
218  },
219 #endif
220  { "pgp_long_ids", DT_BOOL, &C_PgpLongIds, true, 0, NULL,
221  "Display long PGP key IDs to the user"
222  },
223  { "pgp_mime_auto", DT_QUAD, &C_PgpMimeAuto, MUTT_ASKYES, 0, NULL,
224  "Prompt the user to use MIME if inline PGP fails"
225  },
226  { "pgp_retainable_sigs", DT_BOOL, &C_PgpRetainableSigs, false, 0, NULL,
227  "Create nested multipart/signed or encrypted messages"
228  },
229  { "pgp_self_encrypt", DT_BOOL, &C_PgpSelfEncrypt, true, 0, NULL,
230  "Encrypted messages will also be encrypted to C_PgpDefaultKey too"
231  },
232  { "pgp_show_unusable", DT_BOOL, &C_PgpShowUnusable, true, 0, NULL,
233  "Show non-usable keys in the key selection"
234  },
235  { "pgp_sign_as", DT_STRING, &C_PgpSignAs, 0, 0, NULL,
236  "Use this alternative key for signing messages"
237  },
238 #ifdef CRYPT_BACKEND_CLASSIC_PGP
239  { "pgp_sign_command", DT_STRING|DT_COMMAND, &C_PgpSignCommand, 0, 0, NULL,
240  "(pgp) External command to create a detached PGP signature"
241  },
242 #endif
243  { "pgp_sort_keys", DT_SORT|DT_SORT_REVERSE, &C_PgpSortKeys, SORT_ADDRESS, IP SortKeyMethods, NULL,
244  "Sort order for PGP keys"
245  },
246  { "pgp_strict_enc", DT_BOOL, &C_PgpStrictEnc, true, 0, NULL,
247  "Encode PGP signed messages with quoted-printable (don't unset)"
248  },
249 #ifdef CRYPT_BACKEND_CLASSIC_PGP
250  { "pgp_timeout", DT_LONG|DT_NOT_NEGATIVE, &C_PgpTimeout, 300, 0, NULL,
251  "Time in seconds to cache a passphrase"
252  },
253  { "pgp_use_gpg_agent", DT_BOOL, &C_PgpUseGpgAgent, true, 0, NULL,
254  "Use a PGP agent for caching passwords"
255  },
256  { "pgp_verify_command", DT_STRING|DT_COMMAND, &C_PgpVerifyCommand, 0, 0, NULL,
257  "(pgp) External command to verify PGP signatures"
258  },
259  { "pgp_verify_key_command", DT_STRING|DT_COMMAND, &C_PgpVerifyKeyCommand, 0, 0, NULL,
260  "(pgp) External command to verify key information"
261  },
262 #endif
263 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
264  { "smime_ask_cert_label", DT_BOOL, &C_SmimeAskCertLabel, true, 0, NULL,
265  "Prompt the user for a label for SMIME certificates"
266  },
267  { "smime_ca_location", DT_PATH|DT_PATH_FILE, &C_SmimeCaLocation, 0, 0, NULL,
268  "File containing trusted certificates"
269  },
270  { "smime_certificates", DT_PATH|DT_PATH_DIR, &C_SmimeCertificates, 0, 0, NULL,
271  "File containing user's public certificates"
272  },
273  { "smime_decrypt_command", DT_STRING|DT_COMMAND, &C_SmimeDecryptCommand, 0, 0, NULL,
274  "(smime) External command to decrypt an SMIME message"
275  },
276  { "smime_decrypt_use_default_key", DT_BOOL, &C_SmimeDecryptUseDefaultKey, true, 0, NULL,
277  "Use the default key for decryption"
278  },
279 #endif
280  { "smime_default_key", DT_STRING, &C_SmimeDefaultKey, 0, 0, NULL,
281  "Default key for SMIME operations"
282  },
283 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
284  { "smime_encrypt_command", DT_STRING|DT_COMMAND, &C_SmimeEncryptCommand, 0, 0, NULL,
285  "(smime) External command to encrypt a message"
286  },
287 #endif
288  { "smime_encrypt_with", DT_STRING, &C_SmimeEncryptWith, IP "aes256", 0, NULL,
289  "Algorithm for encryption"
290  },
291 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
292  { "smime_get_cert_command", DT_STRING|DT_COMMAND, &C_SmimeGetCertCommand, 0, 0, NULL,
293  "(smime) External command to extract a certificate from a message"
294  },
295  { "smime_get_cert_email_command", DT_STRING|DT_COMMAND, &C_SmimeGetCertEmailCommand, 0, 0, NULL,
296  "(smime) External command to get a certificate for an email"
297  },
298  { "smime_get_signer_cert_command", DT_STRING|DT_COMMAND, &C_SmimeGetSignerCertCommand, 0, 0, NULL,
299  "(smime) External command to extract a certificate from an email"
300  },
301  { "smime_import_cert_command", DT_STRING|DT_COMMAND, &C_SmimeImportCertCommand, 0, 0, NULL,
302  "(smime) External command to import a certificate"
303  },
304 #endif
305 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
306  { "smime_keys", DT_PATH|DT_PATH_DIR, &C_SmimeKeys, 0, 0, NULL,
307  "File containing user's private certificates"
308  },
309  { "smime_pk7out_command", DT_STRING|DT_COMMAND, &C_SmimePk7outCommand, 0, 0, NULL,
310  "(smime) External command to extract a public certificate"
311  },
312 #endif
313  { "smime_self_encrypt", DT_BOOL, &C_SmimeSelfEncrypt, true, 0, NULL,
314  "Encrypted messages will also be encrypt to C_SmimeDefaultKey too"
315  },
316  { "smime_sign_as", DT_STRING, &C_SmimeSignAs, 0, 0, NULL,
317  "Use this alternative key for signing messages"
318  },
319 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
320  { "smime_sign_command", DT_STRING|DT_COMMAND, &C_SmimeSignCommand, 0, 0, NULL,
321  "(smime) External command to sign a message"
322  },
323  { "smime_sign_digest_alg", DT_STRING, &C_SmimeSignDigestAlg, IP "sha256", 0, NULL,
324  "Digest algorithm"
325  },
326  { "smime_timeout", DT_NUMBER|DT_NOT_NEGATIVE, &C_SmimeTimeout, 300, 0, NULL,
327  "Time in seconds to cache a passphrase"
328  },
329  { "smime_verify_command", DT_STRING|DT_COMMAND, &C_SmimeVerifyCommand, 0, 0, NULL,
330  "(smime) External command to verify a signed message"
331  },
332  { "smime_verify_opaque_command", DT_STRING|DT_COMMAND, &C_SmimeVerifyOpaqueCommand, 0, 0, NULL,
333  "(smime) External command to verify a signature"
334  },
335 #endif
336  { "smime_is_default", DT_BOOL, &C_SmimeIsDefault, false, 0, NULL,
337  "Use SMIME rather than PGP by default"
338  },
339  { "pgp_auto_decode", DT_BOOL, &C_PgpAutoDecode, false, 0, NULL,
340  "Automatically decrypt PGP messages"
341  },
342  { "crypt_verify_sig", DT_QUAD, &C_CryptVerifySig, MUTT_YES, 0, NULL,
343  "Verify PGP or SMIME signatures"
344  },
345  { "crypt_protected_headers_save", DT_BOOL, &C_CryptProtectedHeadersSave, false, 0, NULL,
346  "Save the cleartext Subject with the headers"
347  },
348 
349  { "crypt_confirmhook", DT_SYNONYM, NULL, IP "crypt_confirm_hook", },
350  { "pgp_autoinline", DT_SYNONYM, NULL, IP "pgp_auto_inline", },
351 #ifdef CRYPT_BACKEND_CLASSIC_PGP
352  { "pgp_clearsign_command", DT_SYNONYM, NULL, IP "pgp_clear_sign_command", },
353 #endif
354  { "pgp_create_traditional", DT_SYNONYM, NULL, IP "pgp_auto_inline", },
355 #ifdef CRYPT_BACKEND_CLASSIC_PGP
356  { "pgp_getkeys_command", DT_SYNONYM, NULL, IP "pgp_get_keys_command", },
357 #endif
358  { "pgp_self_encrypt_as", DT_SYNONYM, NULL, IP "pgp_default_key", },
359  { "pgp_verify_sig", DT_SYNONYM, NULL, IP "crypt_verify_sig", },
360  { "smime_self_encrypt_as", DT_SYNONYM, NULL, IP "smime_default_key", },
361 
362  { "pgp_encrypt_self", DT_DEPRECATED|DT_QUAD, &C_PgpEncryptSelf, MUTT_NO },
363  { "smime_encrypt_self", DT_DEPRECATED|DT_QUAD, &C_SmimeEncryptSelf, MUTT_NO },
364 
365  { NULL, 0, NULL, 0, 0, NULL, NULL },
366  // clang-format on
367 };
368 
373 {
374  return cs_register_variables(cs, NcryptVars, 0);
375 }
C_PgpImportCommand
char * C_PgpImportCommand
Config: (pgp) External command to import a key into the user's keyring.
Definition: config.c:96
C_CryptProtectedHeadersSubject
char * C_CryptProtectedHeadersSubject
Config: Use this as the subject for encrypted emails.
Definition: config.c:70
IP
#define IP
Definition: set.h:54
DT_QUAD
#define DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
Definition: types.h:37
C_SmimeImportCertCommand
char * C_SmimeImportCertCommand
Config: (smime) External command to import a certificate.
Definition: config.c:112
C_PgpGoodSign
struct Regex * C_PgpGoodSign
Config: Text indicating a good signature.
Definition: config.c:86
DT_STRING
#define DT_STRING
a string
Definition: types.h:41
C_EnvelopeFromAddress
struct Address * C_EnvelopeFromAddress
Config: Manually set the sender for outgoing messages.
Definition: config.c:71
C_SmimeKeys
char * C_SmimeKeys
Config: File containing user's private certificates.
Definition: config.c:113
C_PgpCheckGpgDecryptStatusFd
bool C_PgpCheckGpgDecryptStatusFd
Config: File descriptor used for status info.
Definition: config.c:84
DT_DEPRECATED
#define DT_DEPRECATED
Config item shouldn't be used any more.
Definition: types.h:79
DT_REGEX
#define DT_REGEX
regular expressions
Definition: types.h:38
C_PgpSignAs
char * C_PgpSignAs
Config: Use this alternative key for signing messages.
Definition: config.c:65
C_PgpStrictEnc
bool C_PgpStrictEnc
Config: Encode PGP signed messages with quoted-printable (don't unset)
Definition: config.c:77
C_SmimeTimeout
long C_SmimeTimeout
Config: Time in seconds to cache a passphrase.
Definition: config.c:117
Regex
Cached regular expression.
Definition: regex3.h:89
DT_NOT_NEGATIVE
#define DT_NOT_NEGATIVE
Negative numbers are not allowed.
Definition: types.h:47
DT_PATH_DIR
#define DT_PATH_DIR
Path is a directory.
Definition: types.h:53
MUTT_YES
@ MUTT_YES
User answered 'Yes', or assume 'Yes'.
Definition: quad.h:40
C_SmimeCertificates
char * C_SmimeCertificates
Config: File containing user's public certificates.
Definition: config.c:105
NcryptVars
struct ConfigDef NcryptVars[]
Definition: config.c:124
cs_register_variables
bool cs_register_variables(const struct ConfigSet *cs, struct ConfigDef vars[], uint32_t flags)
Register a set of config items.
Definition: set.c:286
C_PgpExportCommand
char * C_PgpExportCommand
Config: (pgp) External command to export a public key from the user's keyring.
Definition: config.c:94
C_SmimeCaLocation
char * C_SmimeCaLocation
Config: File containing trusted certificates.
Definition: config.c:104
C_PgpEncryptOnlyCommand
char * C_PgpEncryptOnlyCommand
Config: (pgp) External command to encrypt, but not sign a message.
Definition: config.c:92
C_SmimeGetSignerCertCommand
char * C_SmimeGetSignerCertCommand
Config: (smime) External command to extract a certificate from an email.
Definition: config.c:111
C_PgpUseGpgAgent
bool C_PgpUseGpgAgent
Config: Use a PGP agent for caching passwords.
Definition: config.c:88
C_SmimeDecryptCommand
char * C_SmimeDecryptCommand
Config: (smime) External command to decrypt an SMIME message.
Definition: config.c:106
C_CryptProtectedHeadersRead
bool C_CryptProtectedHeadersRead
Config: Display protected headers (Memory Hole) in the pager.
Definition: config.c:56
C_CryptUseGpgme
bool C_CryptUseGpgme
Config: Use GPGME crypto backend.
Definition: config.c:81
C_PgpDecryptionOkay
struct Regex * C_PgpDecryptionOkay
Config: Text indicating a successful decryption.
Definition: config.c:85
C_PgpShowUnusable
bool C_PgpShowUnusable
Config: Show non-usable keys in the key selection.
Definition: config.c:62
Mapping
Mapping between user-readable string and a constant.
Definition: mapping.h:31
lib.h
C_SmimeSignAs
char * C_SmimeSignAs
Config: Use this alternative key for signing messages.
Definition: config.c:68
C_CryptUsePka
bool C_CryptUsePka
Config: Use GPGME to use PKA (lookup PGP keys using DNS)
Definition: config.c:51
C_PgpRetainableSigs
bool C_PgpRetainableSigs
Config: Create nested multipart/signed or encrypted messages.
Definition: config.c:75
DT_SORT_REVERSE
#define DT_SORT_REVERSE
Sort flag for -reverse prefix.
Definition: sort2.h:38
C_PgpAutoInline
bool C_PgpAutoInline
Config: Use old-style inline PGP messages (not recommended)
Definition: config.c:63
C_SmimePk7outCommand
char * C_SmimePk7outCommand
Config: (smime) External command to extract a public certificate.
Definition: config.c:114
C_PgpClearSignCommand
char * C_PgpClearSignCommand
Config: (pgp) External command to inline-sign a message.
Definition: config.c:89
init.h
C_PgpListSecringCommand
char * C_PgpListSecringCommand
Config: (pgp) External command to list the private keys in a user's keyring.
Definition: config.c:98
C_SmimeAskCertLabel
bool C_SmimeAskCertLabel
Config: Prompt the user for a label for SMIME certificates.
Definition: config.c:103
DT_SYNONYM
#define DT_SYNONYM
synonym for another variable
Definition: types.h:42
DT_NUMBER
#define DT_NUMBER
a number
Definition: types.h:35
C_SmimeEncryptWith
char * C_SmimeEncryptWith
Config: Algorithm for encryption.
Definition: config.c:69
C_CryptOpportunisticEncrypt
bool C_CryptOpportunisticEncrypt
Config: Enable encryption when the recipient's key is available.
Definition: config.c:54
C_PgpTimeout
long C_PgpTimeout
Config: Time in seconds to cache a passphrase.
Definition: config.c:87
C_PgpSelfEncrypt
bool C_PgpSelfEncrypt
Config: Encrypted messages will also be encrypted to $pgp_default_key too.
Definition: config.c:76
C_PgpEncryptSelf
unsigned char C_PgpEncryptSelf
Definition: config.c:73
DT_SORT
#define DT_SORT
sorting methods
Definition: types.h:40
C_SmimeVerifyOpaqueCommand
char * C_SmimeVerifyOpaqueCommand
Config: (smime) External command to verify a signature.
Definition: config.c:119
DT_LONG
#define DT_LONG
a number (long)
Definition: types.h:33
C_PgpLongIds
bool C_PgpLongIds
Config: Display long PGP key IDs to the user.
Definition: config.c:61
DT_PATH
#define DT_PATH
a path to a file/directory
Definition: types.h:36
C_PgpDefaultKey
char * C_PgpDefaultKey
Config: Default key to use for PGP operations.
Definition: config.c:64
C_PgpMimeAuto
unsigned char C_PgpMimeAuto
Config: Prompt the user to use MIME if inline PGP fails.
Definition: config.c:74
C_PgpDecryptCommand
char * C_PgpDecryptCommand
Config: (pgp) External command to decrypt a PGP message.
Definition: config.c:91
MUTT_NO
@ MUTT_NO
User answered 'No', or assume 'No'.
Definition: quad.h:39
C_CryptProtectedHeadersSave
bool C_CryptProtectedHeadersSave
Config: Save the cleartext Subject with the headers.
Definition: config.c:57
config_init_ncrypt
bool config_init_ncrypt(struct ConfigSet *cs)
Register ncrypt config variables - Implements module_init_config_t.
Definition: config.c:372
DT_NOT_EMPTY
#define DT_NOT_EMPTY
Empty strings are not allowed.
Definition: types.h:46
SORT_KEYID
@ SORT_KEYID
Sort by the encryption key's ID.
Definition: sort2.h:57
SORT_ADDRESS
@ SORT_ADDRESS
Sort by email address.
Definition: sort2.h:56
DT_BOOL
#define DT_BOOL
boolean option
Definition: types.h:30
C_SmimeDecryptUseDefaultKey
bool C_SmimeDecryptUseDefaultKey
Config: Use the default key for decryption.
Definition: config.c:107
C_SmimeSignDigestAlg
char * C_SmimeSignDigestAlg
Config: Digest algorithm.
Definition: config.c:116
C_SmimeGetCertEmailCommand
char * C_SmimeGetCertEmailCommand
Config: (smime) External command to get a certificate for an email.
Definition: config.c:110
C_SmimeSelfEncrypt
bool C_SmimeSelfEncrypt
Config: Encrypted messages will also be encrypt to $smime_default_key too.
Definition: config.c:79
C_PgpListPubringCommand
char * C_PgpListPubringCommand
Config: (pgp) External command to list the public keys in a user's keyring.
Definition: config.c:97
DT_PATH_FILE
#define DT_PATH_FILE
Path is a file.
Definition: types.h:54
C_CryptOpportunisticEncryptStrongKeys
bool C_CryptOpportunisticEncryptStrongKeys
Config: Enable encryption only when strong a key is available.
Definition: config.c:55
ConfigDef
Config item definition.
Definition: set.h:61
C_SmimeDefaultKey
char * C_SmimeDefaultKey
Config: Default key for SMIME operations.
Definition: config.c:67
C_PgpDecodeCommand
char * C_PgpDecodeCommand
Config: (pgp) External command to decode a PGP attachment.
Definition: config.c:90
DT_ADDRESS
#define DT_ADDRESS
e-mail address
Definition: types.h:29
ConfigSet
Container for lots of config items.
Definition: set.h:228
C_CryptVerifySig
unsigned char C_CryptVerifySig
Config: Verify PGP or SMIME signatures.
Definition: config.c:121
C_PgpIgnoreSubkeys
bool C_PgpIgnoreSubkeys
Config: Only use the principal PGP key.
Definition: config.c:60
C_SmimeVerifyCommand
char * C_SmimeVerifyCommand
Config: (smime) External command to verify a signed message.
Definition: config.c:118
C_SmimeGetCertCommand
char * C_SmimeGetCertCommand
Config: (smime) External command to extract a certificate from a message.
Definition: config.c:109
C_SmimeIsDefault
bool C_SmimeIsDefault
Config: Use SMIME rather than PGP by default.
Definition: config.c:59
C_PgpVerifyCommand
char * C_PgpVerifyCommand
Config: (pgp) External command to verify PGP signatures.
Definition: config.c:100
C_PgpVerifyKeyCommand
char * C_PgpVerifyKeyCommand
Config: (pgp) External command to verify key information.
Definition: config.c:101
C_PgpEntryFormat
char * C_PgpEntryFormat
Config: printf-like format string for the PGP key selection menu.
Definition: config.c:66
C_PgpCheckExit
bool C_PgpCheckExit
Config: Check the exit code of PGP subprocess.
Definition: config.c:83
SORT_TRUST
@ SORT_TRUST
Sort by encryption key's trust level.
Definition: sort2.h:58
MUTT_ASKYES
@ MUTT_ASKYES
Ask the user, defaulting to 'Yes'.
Definition: quad.h:42
DT_COMMAND
#define DT_COMMAND
A command.
Definition: types.h:50
C_CryptProtectedHeadersWrite
bool C_CryptProtectedHeadersWrite
Config: Generate protected header (Memory Hole) for signed and encrypted emails.
Definition: config.c:58
C_PgpEncryptSignCommand
char * C_PgpEncryptSignCommand
Config: (pgp) External command to encrypt and sign a message.
Definition: config.c:93
C_CryptTimestamp
bool C_CryptTimestamp
Config: Add a timestamp to PGP or SMIME output to prevent spoofing.
Definition: config.c:72
SORT_DATE
@ SORT_DATE
Sort by the date the email was sent.
Definition: sort2.h:45
C_CryptConfirmHook
bool C_CryptConfirmHook
Config: Prompt the user to confirm keys before use.
Definition: config.c:53
C_PgpSignCommand
char * C_PgpSignCommand
Config: (pgp) External command to create a detached PGP signature.
Definition: config.c:99
C_SmimeEncryptCommand
char * C_SmimeEncryptCommand
Config: (smime) External command to encrypt a message.
Definition: config.c:108
C_PgpSortKeys
short C_PgpSortKeys
Config: Sort order for PGP keys.
Definition: config.c:102
C_PgpGetKeysCommand
char * C_PgpGetKeysCommand
Config: (pgp) External command to download a key for an email address.
Definition: config.c:95
C_SmimeSignCommand
char * C_SmimeSignCommand
Config: (smime) External command to sign a message.
Definition: config.c:115
private.h
C_PgpAutoDecode
bool C_PgpAutoDecode
Config: Automatically decrypt PGP messages.
Definition: config.c:120
SortKeyMethods
const struct Mapping SortKeyMethods[]
Sort methods for encryption keys.
Definition: config.c:42
Address
An email address.
Definition: address.h:34
C_SmimeEncryptSelf
unsigned char C_SmimeEncryptSelf
Definition: config.c:78