Using the information generated at blocks 612, 618, and 620, the system may generate an image message at block 622. The image message may include a reference to the image, which may include the location and/or ID returned by the blob store at block 620, the thumbnail length calculated at block 612 (and/or any other lengths calculated at block 810), and the chunk HMACs calculated at block 618. The content of the image message may be encrypted, and at block 624 the image message may be transmitted to its intended recipient(s).
The procedure depicted in 
At block 652, the receiving client may perform an E2EE session setup. Block 652 may be the counterpart to block 602, and may include similar or corresponding steps.
At block 654, the receiving client may receive an image message using the E2EE session that was set up in block 652. The image message may include encrypted content, such as an encrypted reference to an image, data lengths, and HMACs.