ssb: Better errors for failing to decrypt private messages.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 22m32s
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 22m32s
This commit is contained in:
parent
aea631138e
commit
852c25296a
@ -2238,6 +2238,8 @@ static void _tf_ssb_private_message_decrypt_work(tf_ssb_t* ssb, void* user_data)
|
|||||||
tf_ssb_release_db_reader(ssb, db);
|
tf_ssb_release_db_reader(ssb, db);
|
||||||
|
|
||||||
if (found)
|
if (found)
|
||||||
|
{
|
||||||
|
if (work->message_size >= strlen(".box") && memcmp(work->message + work->message_size - strlen(".box"), ".box", strlen(".box")) == 0)
|
||||||
{
|
{
|
||||||
uint8_t* decoded = tf_malloc(work->message_size);
|
uint8_t* decoded = tf_malloc(work->message_size);
|
||||||
int decoded_length = tf_base64_decode(work->message, work->message_size - strlen(".box"), decoded, work->message_size);
|
int decoded_length = tf_base64_decode(work->message, work->message_size - strlen(".box"), decoded, work->message_size);
|
||||||
@ -2283,11 +2285,16 @@ static void _tf_ssb_private_message_decrypt_work(tf_ssb_t* ssb, void* user_data)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
work->error = "Encrypted message was not long enough to contains its one-time public key.";
|
work->error = "Encrypted message was not long enough to contain its one-time public key.";
|
||||||
}
|
}
|
||||||
tf_free(decoded);
|
tf_free(decoded);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
work->error = "Message does not end in \".box\".";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
work->error = "Private key not found for user.";
|
work->error = "Private key not found for user.";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user