Thu, 01 Jun 2017 19:59:58 -0500
Remove purple_base64_encode/decode() wrappers
The utility functions purple_base64_encode() & purple_base64_decode()
are but thin wrappers around g_base64_encode() & g_base64_decode().
This patch removes the former and replaces all current usage to the
latter.
--- a/ChangeLog.API Sun Jun 04 18:13:19 2017 +0000 +++ b/ChangeLog.API Thu Jun 01 19:59:58 2017 -0500 @@ -417,6 +417,7 @@ * purple_account_add_buddies_with_invite * purple_account_add_buddy_with_invite * purple_account_set_current_error + * purple_base64_*. Use g_base64_* instead * purple_blist_load * purple_blist_new * purple_set_blist
--- a/libpurple/http.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/http.c Thu Jun 01 19:59:58 2017 -0500 @@ -859,7 +859,7 @@ tmp = g_strdup_printf("%s:%s", proxy_username, proxy_password); len = strlen(tmp); - proxy_auth = purple_base64_encode((const guchar *)tmp, len); + proxy_auth = g_base64_encode((const guchar *)tmp, len); memset(tmp, 0, len); g_free(tmp);
--- a/libpurple/mime.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/mime.c Thu Jun 01 19:59:58 2017 -0500 @@ -345,7 +345,7 @@ *data = purple_base16_decode(part->data->str, len); } else if(! g_ascii_strcasecmp(enc, "base64")) { - *data = purple_base64_decode(part->data->str, len); + *data = g_base64_decode(part->data->str, len); } else if(! g_ascii_strcasecmp(enc, "quoted-printable")) { *data = purple_quotedp_decode(part->data->str, len);
--- a/libpurple/ntlm.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/ntlm.c Thu Jun 01 19:59:58 2017 -0500 @@ -139,7 +139,7 @@ memcpy(msg + host_off, hostname, hostnamelen); memcpy(msg + dom_off, domain, domainlen); - tmp = purple_base64_encode(msg, sizeof(struct type1_message) + hostnamelen + domainlen); + tmp = g_base64_encode(msg, sizeof(struct type1_message) + hostnamelen + domainlen); g_free(msg); return tmp; @@ -153,7 +153,7 @@ struct type2_message tmsg; static guint8 nonce[8]; - buff = purple_base64_decode(type2, &retlen); + buff = g_base64_decode(type2, &retlen); if (buff != NULL && retlen >= (sizeof(struct type2_message) - 1)) { memcpy(&tmsg, buff, MIN(retlen, sizeof(tmsg))); @@ -397,7 +397,7 @@ /*tmsg->flags2 = 0x0a280105; tmsg->flags3 = 0x0f000000;*/ - tmp = purple_base64_encode((guchar *)tmsg, msglen); + tmp = g_base64_encode((guchar *)tmsg, msglen); g_free(tmsg); return tmp;
--- a/libpurple/plugins/keyrings/internalkeyring.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/plugins/keyrings/internalkeyring.c Thu Jun 01 19:59:58 2017 -0500 @@ -138,7 +138,7 @@ guchar *data; gsize len; - data = purple_base64_decode(base64, &len); + data = g_base64_decode(base64, &len); return intkeyring_buff_new(data, len); } @@ -278,7 +278,7 @@ if (encrypted_size < 0) return NULL; - return purple_base64_encode(encrypted_raw, encrypted_size); + return g_base64_encode(encrypted_raw, encrypted_size); } @@ -300,7 +300,7 @@ cipher = purple_aes_cipher_new(); g_return_val_if_fail(cipher != NULL, NULL); - encrypted_raw = purple_base64_decode(str, &encrypted_size); + encrypted_raw = g_base64_decode(str, &encrypted_size); g_return_val_if_fail(encrypted_raw != NULL, NULL); iv_len = purple_cipher_get_block_size(cipher); @@ -374,7 +374,7 @@ * but it's not a problem. */ verifier = intkeyring_encrypt(key, INTKEYRING_VERIFY_STR); - salt_b64 = purple_base64_encode(salt->data, salt->len); + salt_b64 = g_base64_encode(salt->data, salt->len); } if (!verifier || !salt_b64) {
--- a/libpurple/protocols/gg/avatar.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/gg/avatar.c Thu Jun 01 19:59:58 2017 -0500 @@ -353,7 +353,7 @@ } own_data->img = NULL; - img_data = purple_base64_encode(purple_image_get_data(img), + img_data = g_base64_encode(purple_image_get_data(img), purple_image_get_data_size(img)); img_data_e = g_uri_escape_string(img_data, NULL, FALSE); g_free(img_data);
--- a/libpurple/protocols/gg/oauth/oauth.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/gg/oauth/oauth.c Thu Jun 01 19:59:58 2017 -0500 @@ -56,7 +56,7 @@ g_hmac_get_digest(hmac, digest, &digest_len); g_hmac_unref(hmac); - return purple_base64_encode(digest, sizeof(digest)); + return g_base64_encode(digest, sizeof(digest)); } static char *
--- a/libpurple/protocols/irc/msgs.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/irc/msgs.c Thu Jun 01 19:59:58 2017 -0500 @@ -1660,7 +1660,7 @@ return; if (arg[0] != '+') - serverin = (char *)purple_base64_decode(arg, &serverinlen); + serverin = (char *)g_base64_decode(arg, &serverinlen); ret = sasl_client_step(irc->sasl_conn, serverin, serverinlen, NULL, &c_out, &clen); @@ -1678,7 +1678,7 @@ } if (clen > 0) - authinfo = purple_base64_encode((const guchar*)c_out, clen); + authinfo = g_base64_encode((const guchar*)c_out, clen); else authinfo = g_strdup("+");
--- a/libpurple/protocols/jabber/auth_cyrus.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/auth_cyrus.c Thu Jun 01 19:59:58 2017 -0500 @@ -336,7 +336,7 @@ if (coutlen == 0) { purple_xmlnode_insert_data(auth, "=", -1); } else { - enc_out = purple_base64_encode((unsigned char*)clientout, coutlen); + enc_out = g_base64_encode((unsigned char*)clientout, coutlen); purple_xmlnode_insert_data(auth, enc_out, -1); g_free(enc_out); } @@ -458,7 +458,7 @@ unsigned int clen; gsize declen; - dec_in = purple_base64_decode(enc_in, &declen); + dec_in = g_base64_decode(enc_in, &declen); js->sasl_state = sasl_client_step(js->sasl, (char*)dec_in, declen, NULL, &c_out, &clen); @@ -486,10 +486,10 @@ if (!purple_strequal(js->current_mech, "DIGEST-MD5") || strstr(c_out, ",charset=")) /* If we're not using DIGEST-MD5 or Cyrus SASL is fixed */ - enc_out = purple_base64_encode((unsigned char*)c_out, clen); + enc_out = g_base64_encode((unsigned char*)c_out, clen); else { char *tmp = g_strdup_printf("%s,charset=utf-8", c_out); - enc_out = purple_base64_encode((unsigned char*)tmp, clen + 14); + enc_out = g_base64_encode((unsigned char*)tmp, clen + 14); g_free(tmp); } @@ -519,7 +519,7 @@ gsize declen = 0; if(enc_in != NULL) - dec_in = purple_base64_decode(enc_in, &declen); + dec_in = g_base64_decode(enc_in, &declen); js->sasl_state = sasl_client_step(js->sasl, (char*)dec_in, declen, NULL, &c_out, &clen);
--- a/libpurple/protocols/jabber/auth_digest_md5.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/auth_digest_md5.c Thu Jun 01 19:59:58 2017 -0500 @@ -155,6 +155,7 @@ char *enc_in = purple_xmlnode_get_data(packet); char *dec_in; char *enc_out; + gsize size = 0; GHashTable *parts; JabberSaslState state = JABBER_SASL_STATE_CONTINUE; @@ -163,10 +164,10 @@ return JABBER_SASL_STATE_FAIL; } - dec_in = (char *)purple_base64_decode(enc_in, NULL); + dec_in = (char *)g_base64_decode(enc_in, &size); purple_debug_misc("jabber", "decoded challenge (%" G_GSIZE_FORMAT "): %s\n", - strlen(dec_in), + size, dec_in); parts = jabber_auth_digest_md5_parse(dec_in); @@ -238,7 +239,7 @@ g_free(auth_resp); g_free(cnonce); - enc_out = purple_base64_encode((guchar *)response->str, response->len); + enc_out = g_base64_encode((guchar *)response->str, response->len); purple_debug_misc("jabber", "decoded response (%" G_GSIZE_FORMAT "): %s\n",
--- a/libpurple/protocols/jabber/auth_plain.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/auth_plain.c Thu Jun 01 19:59:58 2017 -0500 @@ -50,7 +50,7 @@ response = g_string_append(response, purple_connection_get_password(js->gc)); - enc_out = purple_base64_encode((guchar *)response->str, response->len); + enc_out = g_base64_encode((guchar *)response->str, response->len); purple_xmlnode_set_attrib(auth, "mechanism", "PLAIN"); purple_xmlnode_insert_data(auth, enc_out, -1);
--- a/libpurple/protocols/jabber/auth_scram.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/auth_scram.c Thu Jun 01 19:59:58 2017 -0500 @@ -246,7 +246,7 @@ if (token[0] != 's' || token[1] != '=') goto err; - decoded = (gchar *)purple_base64_decode(token + 2, &len); + decoded = (gchar *)g_base64_decode(token + 2, &len); if (!decoded || *decoded == '\0') { g_free(decoded); goto err; @@ -337,7 +337,7 @@ return FALSE; } - proof = purple_base64_encode((guchar *)data->client_proof->str, data->client_proof->len); + proof = g_base64_encode((guchar *)data->client_proof->str, data->client_proof->len); *out = g_strdup_printf("c=%s,r=%s,p=%s", "biws", nonce, proof); g_free(nonce); g_free(proof); @@ -349,7 +349,7 @@ if (!ret) return FALSE; - server_sig = (gchar *)purple_base64_decode(enc_server_sig, &len); + server_sig = (gchar *)g_base64_decode(enc_server_sig, &len); g_free(enc_server_sig); if (server_sig == NULL || len != data->server_signature->len) { @@ -421,7 +421,7 @@ data->channel_binding = TRUE; #endif cnonce = ((guint64)g_random_int() << 32) | g_random_int(); - data->cnonce = purple_base64_encode((guchar *)&cnonce, sizeof(cnonce)); + data->cnonce = g_base64_encode((guchar *)&cnonce, sizeof(cnonce)); data->auth_message = g_string_new(NULL); g_string_printf(data->auth_message, "n=%s,r=%s", @@ -436,7 +436,7 @@ /* TODO: Channel binding */ dec_out = g_strdup_printf("%c,,%s", 'n', data->auth_message->str); - enc_out = purple_base64_encode((guchar *)dec_out, strlen(dec_out)); + enc_out = g_base64_encode((guchar *)dec_out, strlen(dec_out)); purple_debug_misc("jabber", "initial SCRAM message '%s'\n", dec_out); purple_xmlnode_insert_data(reply, enc_out, -1); @@ -467,7 +467,7 @@ goto out; } - dec_in = (gchar *)purple_base64_decode(enc_in, &len); + dec_in = (gchar *)g_base64_decode(enc_in, &len); if (!dec_in || len != strlen(dec_in)) { /* Danger afoot; SCRAM shouldn't contain NUL bytes */ reply = purple_xmlnode_new("abort"); @@ -494,7 +494,7 @@ purple_debug_misc("jabber", "decoded response: %s\n", dec_out ? dec_out : "(null)"); if (dec_out) { - enc_out = purple_base64_encode((guchar *)dec_out, strlen(dec_out)); + enc_out = g_base64_encode((guchar *)dec_out, strlen(dec_out)); purple_xmlnode_insert_data(reply, enc_out, -1); } @@ -540,7 +540,7 @@ return JABBER_SASL_STATE_FAIL; } - dec_in = (gchar *)purple_base64_decode(enc_in, &len); + dec_in = (gchar *)g_base64_decode(enc_in, &len); g_free(enc_in); if (!dec_in || len != strlen(dec_in)) { /* Danger afoot; SCRAM shouldn't contain NUL bytes */
--- a/libpurple/protocols/jabber/buddy.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/buddy.c Thu Jun 01 19:59:58 2017 -0500 @@ -528,7 +528,7 @@ type = purple_xmlnode_new_child(photo, "TYPE"); purple_xmlnode_insert_data(type, "image/png", -1); binval = purple_xmlnode_new_child(photo, "BINVAL"); - enc = purple_base64_encode(avatar_data, avatar_len); + enc = g_base64_encode(avatar_data, avatar_len); js->avatar_hash = g_compute_checksum_for_data(G_CHECKSUM_SHA1, avatar_data, avatar_len); @@ -957,7 +957,7 @@ gsize size; char *bintext = purple_xmlnode_get_data(binval); if (bintext) { - guchar *data = purple_base64_decode(bintext, &size); + guchar *data = g_base64_decode(bintext, &size); g_free(bintext); if (data) { @@ -1201,7 +1201,7 @@ guchar *data; gboolean photo = (strcmp(child->name, "PHOTO") == 0); - data = purple_base64_decode(bintext, &size); + data = g_base64_decode(bintext, &size); if (data) { PurpleImage *img; guint img_id;
--- a/libpurple/protocols/jabber/caps.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/caps.c Thu Jun 01 19:59:58 2017 -0500 @@ -924,7 +924,7 @@ /* generate hash */ g_checksum_get_digest(hash, checksum, &checksum_size); - ret = purple_base64_encode(checksum, checksum_size); + ret = g_base64_encode(checksum, checksum_size); g_free(checksum); return ret;
--- a/libpurple/protocols/jabber/data.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/data.c Thu Jun 01 19:59:58 2017 -0500 @@ -109,7 +109,7 @@ } data = g_new0(JabberData, 1); - data->data = purple_base64_decode(raw_data, &data->size); + data->data = g_base64_decode(raw_data, &data->size); g_free(raw_data); if (data->data == NULL) { @@ -174,7 +174,7 @@ g_return_val_if_fail(data != NULL, NULL); tag = purple_xmlnode_new("data"); - base64data = purple_base64_encode(data->data, data->size); + base64data = g_base64_encode(data->data, data->size); purple_xmlnode_set_namespace(tag, NS_BOB); purple_xmlnode_set_attrib(tag, "cid", data->cid);
--- a/libpurple/protocols/jabber/ibb.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/ibb.c Thu Jun 01 19:59:58 2017 -0500 @@ -335,7 +335,7 @@ JabberIq *set = jabber_iq_new(jabber_ibb_session_get_js(sess), JABBER_IQ_SET); PurpleXmlNode *data_element = purple_xmlnode_new("data"); - char *base64 = purple_base64_encode(data, size); + char *base64 = g_base64_encode(data, size); char seq[10]; g_snprintf(seq, sizeof(seq), "%u", jabber_ibb_session_get_send_seq(sess)); @@ -415,7 +415,7 @@ if (sess->data_received_cb) { gchar *base64 = purple_xmlnode_get_data(child); gsize size; - gpointer rawdata = purple_base64_decode(base64, &size); + gpointer rawdata = g_base64_decode(base64, &size); g_free(base64);
--- a/libpurple/protocols/jabber/presence.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/presence.c Thu Jun 01 19:59:58 2017 -0500 @@ -458,7 +458,7 @@ if ((binval = purple_xmlnode_get_child(photo, "BINVAL")) && (text = purple_xmlnode_get_data(binval))) { - data = purple_base64_decode(text, &size); + data = g_base64_decode(text, &size); g_free(text); if (data)
--- a/libpurple/protocols/jabber/useravatar.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/jabber/useravatar.c Thu Jun 01 19:59:58 2017 -0500 @@ -158,7 +158,7 @@ G_CHECKSUM_SHA1, purple_image_get_data(img), purple_image_get_data_size(img)); - char *base64avatar = purple_base64_encode( + char *base64avatar = g_base64_encode( purple_image_get_data(img), purple_image_get_data_size(img)); @@ -315,7 +315,7 @@ if(!b64data) return; - img = purple_base64_decode(b64data, &size); + img = g_base64_decode(b64data, &size); if(!img) { g_free(b64data); return;
--- a/libpurple/protocols/oscar/clientlogin.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/oscar/clientlogin.c Thu Jun 01 19:59:58 2017 -0500 @@ -128,7 +128,7 @@ g_hmac_get_digest(hmac, digest, &digest_len); g_hmac_unref(hmac); - return purple_base64_encode(digest, sizeof(digest)); + return g_base64_encode(digest, sizeof(digest)); } /** @@ -339,7 +339,7 @@ if (!parse_start_oscar_session_response(gc, got_data, got_len, &host, &port, &cookie, &tls_certname)) return; - cookiedata = purple_base64_decode(cookie, &cookiedata_len); + cookiedata = g_base64_decode(cookie, &cookiedata_len); oscar_connect_to_bos(gc, od, host, port, cookiedata, cookiedata_len, tls_certname); g_free(cookiedata);
--- a/libpurple/protocols/sametime/sametime.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/protocols/sametime/sametime.c Thu Jun 01 19:59:58 2017 -0500 @@ -3879,7 +3879,7 @@ /* obtain and base64 encode the image data, and put it in the mime part */ size = purple_image_get_data_size(img); - data = purple_base64_encode(purple_image_get_data(img), size); + data = g_base64_encode(purple_image_get_data(img), size); purple_mime_part_set_data(part, data); g_free(data);
--- a/libpurple/tests/test_util.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/tests/test_util.c Thu Jun 01 19:59:58 2017 -0500 @@ -43,24 +43,6 @@ } /****************************************************************************** - * base 64 tests - *****************************************************************************/ -static void -test_util_base_64_encode(void) { - gchar *in = purple_base64_encode((const unsigned char *)"forty-two", 10); - g_assert_cmpstr("Zm9ydHktdHdvAA==", ==, in); -} - -static void -test_util_base_64_decode(void) { - gsize sz = 0; - guchar *out = purple_base64_decode("b3d0LXl0cm9mAA==", &sz); - - g_assert_cmpint(sz, ==, 10); - g_assert_cmpstr("owt-ytrof", ==, (gchar *)out); -} - -/****************************************************************************** * filename escape tests *****************************************************************************/ static void @@ -512,11 +494,6 @@ g_test_add_func("/util/base/16/decode", test_util_base_16_decode); - g_test_add_func("/util/base/64/encode", - test_util_base_64_encode); - g_test_add_func("/util/base/64/decode", - test_util_base_64_decode); - g_test_add_func("/util/filename/escape", test_util_filename_escape); g_test_add_func("/util/filename/unescape",
--- a/libpurple/util.c Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/util.c Thu Jun 01 19:59:58 2017 -0500 @@ -254,34 +254,12 @@ return ascii; } - /************************************************************************** - * Base64 Functions + * Quoted Printable Functions (see RFC 2045). **************************************************************************/ static const char xdigits[] = "0123456789abcdef"; -gchar * -purple_base64_encode(const guchar *data, gsize len) -{ - return g_base64_encode(data, len); -} - -guchar * -purple_base64_decode(const char *str, gsize *ret_len) -{ - /* - * We want to allow ret_len to be NULL for backward compatibility, - * but g_base64_decode() requires a valid length variable. So if - * ret_len is NULL then pass in a dummy variable. - */ - gsize unused; - return g_base64_decode(str, ret_len != NULL ? ret_len : &unused); -} - -/************************************************************************** - * Quoted Printable Functions (see RFC 2045). - **************************************************************************/ guchar * purple_quotedp_decode(const char *str, gsize *ret_len) { @@ -441,7 +419,7 @@ if (g_ascii_strcasecmp(encoding, "Q") == 0) decoded = purple_quotedp_decode(encoded_text, &dec_len); else if (g_ascii_strcasecmp(encoding, "B") == 0) - decoded = purple_base64_decode(encoded_text, &dec_len); + decoded = g_base64_decode(encoded_text, &dec_len); else decoded = NULL; if (decoded) {
--- a/libpurple/util.h Sun Jun 04 18:13:19 2017 +0000 +++ b/libpurple/util.h Thu Jun 01 19:59:58 2017 -0500 @@ -287,43 +287,6 @@ */ gchar *purple_base16_encode_chunked(const guchar *data, gsize len); - -/**************************************************************************/ -/* Base64 Functions */ -/**************************************************************************/ - -/** - * purple_base64_encode: - * @data: The data to convert. - * @len: The length of the data. - * - * Converts a chunk of binary data to its base-64 equivalent. - * - * See purple_base64_decode() - * - * Returns: The base-64 string in the ASCII encoding. Must be - * g_free'd when no longer needed. - */ -gchar *purple_base64_encode(const guchar *data, gsize len); - -/** - * purple_base64_decode: - * @str: The base-64 string to convert to raw data. - * @ret_len: The length of the returned data. You can - * pass in NULL if you're sure that you know - * the length of the decoded data, or if you - * know you'll be able to use strlen to - * determine the length, etc. - * - * Converts an ASCII string of base-64 encoded data to - * the binary equivalent. - * - * See purple_base64_encode() - * - * Returns: The raw data. Must be g_free'd when no longer needed. - */ -guchar *purple_base64_decode(const char *str, gsize *ret_len); - /**************************************************************************/ /* Quoted Printable Functions */ /**************************************************************************/
--- a/pidgin/gtkwebview.c Sun Jun 04 18:13:19 2017 +0000 +++ b/pidgin/gtkwebview.c Thu Jun 01 19:59:58 2017 -0500 @@ -204,8 +204,7 @@ gchar *b64, *src; const gchar *type; - b64 = purple_base64_encode( - purple_image_get_data(img), + b64 = g_base64_encode(purple_image_get_data(img), purple_image_get_data_size(img)); type = purple_image_get_mimetype(img); src = g_strdup_printf("data:%s;base64,%s", type, b64);
--- a/pidgin/plugins/imgupload.c Sun Jun 04 18:13:19 2017 +0000 +++ b/pidgin/plugins/imgupload.c Thu Jun 01 19:59:58 2017 -0500 @@ -121,7 +121,7 @@ "Client-ID " IMGUP_IMGUR_CLIENT_ID); /* TODO: make it a plain, multipart/form-data request */ - img_data = purple_base64_encode(purple_image_get_data(image), + img_data = g_base64_encode(purple_image_get_data(image), purple_image_get_data_size(image)); img_data_e = g_uri_escape_string(img_data, NULL, FALSE); g_free(img_data);