コード例 #1
0
ファイル: schemas.py プロジェクト: ofthesun9/Mailu
    def _deserialize(self, value, attr, data, **kwargs):
        """ deserialize a string or list of strings to dkim key data
            with verification
        """

        # convert list to str
        if isinstance(value, list):
            try:
                value = ''.join(ensure_text_type(item)
                                for item in value).strip()
            except UnicodeDecodeError as exc:
                raise self.make_error("invalid_utf8") from exc

        # only text is allowed
        else:
            if not isinstance(value, (str, bytes)):
                raise self.make_error("invalid")
            try:
                value = ensure_text_type(value).strip()
            except UnicodeDecodeError as exc:
                raise self.make_error("invalid_utf8") from exc

        # generate new key?
        if value.lower() == '-generate-':
            return dkim.gen_key()

        # no key?
        if not value:
            return None

        # remember part of value for ValidationError
        bad_key = value

        # strip header and footer, clean whitespace and wrap to 64 characters
        try:
            if value.startswith('-----BEGIN '):
                end = value.index('-----', 11) + 5
                header = value[:end]
                value = value[end:]
            else:
                header = '-----BEGIN PRIVATE KEY-----'

            if (pos := value.find('-----END ')) >= 0:
                end = value.index('-----', pos + 9) + 5
                footer = value[pos:end]
                value = value[:pos]
            else:
コード例 #2
0
 def generate_dkim_key(self):
     self.dkim_key = dkim.gen_key()
コード例 #3
0
ファイル: models.py プロジェクト: insxa/Mailu
 def generate_dkim_key(self):
     self.dkim_key = dkim.gen_key()
コード例 #4
0
ファイル: models.py プロジェクト: rbnis/Mailu
 def generate_dkim_key(self):
     """ generate new DKIM key """
     self.dkim_key = dkim.gen_key()