Files
profanity/tests/unittests/omemo/stub_omemo.c
Michael Vetter 4d49c2b746 feat: Provide descriptive fallback messages for OMEMO decryption failures
If an incoming OMEMO message failed to decrypt (due to missing session
keys or untrusted identities), Profanity would fall back to displaying
the raw XMPP body. This usually contained a generic string like "This
message is encrypted with OMEMO,".

We wrote the detailed reason in the debug logs but the user only saw the
fallback message and probably wondered *why* the message wasn't
displayed properly.

I'm unsure if we should display the fallback message as well though.
2026-03-09 07:49:03 +01:00

164 lines
2.5 KiB
C

#include <glib.h>
#include "config/account.h"
#include "ui/ui.h"
void
omemo_init(void)
{
}
char*
omemo_fingerprint_autocomplete(const char* const search_str, gboolean previous, void* context)
{
return NULL;
}
void
omemo_fingerprint_autocomplete_reset(void)
{
}
char*
omemo_format_fingerprint(const char* const fingerprint)
{
return NULL;
}
void
omemo_generate_crypto_materials(ProfAccount* account)
{
}
gboolean
omemo_automatic_start(const char* const jid)
{
return TRUE;
}
gboolean
omemo_is_trusted_identity(const char* const jid, const char* const fingerprint)
{
return TRUE;
}
gboolean
omemo_is_jid_trusted(const char* const jid)
{
return TRUE;
}
GList*
omemo_get_jid_untrusted_fingerprints(const char* const jid)
{
return NULL;
}
GList*
omemo_known_device_identities(const char* const jid)
{
return NULL;
}
gboolean
omemo_is_device_active(const char* const jid, const char* const fingerprint)
{
return TRUE;
}
gboolean
omemo_loaded(void)
{
return TRUE;
}
void
omemo_on_connect(ProfAccount* account)
{
}
void
omemo_on_disconnect(void)
{
}
char*
omemo_on_message_send(ProfWin* win, const char* const message, gboolean request_receipt, gboolean muc, const char* const replace_id)
{
return NULL;
}
char*
omemo_own_fingerprint(gboolean formatted)
{
return NULL;
}
void
omemo_start_muc_sessions(const char* const roomjid)
{
}
void
omemo_start_session(const char* const barejid)
{
}
void
omemo_trust(const char* const jid, const char* const fingerprint_formatted)
{
}
void
omemo_untrust(const char* const jid, const char* const fingerprint_formatted)
{
}
void
omemo_devicelist_publish(GList* device_list)
{
}
void
omemo_publish_crypto_materials(void)
{
}
void
omemo_start_sessions(void)
{
}
char*
omemo_encrypt_file(FILE* in, FILE* out, off_t file_size, int* gcry_res)
{
return NULL;
};
void omemo_free(void* a) {};
char*
omemo_on_message_recv(const char* const from, uint32_t sid,
const unsigned char* const iv, size_t iv_len,
GList* keys, const unsigned char* const payload,
size_t payload_len, gboolean muc, gboolean* trusted, omemo_error_t* error)
{
if (error) {
*error = OMEMO_ERR_NONE;
}
return NULL;
}
char*
omemo_receive_message(xmpp_stanza_t* const stanza, gboolean* trusted, omemo_error_t* error)
{
if (error) {
*error = OMEMO_ERR_NONE;
}
return NULL;
}
uint32_t
omemo_device_id()
{
return 123;
}
char*
omemo_qrcode_str()
{
return NULL;
}