Exemplo n.º 1
0
    def run(self, edit, encode_type='b64encode'):

        fix_base32_padding = sublime.load_settings(SETTINGS_FILE).get("base32_fix_padding", False)
        print("Codec: fix base32 padding? %s" % str(fix_base32_padding))
        fix_base64_padding = sublime.load_settings(SETTINGS_FILE).get("base64_fix_padding", False)
        print("Codec: fix base64 padding? %s" % str(fix_base64_padding))

        for region in selected_regions(self.view):
            if not region.empty():
                original_string = self.view.substr(region)
                # print("string: " + original_string)
                if 'b64encode' == encode_type:
                    encoded_string = base64.b64encode(original_string.encode("UTF-8"))
                elif 'b64decode' == encode_type:
                    encoded_string = codec_base64.b64decode(original_string.encode("UTF-8"), add_padding=fix_base64_padding)                    
                elif 'urlsafe_b64encode' == encode_type:
                    encoded_string = base64.urlsafe_b64encode(original_string.encode("UTF-8"))
                elif 'urlsafe_b64decode' == encode_type:
                    encoded_string = codec_base64.urlsafe_b64decode(original_string.encode("UTF-8"), add_padding=fix_base64_padding)
                elif 'b32encode' == encode_type:
                    encoded_string = base64.b32encode(original_string.encode("UTF-8"))
                elif 'b32decode' == encode_type:
                    encoded_string = codec_base64.b32decode(original_string.encode("UTF-8"), add_padding=fix_base32_padding)
                elif 'b16encode' == encode_type:
                    encoded_string = base64.b16encode(original_string.encode("UTF-8"))
                elif 'b16decode' == encode_type:
                    encoded_string = base64.b16decode(original_string.encode("UTF-8"))
                else:
                    print("unsupported operation %s" % (encode_type,))
                    break

                # print("string encoded: " + str(encoded_string.decode("UTF-8")))
                self.view.replace(edit, region, encoded_string.decode("UTF-8"))
Exemplo n.º 2
0
    def test_urlsafe_b64decode_correct_bad_padding(self):
        # fix the bad badding for URL safe Base64
        s = "c3ViamVjdHM_YWJjZA=\n".encode('UTF-8')
        expected = 'subjects?abcd'.encode('UTF-8')

        self.assertEquals(expected,
                          codec_base64.urlsafe_b64decode(s, add_padding=True))
Exemplo n.º 3
0
    def run(self, edit, encode_type='b64encode'):

        fix_base32_padding = sublime.load_settings(SETTINGS_FILE).get(
            "base32_fix_padding", False)
        print("Codec: fix base32 padding? %s" % str(fix_base32_padding))
        fix_base64_padding = sublime.load_settings(SETTINGS_FILE).get(
            "base64_fix_padding", False)
        print("Codec: fix base64 padding? %s" % str(fix_base64_padding))

        for region in selected_regions(self.view):
            if not region.empty():
                original_string = self.view.substr(region)
                # print("string: " + original_string)
                if 'b64encode' == encode_type:
                    encoded_string = base64.b64encode(
                        original_string.encode("UTF-8"))
                elif 'b64decode' == encode_type:
                    encoded_string = codec_base64.b64decode(
                        original_string.encode("UTF-8"),
                        add_padding=fix_base64_padding)
                elif 'urlsafe_b64encode' == encode_type:
                    encoded_string = base64.urlsafe_b64encode(
                        original_string.encode("UTF-8"))
                elif 'urlsafe_b64decode' == encode_type:
                    encoded_string = codec_base64.urlsafe_b64decode(
                        original_string.encode("UTF-8"),
                        add_padding=fix_base64_padding)
                elif 'b32encode' == encode_type:
                    encoded_string = base64.b32encode(
                        original_string.encode("UTF-8"))
                elif 'b32decode' == encode_type:
                    encoded_string = codec_base64.b32decode(
                        original_string.encode("UTF-8"),
                        add_padding=fix_base32_padding)
                elif 'b16encode' == encode_type:
                    encoded_string = base64.b16encode(
                        original_string.encode("UTF-8"))
                elif 'b16decode' == encode_type:
                    encoded_string = base64.b16decode(
                        original_string.encode("UTF-8"))
                else:
                    print("unsupported operation %s" % (encode_type, ))
                    break

                # print("string encoded: " + str(encoded_string.decode("UTF-8")))
                self.view.replace(edit, region, encoded_string.decode("UTF-8"))
Exemplo n.º 4
0
    def test_urlsafe_b64decode_correct_bad_padding(self):
        # fix the bad badding for URL safe Base64
        s = "c3ViamVjdHM_YWJjZA=\n"

        self.assertEquals('subjects?abcd', codec_base64.urlsafe_b64decode(s, add_padding=True))
Exemplo n.º 5
0
    def test_urlsafe_b64decode(self):
        # a valid urlsafe base64 encoded message
        s = "c3ViamVjdHM_YWJjZA=="

        self.assertEquals('subjects?abcd', codec_base64.urlsafe_b64decode(s))
Exemplo n.º 6
0
    def test_urlsafe_b64decode(self):
        # a valid urlsafe base64 encoded message
        s = "c3ViamVjdHM_YWJjZA==".encode('UTF-8')
        expected = 'subjects?abcd'.encode('UTF-8')

        self.assertEquals(expected, codec_base64.urlsafe_b64decode(s))