diff options
Diffstat (limited to 'dbus/dbus-md5.c')
-rw-r--r-- | dbus/dbus-md5.c | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/dbus/dbus-md5.c b/dbus/dbus-md5.c index 1d1c451f..b246b355 100644 --- a/dbus/dbus-md5.c +++ b/dbus/dbus-md5.c @@ -470,13 +470,6 @@ _dbus_md5_compute (const DBusString *data, { DBusMD5Context context; DBusString digest; - const char hexdigits[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f' - }; - unsigned char *p; - unsigned char *end; - int orig_len; _dbus_md5_init (&context); @@ -485,32 +478,17 @@ _dbus_md5_compute (const DBusString *data, if (!_dbus_string_init (&digest, _DBUS_INT_MAX)) return FALSE; - orig_len = _dbus_string_get_length (ascii_output); - if (!_dbus_md5_final (&context, &digest)) goto error; - _dbus_string_get_const_data (&digest, (const char **) &p); - end = p + 16; - - while (p != end) - { - if (!_dbus_string_append_byte (ascii_output, - hexdigits[(*p >> 4)])) - goto error; - - if (!_dbus_string_append_byte (ascii_output, - hexdigits[(*p & 0x0f)])) - goto error; - - ++p; - } + if (!_dbus_string_hex_encode (&digest, 0, ascii_output, + _dbus_string_get_length (ascii_output))) + goto error; return TRUE; error: _dbus_string_free (&digest); - _dbus_string_set_length (ascii_output, orig_len); return FALSE; } |