struct Message *msg = mx_msg_open(Context, h->msgno);
if (!msg)
return 0;
- if (crypt_pgp_check_traditional(msg->fp, h->content, 0))
+ if (crypt_pgp_check_traditional(msg->fp, h->content, false))
{
h->security = crypt_query(h->content);
*redraw |= REDRAW_FULL;
if (((WithCrypto & APPLICATION_PGP) != 0) && (msg->security & APPLICATION_PGP))
{
- pbody = crypt_pgp_encrypt_message(tmp_pgp_pbody, keylist, flags & SIGN);
+ pbody = crypt_pgp_encrypt_message(tmp_pgp_pbody, keylist, (flags & SIGN));
if (!pbody)
{
/* did we perform a retainable signature? */
/**
* create_gpgme_context - Create a new GPGME context
- * @param for_smime If set, protocol of the context is set to CMS
+ * @param for_smime If true, protocol of the context is set to CMS
* @retval ptr New GPGME context
*/
-static gpgme_ctx_t create_gpgme_context(int for_smime)
+static gpgme_ctx_t create_gpgme_context(bool for_smime)
{
gpgme_error_t err;
gpgme_ctx_t ctx;
/**
* set_signer - Make sure that the correct signer is set
- * @retval 0 Success
+ * @param ctx gpgme Context
+ * @param for_smime Use S/MIME
+ * @retval 0 Success
+ * @retval -1 Error
*/
-static int set_signer(gpgme_ctx_t ctx, int for_smime)
+static int set_signer(gpgme_ctx_t ctx, bool for_smime)
{
char *signid = for_smime ? SmimeDefaultKey : PgpSignAs;
gpgme_error_t err;
* a PGP message is signed and encrypted. Returns NULL in case of error
*/
static char *encrypt_gpgme_object(gpgme_data_t plaintext, gpgme_key_t *rset,
- int use_smime, int combined_signed)
+ bool use_smime, bool combined_signed)
{
gpgme_error_t err;
gpgme_ctx_t ctx;
* @retval ptr new Body
* @retval NULL error
*/
-static struct Body *sign_message(struct Body *a, int use_smime)
+static struct Body *sign_message(struct Body *a, bool use_smime)
{
struct Body *t = NULL;
char *sigfile = NULL;
*/
struct Body *pgp_gpgme_sign_message(struct Body *a)
{
- return sign_message(a, 0);
+ return sign_message(a, false);
}
/**
*/
struct Body *smime_gpgme_sign_message(struct Body *a)
{
- return sign_message(a, 1);
+ return sign_message(a, true);
}
/**
* pgp_gpgme_encrypt_message - Implements CryptModuleSpecs::pgp_encrypt_message()
*/
-struct Body *pgp_gpgme_encrypt_message(struct Body *a, char *keylist, int sign)
+struct Body *pgp_gpgme_encrypt_message(struct Body *a, char *keylist, bool sign)
{
gpgme_key_t *rset = create_recipient_set(keylist, GPGME_PROTOCOL_OpenPGP);
if (!rset)
return NULL;
}
- char *outfile = encrypt_gpgme_object(plaintext, rset, 0, sign);
+ char *outfile = encrypt_gpgme_object(plaintext, rset, false, sign);
gpgme_data_release(plaintext);
free_recipient_set(&rset);
if (!outfile)
return NULL;
}
- char *outfile = encrypt_gpgme_object(plaintext, rset, 1, 0);
+ char *outfile = encrypt_gpgme_object(plaintext, rset, true, false);
gpgme_data_release(plaintext);
free_recipient_set(&rset);
if (!outfile)
*
* With IS_SMIME set to true we assume S/MIME (surprise!)
*/
-static int verify_one(struct Body *sigbdy, struct State *s, const char *tempfile, int is_smime)
+static int verify_one(struct Body *sigbdy, struct State *s, const char *tempfile, bool is_smime)
{
int badsig = -1;
int anywarn = 0;
*/
int pgp_gpgme_verify_one(struct Body *sigbdy, struct State *s, const char *tempfile)
{
- return verify_one(sigbdy, s, tempfile, 0);
+ return verify_one(sigbdy, s, tempfile, false);
}
/**
*/
int smime_gpgme_verify_one(struct Body *sigbdy, struct State *s, const char *tempfile)
{
- return verify_one(sigbdy, s, tempfile, 1);
+ return verify_one(sigbdy, s, tempfile, true);
}
/**
* encrypted but a signed message.
*/
static struct Body *decrypt_part(struct Body *a, struct State *s, FILE *fpout,
- int is_smime, int *r_is_signed)
+ bool is_smime, int *r_is_signed)
{
if (!a || !s || !fpout)
return NULL;
}
unlink(tempfile);
- *cur = decrypt_part(b, &s, *fpout, 0, &is_signed);
+ *cur = decrypt_part(b, &s, *fpout, false, &is_signed);
if (!*cur)
rc = -1;
rewind(*fpout);
}
mutt_file_unlink(tempfile);
- *cur = decrypt_part(b, &s, *fpout, 1, &is_signed);
+ *cur = decrypt_part(b, &s, *fpout, true, &is_signed);
if (*cur)
(*cur)->goodsig = is_signed > 0;
b->type = saved_b_type;
}
mutt_file_unlink(tempfile);
- tmp_b = decrypt_part(bb, &s, *fpout, 1, &is_signed);
+ tmp_b = decrypt_part(bb, &s, *fpout, true, &is_signed);
if (tmp_b)
tmp_b->goodsig = is_signed > 0;
bb->type = saved_b_type;
/**
* pgp_gpgme_check_traditional - Implements CryptModuleSpecs::pgp_check_traditional()
*/
-int pgp_gpgme_check_traditional(FILE *fp, struct Body *b, int just_one)
+int pgp_gpgme_check_traditional(FILE *fp, struct Body *b, bool just_one)
{
int rc = 0;
int r;
for (; b; b = b->next)
{
if (!just_one && is_multipart(b))
- rc = (pgp_gpgme_check_traditional(fp, b->parts, 0) || rc);
+ rc = (pgp_gpgme_check_traditional(fp, b->parts, false) || rc);
else if (b->type == TYPETEXT)
{
r = mutt_is_application_pgp(b);
gpgme_ctx_t ctx;
plaintext = create_gpgme_data();
- ctx = create_gpgme_context(0);
+ ctx = create_gpgme_context(false);
if (clearsign)
err = gpgme_op_verify(ctx, armored_data, NULL, plaintext);
return -1;
}
- struct Body *tattach = decrypt_part(a, s, fpout, 0, &is_signed);
+ struct Body *tattach = decrypt_part(a, s, fpout, false, &is_signed);
if (tattach)
{
tattach->goodsig = is_signed > 0;
int smime_gpgme_application_handler(struct Body *a, struct State *s)
{
char tempfile[PATH_MAX];
- int is_signed;
+ int is_signed = 0;
int rc = 0;
mutt_debug(2, "Entering handler\n");
return -1;
}
- struct Body *tattach = decrypt_part(a, s, fpout, 1, &is_signed);
+ struct Body *tattach = decrypt_part(a, s, fpout, true, &is_signed);
if (tattach)
{
tattach->goodsig = is_signed > 0;
export_keys[0] = key->kobj;
export_keys[1] = NULL;
- context = create_gpgme_context(0);
+ context = create_gpgme_context(false);
gpgme_set_armor(context, 1);
keydata = create_gpgme_data();
err = gpgme_op_export_keys(context, export_keys, 0, keydata);
void pgp_gpgme_set_sender(const char *sender);
int pgp_gpgme_application_handler(struct Body *m, struct State *s);
-int pgp_gpgme_check_traditional(FILE *fp, struct Body *b, int just_one);
+int pgp_gpgme_check_traditional(FILE *fp, struct Body *b, bool just_one);
int pgp_gpgme_decrypt_mime(FILE *fpin, FILE **fpout, struct Body *b, struct Body **cur);
int pgp_gpgme_encrypted_handler(struct Body *a, struct State *s);
-struct Body *pgp_gpgme_encrypt_message(struct Body *a, char *keylist, int sign);
+struct Body *pgp_gpgme_encrypt_message(struct Body *a, char *keylist, bool sign);
char * pgp_gpgme_find_keys(struct Address *addrlist, bool oppenc_mode);
void pgp_gpgme_init(void);
void pgp_gpgme_invoke_import(const char *fname);
*
* Encrypt the mail body to all the given keys.
*/
- struct Body *(*pgp_encrypt_message)(struct Body *a, char *keylist, int sign);
+ struct Body *(*pgp_encrypt_message)(struct Body *a, char *keylist, bool sign);
/**
* pgp_make_key_attachment - Generate a public key attachment
* @retval ptr New Body containing the attachment
* @retval 1 It's an inline PGP email
* @retval 0 It's not inline, or an error
*/
- int (*pgp_check_traditional)(FILE *fp, struct Body *b, int just_one);
+ int (*pgp_check_traditional)(FILE *fp, struct Body *b, bool just_one);
/**
* pgp_traditional_encryptsign - Create an inline PGP encrypted, signed email
* @param a Body of the email
/**
* crypt_pgp_check_traditional - Wrapper for CryptModuleSpecs::pgp_check_traditional()
*/
-int crypt_pgp_check_traditional(FILE *fp, struct Body *b, int just_one)
+int crypt_pgp_check_traditional(FILE *fp, struct Body *b, bool just_one)
{
if (CRYPT_MOD_CALL_CHECK(PGP, pgp_check_traditional))
return (CRYPT_MOD_CALL(PGP, pgp_check_traditional))(fp, b, just_one);
/**
* crypt_pgp_encrypt_message - Wrapper for CryptModuleSpecs::pgp_encrypt_message()
*/
-struct Body *crypt_pgp_encrypt_message(struct Body *a, char *keylist, int sign)
+struct Body *crypt_pgp_encrypt_message(struct Body *a, char *keylist, bool sign)
{
if (CRYPT_MOD_CALL_CHECK(PGP, pgp_encrypt_message))
return (CRYPT_MOD_CALL(PGP, pgp_encrypt_message))(a, keylist, sign);
struct Body;
struct State;
-struct Body *crypt_pgp_encrypt_message(struct Body *a, char *keylist, int sign);
+struct Body *crypt_pgp_encrypt_message(struct Body *a, char *keylist, bool sign);
char * crypt_pgp_find_keys(struct Address *addrlist, bool oppenc_mode);
void crypt_pgp_invoke_import(const char *fname);
void crypt_pgp_set_sender(const char *sender);
void crypt_init(void);
void crypt_invoke_message(int type);
int crypt_pgp_application_handler(struct Body *m, struct State *s);
-int crypt_pgp_check_traditional(FILE *fp, struct Body *b, int just_one);
+int crypt_pgp_check_traditional(FILE *fp, struct Body *b, bool just_one);
int crypt_pgp_decrypt_mime(FILE *a, FILE **b, struct Body *c, struct Body **d);
int crypt_pgp_encrypted_handler(struct Body *a, struct State *s);
void crypt_pgp_extract_key_from_attachment(FILE *fp, struct Body *top);
/**
* pgp_class_check_traditional - Implements CryptModuleSpecs::pgp_check_traditional()
*/
-int pgp_class_check_traditional(FILE *fp, struct Body *b, int just_one)
+int pgp_class_check_traditional(FILE *fp, struct Body *b, bool just_one)
{
int rc = 0;
int r;
for (; b; b = b->next)
{
if (!just_one && is_multipart(b))
- rc = pgp_class_check_traditional(fp, b->parts, 0) || rc;
+ rc = pgp_class_check_traditional(fp, b->parts, false) || rc;
else if (b->type == TYPETEXT)
{
r = mutt_is_application_pgp(b);
* @warning "a" is no longer freed in this routine, you need to free it later.
* This is necessary for $fcc_attach.
*/
-struct Body *pgp_class_encrypt_message(struct Body *a, char *keylist, int sign)
+struct Body *pgp_class_encrypt_message(struct Body *a, char *keylist, bool sign)
{
char buf[LONG_STRING];
char tempfile[PATH_MAX], pgperrfile[PATH_MAX];
bool pgp_use_gpg_agent(void);
-int pgp_class_check_traditional(FILE *fp, struct Body *b, int just_one);
+int pgp_class_check_traditional(FILE *fp, struct Body *b, bool just_one);
char *pgp_this_keyid(struct PgpKeyInfo *k);
char *pgp_keyid(struct PgpKeyInfo *k);
int pgp_class_verify_one(struct Body *sigbdy, struct State *s, const char *tempfile);
struct Body *pgp_class_traditional_encryptsign(struct Body *a, int flags, char *keylist);
-struct Body *pgp_class_encrypt_message(struct Body *a, char *keylist, int sign);
+struct Body *pgp_class_encrypt_message(struct Body *a, char *keylist, bool sign);
struct Body *pgp_class_sign_message(struct Body *a);
int pgp_class_send_menu(struct Header *msg);
pid_t pgp_invoke_encrypt(FILE **pgpin, FILE **pgpout, FILE **pgperr,
int pgpinfd, int pgpoutfd, int pgperrfd,
- const char *fname, const char *uids, int sign)
+ const char *fname, const char *uids, bool sign)
{
if (sign)
{
pid_t pgp_invoke_decode (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, const char *fname, bool need_passphrase);
pid_t pgp_invoke_decrypt (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, const char *fname);
-pid_t pgp_invoke_encrypt (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, const char *fname, const char *uids, int sign);
+pid_t pgp_invoke_encrypt (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, const char *fname, const char *uids, bool sign);
pid_t pgp_invoke_export (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, const char *uids);
pid_t pgp_invoke_list_keys (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, enum PgpRing keyring, struct ListHead *hints);
pid_t pgp_invoke_sign (FILE **pgpin, FILE **pgpout, FILE **pgperr, int pgpinfd, int pgpoutfd, int pgperrfd, const char *fname);
int rc = 0;
if (!menu->tagprefix)
- rc = crypt_pgp_check_traditional(CURATTACH->fp, CURATTACH->content, 1);
+ rc = crypt_pgp_check_traditional(CURATTACH->fp, CURATTACH->content, true);
else
{
for (int i = 0; i < actx->idxlen; i++)
if (actx->idx[i]->content->tagged)
- rc = rc || crypt_pgp_check_traditional(actx->idx[i]->fp, actx->idx[i]->content, 1);
+ rc = rc || crypt_pgp_check_traditional(actx->idx[i]->fp, actx->idx[i]->content, true);
}
return rc;