NeoMutt  2025-12-11-911-gd8d604
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
smime_getkeys()

Get the S/MIME keys required to encrypt this email. More...

+ Collaboration diagram for smime_getkeys():

Functions

void smime_class_getkeys (struct Envelope *env)
 Get the S/MIME keys required to encrypt this email - Implements CryptModuleSpecs::smime_getkeys() -.
 

Detailed Description

Get the S/MIME keys required to encrypt this email.

Parameters
envEnvelope of the email

Function Documentation

◆ smime_class_getkeys()

void smime_class_getkeys ( struct Envelope * env)

Get the S/MIME keys required to encrypt this email - Implements CryptModuleSpecs::smime_getkeys() -.

Definition at line 607 of file smime.c.

608{
610 const bool c_smime_decrypt_use_default_key = cs_subset_bool(NeoMutt->sub, "smime_decrypt_use_default_key");
611 const char *const c_smime_default_key = cs_subset_string(NeoMutt->sub, "smime_default_key");
612 if (c_smime_decrypt_use_default_key && c_smime_default_key)
613 {
614 const char *const c_smime_keys = cs_subset_path(NeoMutt->sub, "smime_keys");
615 buf_printf(&mod_data->smime_key_to_use, "%s/%s", NONULL(c_smime_keys), c_smime_default_key);
616 const char *const c_smime_certificates = cs_subset_path(NeoMutt->sub, "smime_certificates");
617 buf_printf(&mod_data->smime_cert_to_use, "%s/%s",
618 NONULL(c_smime_certificates), c_smime_default_key);
619 return;
620 }
621
622 struct Address *a = NULL;
623 TAILQ_FOREACH(a, &env->to, entries)
624 {
625 if (mutt_addr_is_user(a))
626 {
628 return;
629 }
630 }
631
632 TAILQ_FOREACH(a, &env->cc, entries)
633 {
634 if (mutt_addr_is_user(a))
635 {
637 return;
638 }
639 }
640
641 struct Address *f = mutt_default_from(NeoMutt->sub);
643 mutt_addr_free(&f);
644}
void mutt_addr_free(struct Address **ptr)
Free a single Address.
Definition address.c:462
bool mutt_addr_is_user(const struct Address *addr)
Does the address belong to the user.
Definition alias.c:600
int buf_printf(struct Buffer *buf, const char *fmt,...)
Format a string overwriting a Buffer.
Definition buffer.c:161
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition buffer.h:96
const char * cs_subset_string(const struct ConfigSubset *sub, const char *name)
Get a string config item by name.
Definition helpers.c:291
const char * cs_subset_path(const struct ConfigSubset *sub, const char *name)
Get a path config item by name.
Definition helpers.c:168
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition helpers.c:47
@ MODULE_ID_NCRYPT
ModuleNcrypt, Ncrypt
Definition module_api.h:80
void * neomutt_get_module_data(struct NeoMutt *n, enum ModuleId id)
Get the private data for a Module.
Definition neomutt.c:663
#define TAILQ_FOREACH(var, head, field)
Definition queue.h:782
struct Address * mutt_default_from(struct ConfigSubset *sub)
Get a default 'from' Address.
Definition send.c:1404
static void getkeys(const char *mailbox)
Get the keys for a mailbox.
Definition smime.c:570
#define NONULL(x)
Definition string2.h:44
An email address.
Definition address.h:35
struct Buffer * mailbox
Mailbox and host address.
Definition address.h:37
struct AddressList to
Email's 'To' list.
Definition envelope.h:60
struct AddressList cc
Email's 'Cc' list.
Definition envelope.h:61
Ncrypt private Module data.
Definition module_data.h:38
struct Buffer smime_cert_to_use
S/MIME certificate to use.
Definition module_data.h:58
struct Buffer smime_key_to_use
S/MIME key to use.
Definition module_data.h:57
Container for Accounts, Notifications.
Definition neomutt.h:41
struct ConfigSubset * sub
Inherited config items.
Definition neomutt.h:49
+ Here is the call graph for this function: