def deserialize(cls, target_class, obj):
        """
        :type target_class: context.InstallationContext|type
        :type obj: dict

        :rtype: context.InstallationContext
        """

        installation_context = target_class.__new__(target_class)
        private_key_client = security.rsa_key_from_string(
            obj[cls._FIELD_PRIVATE_KEY_CLIENT]
        )
        public_key_client = security.rsa_key_from_string(
            obj[cls._FIELD_PUBLIC_KEY_CLIENT]
        )
        public_key_server = security.rsa_key_from_string(
            obj[cls._FIELD_PUBLIC_KEY_SERVER]
        )
        installation_context.__dict__ = {
            cls._ATTRIBUTE_TOKEN: obj[cls._FIELD_TOKEN],
            cls._ATTRIBUTE_PRIVATE_KEY_CLIENT: private_key_client,
            cls._ATTRIBUTE_PUBLIC_KEY_CLIENT: public_key_client,
            cls._ATTRIBUTE_PUBLIC_KEY_SERVER: public_key_server,
        }

        return installation_context