code: def _get_bytes_to_sign(self):
          
  
          # Depending on the message type the fields to add to the message
          # differ so we handle that here.
          msg_type = self._data.get('Type')
          if msg_type == 'Notification':
              fields_to_sign = [
                  'Message',
                  'MessageId',
                  'Subject',
                  'Timestamp',
                  'TopicArn',
                  'Type',
              ]
          elif (msg_type == 'SubscriptionConfirmation' or
                msg_type == 'UnsubscribeConfirmation'):
              fields_to_sign = [
                  'Message',
                  'MessageId',
                  'SubscribeURL',
                  'Timestamp',
                  'Token',
                  'TopicArn',
                  'Type',
              ]
          else:
              # Unrecognized type
              logger.warning(u'Unrecognized SNS message Type: "%s"', msg_type)
              return None
  
          outbytes = StringIO()
          for field_name in fields_to_sign:
              field_value = smart_str(self._data.get(field_name, ''),
                                      errors="replace")
              if field_value:
                  outbytes.write(text(field_name))
                  outbytes.write(text("\n"))
                  outbytes.write(text(field_value))
                  outbytes.write(text("\n"))
  
          response = outbytes.getvalue()
          return bytes(response, 'utf-8')
docs: Creates the message used for signing SNS notifications.
          This is used to verify the bounce message when it is received.