Encrypt Thumbnails

When a client sends a thumbnail with their media message, encrypt the
thumbnail too.
This commit is contained in:
Alexander Manning 2021-05-14 13:25:29 +01:00
parent 73f68c76fb
commit 7b4cc0527d
No known key found for this signature in database
GPG Key ID: 22F72ED88C94E2B0
2 changed files with 24 additions and 0 deletions

View File

@ -954,6 +954,17 @@ class ProxyDaemon:
)
media_content = media_info.to_content(content, upload_info.mimetype)
if media_content["info"].get("thumbnail_url", False):
(
thumb_upload_info,
thumb_media_info,
) = self._get_upload_and_media_info(
"thumbnail_url", media_content["info"]
)
if thumb_upload_info and thumb_media_info:
media_content = thumb_media_info.to_thumbnail(
media_content, thumb_upload_info.mimetype
)
response = await client.room_send(
room_id, msgtype, media_content, txnid, ignore_unverified

View File

@ -60,6 +60,19 @@ class MediaInfo:
return content
def to_thumbnail(self, content: Dict, mime_type: str) -> Dict[Any, Any]:
content["info"]["thumbnail_file"] = {
"v": "v2",
"key": self.key,
"iv": self.iv,
"hashes": self.hashes,
"url": content["info"]["thumbnail_url"],
"mimetype": mime_type,
}
return content
@attr.s
class UploadInfo: