mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-24 22:50:08 +01:00
2003-01-28 Havoc Pennington <hp@redhat.com>
* dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in the reverse order from how I had it (_dbus_string_base64_encode): reverse encoding order. I was basically byteswapping everything during encoding.
This commit is contained in:
parent
d02b7cd060
commit
def834b73b
4 changed files with 70 additions and 15 deletions
|
|
@ -1,3 +1,10 @@
|
|||
2003-01-28 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
|
||||
the reverse order from how I had it
|
||||
(_dbus_string_base64_encode): reverse encoding order. I was
|
||||
basically byteswapping everything during encoding.
|
||||
|
||||
2003-01-28 Anders Carlsson <andersca@codefactory.se>
|
||||
|
||||
* dbus/dbus-connection-internal.h:
|
||||
|
|
|
|||
|
|
@ -1653,10 +1653,10 @@ _dbus_string_base64_encode (const DBusString *source,
|
|||
{
|
||||
unsigned int triplet;
|
||||
|
||||
triplet = s[0] | (s[1] << 8) | (s[2] << 16);
|
||||
triplet = s[2] | (s[1] << 8) | (s[0] << 16);
|
||||
|
||||
/* Encode each 6 bits. */
|
||||
|
||||
/* Encode each 6 bits */
|
||||
|
||||
*d++ = ENCODE_64 (triplet >> 18);
|
||||
*d++ = ENCODE_64 ((triplet >> 12) & SIX_BITS_MASK);
|
||||
*d++ = ENCODE_64 ((triplet >> 6) & SIX_BITS_MASK);
|
||||
|
|
@ -1671,8 +1671,8 @@ _dbus_string_base64_encode (const DBusString *source,
|
|||
{
|
||||
unsigned int doublet;
|
||||
|
||||
doublet = s[0] | (s[1] << 8);
|
||||
|
||||
doublet = s[1] | (s[0] << 8);
|
||||
|
||||
*d++ = ENCODE_64 (doublet >> 12);
|
||||
*d++ = ENCODE_64 ((doublet >> 6) & SIX_BITS_MASK);
|
||||
*d++ = ENCODE_64 (doublet & SIX_BITS_MASK);
|
||||
|
|
@ -1684,7 +1684,7 @@ _dbus_string_base64_encode (const DBusString *source,
|
|||
unsigned int singlet;
|
||||
|
||||
singlet = s[0];
|
||||
|
||||
|
||||
*d++ = ENCODE_64 ((singlet >> 6) & SIX_BITS_MASK);
|
||||
*d++ = ENCODE_64 (singlet & SIX_BITS_MASK);
|
||||
*d++ = '=';
|
||||
|
|
@ -1774,18 +1774,17 @@ _dbus_string_base64_decode (const DBusString *source,
|
|||
if (sextet_count == 4)
|
||||
{
|
||||
/* no pad = 3 bytes, 1 pad = 2 bytes, 2 pad = 1 byte */
|
||||
if (pad_count < 1)
|
||||
_dbus_string_append_byte (&result,
|
||||
triplet >> 16);
|
||||
|
||||
if (pad_count < 2)
|
||||
_dbus_string_append_byte (&result,
|
||||
(triplet >> 8) & 0xff);
|
||||
|
||||
_dbus_string_append_byte (&result,
|
||||
triplet & 0xff);
|
||||
|
||||
if (pad_count < 2)
|
||||
_dbus_string_append_byte (&result,
|
||||
(triplet >> 8) & 0xff);
|
||||
|
||||
if (pad_count < 1)
|
||||
_dbus_string_append_byte (&result,
|
||||
triplet >> 16);
|
||||
|
||||
sextet_count = 0;
|
||||
pad_count = 0;
|
||||
triplet = 0;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
INCLUDES=-I$(top_srcdir) $(DBUS_TEST_CFLAGS)
|
||||
|
||||
if DBUS_BUILD_TESTS
|
||||
TEST_BINARIES=echo-client echo-server
|
||||
TEST_BINARIES=echo-client echo-server unbase64
|
||||
else
|
||||
TEST_BINARIES=
|
||||
endif
|
||||
|
|
@ -19,10 +19,15 @@ echo_server_SOURCES= \
|
|||
watch.c \
|
||||
watch.h
|
||||
|
||||
unbase64_SOURCES= \
|
||||
unbase64.c
|
||||
|
||||
|
||||
TEST_LIBS=$(DBUS_TEST_LIBS) $(top_builddir)/dbus/libdbus-convenience.la $(top_builddir)/dbus/libdbus-1.la
|
||||
|
||||
echo_client_LDADD=$(TEST_LIBS)
|
||||
echo_server_LDADD=$(TEST_LIBS)
|
||||
unbase64_LDADD=$(TEST_LIBS)
|
||||
|
||||
dist-hook:
|
||||
DIRS="data data/valid-messages data/invalid-messages data/incomplete-messages" ; \
|
||||
|
|
|
|||
44
test/unbase64.c
Normal file
44
test/unbase64.c
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#include <dbus/dbus.h>
|
||||
#define DBUS_COMPILATION /* cheat and use string etc. */
|
||||
#include <dbus/dbus-string.h>
|
||||
#include <dbus/dbus-sysdeps.h>
|
||||
#include <dbus/dbus-internals.h>
|
||||
#undef DBUS_COMPILATION
|
||||
#include <stdio.h>
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char **argv)
|
||||
{
|
||||
DBusString contents;
|
||||
DBusString decoded;
|
||||
DBusString filename;
|
||||
const char *s;
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
fprintf (stderr, "Give the file to decode as an argument\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
_dbus_string_init_const (&filename, argv[1]);
|
||||
|
||||
if (!_dbus_string_init (&contents, _DBUS_INT_MAX))
|
||||
return 1;
|
||||
|
||||
if (!_dbus_string_init (&decoded, _DBUS_INT_MAX))
|
||||
return 1;
|
||||
|
||||
if (_dbus_file_get_contents (&contents, &filename) != DBUS_RESULT_SUCCESS)
|
||||
return 1;
|
||||
|
||||
if (!_dbus_string_base64_decode (&contents, 0,
|
||||
&decoded, 0))
|
||||
return 1;
|
||||
|
||||
_dbus_string_get_const_data (&decoded, &s);
|
||||
|
||||
fputs (s, stdout);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue