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"))
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))
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"))
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))
def test_urlsafe_b64decode(self): # a valid urlsafe base64 encoded message s = "c3ViamVjdHM_YWJjZA==" self.assertEquals('subjects?abcd', codec_base64.urlsafe_b64decode(s))
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))