# frozen_string_literal: true class ActivityPub::EncryptedMessageSerializer < ActivityPub::Serializer context :security context_extensions :olm class DeviceSerializer < ActivityPub::Serializer attributes :type, :device_id def type 'Device' end def device_id object end end class DigestSerializer < ActivityPub::Serializer attributes :type, :digest_algorithm, :digest_value def type 'Digest' end def digest_algorithm 'http://www.w3.org/2000/09/xmldsig#hmac-sha256' end def digest_value object end end attributes :type, :message_type, :cipher_text, :message_franking has_one :attributed_to, serializer: DeviceSerializer has_one :to, serializer: DeviceSerializer has_one :digest, serializer: DigestSerializer def type 'EncryptedMessage' end def attributed_to object.source_device.device_id end def to object.target_device_id end def message_type object.type end def cipher_text object.body end end