Store key alias on decrypt

pull/169/head
M66B 6 years ago
parent 408f4b5683
commit 65ab16870b

@ -4399,11 +4399,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
if (EntityMessage.SMIME_SIGNONLY.equals(type)) {
EntityMessage message = db.message().getMessage(id); EntityMessage message = db.message().getMessage(id);
if (message == null) if (message == null)
return null; return null;
if (EntityMessage.SMIME_SIGNONLY.equals(type)) {
// Get content/signature // Get content/signature
File content = null; File content = null;
File signature = null; File signature = null;
@ -4481,7 +4481,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
// Get encrypted message // Get encrypted message
File input = null; File input = null;
List<EntityAttachment> attachments = db.attachment().getAttachments(id); List<EntityAttachment> attachments = db.attachment().getAttachments(message.id);
for (EntityAttachment attachment : attachments) for (EntityAttachment attachment : attachments)
if (EntityAttachment.SMIME_MESSAGE.equals(attachment.encryption)) { if (EntityAttachment.SMIME_MESSAGE.equals(attachment.encryption)) {
if (!attachment.available) if (!attachment.available)
@ -4539,16 +4539,16 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
// Write decrypted body // Write decrypted body
String html = parts.getHtml(context); String html = parts.getHtml(context);
Helper.writeText(EntityMessage.getFile(context, id), html); Helper.writeText(message.getFile(context), html);
// Remove existing attachments // Remove existing attachments
db.attachment().deleteAttachments(id); db.attachment().deleteAttachments(message.id);
// Add decrypted attachments // Add decrypted attachments
List<EntityAttachment> remotes = parts.getAttachments(); List<EntityAttachment> remotes = parts.getAttachments();
for (int index = 0; index < remotes.size(); index++) { for (int index = 0; index < remotes.size(); index++) {
EntityAttachment remote = remotes.get(index); EntityAttachment remote = remotes.get(index);
remote.message = id; remote.message = message.id;
remote.sequence = index + 1; remote.sequence = index + 1;
remote.id = db.attachment().insertAttachment(remote); remote.id = db.attachment().insertAttachment(remote);
try { try {
@ -4558,8 +4558,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
} }
} }
db.message().setMessageEncrypt(id, parts.getEncryption()); db.message().setMessageEncrypt(message.id, parts.getEncryption());
db.message().setMessageStored(id, new Date().getTime()); db.message().setMessageStored(message.id, new Date().getTime());
if (message.identity != null)
db.identity().setIdentitySignKeyAlias(message.identity, alias);
db.setTransactionSuccessful(); db.setTransactionSuccessful();
} finally { } finally {

Loading…
Cancel
Save