At block 676, the system determines if multiscan capabilities are enabled (similar to block 608 of
At block 680, the system may decrypt the received chunk and, at block 682, verify the chunk HMAC (blocks 680 and 682 may be reversed in some embodiments). At block 684, the system updates the UI based on the newly-received image data (assuming that the most recent chunk included data up to the end of one of the image scans; otherwise, block 684 may be omitted in this iteration of the loop).
At block 686, the system determines if more chunks remain to be downloaded from the blob store. If so, processing returns to block 678 and the next chunk may be retrieved. If not (i.e., all chunks have been downloaded), processing may terminate because the image has been rendered at full quality.
After the receiving client has received the image data, the receiving user may request that the image be forwarded to another user.
At block 692, the system may receive a request to forward an image previously downloaded to the receiving client. The request may be to forward the image to a second receiving client, with which the first receiving client may set up an E2EE session at block 694.