Remove purple_base64_encode/decode() wrappers

Thu, 01 Jun 2017 19:59:58 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Thu, 01 Jun 2017 19:59:58 -0500
changeset 38341
3da74e727e78
parent 38340
aaa5e467901f
child 38342
5088895ceade
child 38343
cdeea0f73ef1
child 38347
1d70f77644ca
child 38350
567b8fd0d6be
child 38355
ec094adb20e3
child 38360
a071e5f44d71
child 38364
9918b8ed5203
child 38567
277d8f0ec6f8
child 38887
826f5da7b56c

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.

ChangeLog.API file | annotate | diff | comparison | revisions
libpurple/http.c file | annotate | diff | comparison | revisions
libpurple/mime.c file | annotate | diff | comparison | revisions
libpurple/ntlm.c file | annotate | diff | comparison | revisions
libpurple/plugins/keyrings/internalkeyring.c file | annotate | diff | comparison | revisions
libpurple/protocols/gg/avatar.c file | annotate | diff | comparison | revisions
libpurple/protocols/gg/oauth/oauth.c file | annotate | diff | comparison | revisions
libpurple/protocols/irc/msgs.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/auth_cyrus.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/auth_digest_md5.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/auth_plain.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/auth_scram.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/buddy.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/caps.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/data.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/ibb.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/presence.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/useravatar.c file | annotate | diff | comparison | revisions
libpurple/protocols/oscar/clientlogin.c file | annotate | diff | comparison | revisions
libpurple/protocols/sametime/sametime.c file | annotate | diff | comparison | revisions
libpurple/tests/test_util.c file | annotate | diff | comparison | revisions
libpurple/util.c file | annotate | diff | comparison | revisions
libpurple/util.h file | annotate | diff | comparison | revisions
pidgin/gtkwebview.c file | annotate | diff | comparison | revisions
pidgin/plugins/imgupload.c file | annotate | diff | comparison | revisions
--- 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);

mercurial