mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
crypto: Make _notmuch_crypto_decrypt take a GMimeObject
As we prepare to handle S/MIME-encrypted PKCS#7 EnvelopedData (which is not multipart), we don't want to be limited to passing only GMimeMultipartEncrypted MIME parts to _notmuch_crypto_decrypt. There is no functional change here, just a matter of adjusting how we pass arguments internally. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
This commit is contained in:
parent
1b9f4a9863
commit
2b108728c4
4 changed files with 9 additions and 10 deletions
|
@ -369,7 +369,7 @@ _index_content_type (notmuch_message_t *message, GMimeObject *part)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_index_encrypted_mime_part (notmuch_message_t *message, notmuch_indexopts_t *indexopts,
|
_index_encrypted_mime_part (notmuch_message_t *message, notmuch_indexopts_t *indexopts,
|
||||||
GMimeMultipartEncrypted *part,
|
GMimeObject *part,
|
||||||
_notmuch_message_crypto_t *msg_crypto);
|
_notmuch_message_crypto_t *msg_crypto);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -439,7 +439,7 @@ _index_mime_part (notmuch_message_t *message,
|
||||||
g_mime_multipart_get_part (multipart, i));
|
g_mime_multipart_get_part (multipart, i));
|
||||||
if (i == GMIME_MULTIPART_ENCRYPTED_CONTENT) {
|
if (i == GMIME_MULTIPART_ENCRYPTED_CONTENT) {
|
||||||
_index_encrypted_mime_part (message, indexopts,
|
_index_encrypted_mime_part (message, indexopts,
|
||||||
GMIME_MULTIPART_ENCRYPTED (part),
|
part,
|
||||||
msg_crypto);
|
msg_crypto);
|
||||||
} else {
|
} else {
|
||||||
if (i != GMIME_MULTIPART_ENCRYPTED_VERSION) {
|
if (i != GMIME_MULTIPART_ENCRYPTED_VERSION) {
|
||||||
|
@ -551,7 +551,7 @@ _index_mime_part (notmuch_message_t *message,
|
||||||
static void
|
static void
|
||||||
_index_encrypted_mime_part (notmuch_message_t *message,
|
_index_encrypted_mime_part (notmuch_message_t *message,
|
||||||
notmuch_indexopts_t *indexopts,
|
notmuch_indexopts_t *indexopts,
|
||||||
GMimeMultipartEncrypted *encrypted_data,
|
GMimeObject *encrypted_data,
|
||||||
_notmuch_message_crypto_t *msg_crypto)
|
_notmuch_message_crypto_t *msg_crypto)
|
||||||
{
|
{
|
||||||
notmuch_status_t status;
|
notmuch_status_t status;
|
||||||
|
@ -603,7 +603,7 @@ _index_encrypted_mime_part (notmuch_message_t *message,
|
||||||
g_object_unref (decrypt_result);
|
g_object_unref (decrypt_result);
|
||||||
}
|
}
|
||||||
GMimeObject *toindex = clear;
|
GMimeObject *toindex = clear;
|
||||||
if (_notmuch_message_crypto_potential_payload (msg_crypto, clear, GMIME_OBJECT (encrypted_data), GMIME_MULTIPART_ENCRYPTED_CONTENT) &&
|
if (_notmuch_message_crypto_potential_payload (msg_crypto, clear, encrypted_data, GMIME_MULTIPART_ENCRYPTED_CONTENT) &&
|
||||||
msg_crypto->decryption_status == NOTMUCH_MESSAGE_DECRYPTED_FULL) {
|
msg_crypto->decryption_status == NOTMUCH_MESSAGE_DECRYPTED_FULL) {
|
||||||
toindex = _notmuch_repair_crypto_payload_skip_legacy_display (clear);
|
toindex = _notmuch_repair_crypto_payload_skip_legacy_display (clear);
|
||||||
if (toindex != clear)
|
if (toindex != clear)
|
||||||
|
|
|
@ -253,7 +253,6 @@ node_decrypt_and_verify (mime_node_t *node, GMimeObject *part)
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
GMimeDecryptResult *decrypt_result = NULL;
|
GMimeDecryptResult *decrypt_result = NULL;
|
||||||
notmuch_status_t status;
|
notmuch_status_t status;
|
||||||
GMimeMultipartEncrypted *encrypteddata = GMIME_MULTIPART_ENCRYPTED (part);
|
|
||||||
notmuch_message_t *message = NULL;
|
notmuch_message_t *message = NULL;
|
||||||
|
|
||||||
if (! node->unwrapped_child) {
|
if (! node->unwrapped_child) {
|
||||||
|
@ -266,7 +265,7 @@ node_decrypt_and_verify (mime_node_t *node, GMimeObject *part)
|
||||||
node->unwrapped_child = _notmuch_crypto_decrypt (&node->decrypt_attempted,
|
node->unwrapped_child = _notmuch_crypto_decrypt (&node->decrypt_attempted,
|
||||||
node->ctx->crypto->decrypt,
|
node->ctx->crypto->decrypt,
|
||||||
message,
|
message,
|
||||||
encrypteddata, &decrypt_result, &err);
|
part, &decrypt_result, &err);
|
||||||
if (node->unwrapped_child)
|
if (node->unwrapped_child)
|
||||||
set_unwrapped_child_destructor (node);
|
set_unwrapped_child_destructor (node);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ GMimeObject *
|
||||||
_notmuch_crypto_decrypt (bool *attempted,
|
_notmuch_crypto_decrypt (bool *attempted,
|
||||||
notmuch_decryption_policy_t decrypt,
|
notmuch_decryption_policy_t decrypt,
|
||||||
notmuch_message_t *message,
|
notmuch_message_t *message,
|
||||||
GMimeMultipartEncrypted *part,
|
GMimeObject *part,
|
||||||
GMimeDecryptResult **decrypt_result,
|
GMimeDecryptResult **decrypt_result,
|
||||||
GError **err)
|
GError **err)
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ _notmuch_crypto_decrypt (bool *attempted,
|
||||||
}
|
}
|
||||||
if (attempted)
|
if (attempted)
|
||||||
*attempted = true;
|
*attempted = true;
|
||||||
ret = g_mime_multipart_encrypted_decrypt (part,
|
ret = g_mime_multipart_encrypted_decrypt (GMIME_MULTIPART_ENCRYPTED (part),
|
||||||
GMIME_DECRYPT_NONE,
|
GMIME_DECRYPT_NONE,
|
||||||
notmuch_message_properties_value (list),
|
notmuch_message_properties_value (list),
|
||||||
decrypt_result, err);
|
decrypt_result, err);
|
||||||
|
@ -81,7 +81,7 @@ _notmuch_crypto_decrypt (bool *attempted,
|
||||||
GMimeDecryptFlags flags = GMIME_DECRYPT_NONE;
|
GMimeDecryptFlags flags = GMIME_DECRYPT_NONE;
|
||||||
if (decrypt == NOTMUCH_DECRYPT_TRUE && decrypt_result)
|
if (decrypt == NOTMUCH_DECRYPT_TRUE && decrypt_result)
|
||||||
flags |= GMIME_DECRYPT_EXPORT_SESSION_KEY;
|
flags |= GMIME_DECRYPT_EXPORT_SESSION_KEY;
|
||||||
ret = g_mime_multipart_encrypted_decrypt (part, flags, NULL,
|
ret = g_mime_multipart_encrypted_decrypt (GMIME_MULTIPART_ENCRYPTED (part), flags, NULL,
|
||||||
decrypt_result, err);
|
decrypt_result, err);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ GMimeObject *
|
||||||
_notmuch_crypto_decrypt (bool *attempted,
|
_notmuch_crypto_decrypt (bool *attempted,
|
||||||
notmuch_decryption_policy_t decrypt,
|
notmuch_decryption_policy_t decrypt,
|
||||||
notmuch_message_t *message,
|
notmuch_message_t *message,
|
||||||
GMimeMultipartEncrypted *part,
|
GMimeObject *part,
|
||||||
GMimeDecryptResult **decrypt_result,
|
GMimeDecryptResult **decrypt_result,
|
||||||
GError **err);
|
GError **err);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue