diff options
author | Havoc Pennington <hp@redhat.com> | 2003-02-24 02:24:13 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-02-24 02:24:13 +0000 |
commit | 2f38c959212d98e2194139daa9120fda37415b4f (patch) | |
tree | 725edc511caad936a6ab424d451533c9ce3ff48e /dbus/dbus-sha.c | |
parent | 32b4b2a2f6b4dc7b2ee07f1efb75ec8c871ca04b (diff) | |
download | dbus-2f38c959212d98e2194139daa9120fda37415b4f.tar.gz |
2003-02-23 Havoc Pennington <hp@pobox.com>
* dbus/dbus-keyring.c: finish most of this implementation and
simple unit test
* dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
these barf if the error isn't cleared to NULL
* dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
(_dbus_create_directory): new function
* dbus/dbus-errors.c (dbus_set_error): fix warning
* dbus/dbus-string.c (_dbus_string_hex_encode): new function
(_dbus_string_hex_decode): new function
(test_hex_roundtrip): test code
* dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
* dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
* dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
the save-to-temp/rename trick to atomically write the new file
(_dbus_string_parse_uint): new function
Diffstat (limited to 'dbus/dbus-sha.c')
-rw-r--r-- | dbus/dbus-sha.c | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/dbus/dbus-sha.c b/dbus/dbus-sha.c index d0a8e4fb..2035a475 100644 --- a/dbus/dbus-sha.c +++ b/dbus/dbus-sha.c @@ -484,13 +484,6 @@ _dbus_sha_compute (const DBusString *data, { DBusSHAContext 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_sha_init (&context); @@ -499,32 +492,17 @@ _dbus_sha_compute (const DBusString *data, if (!_dbus_string_init (&digest, _DBUS_INT_MAX)) return FALSE; - orig_len = _dbus_string_get_length (ascii_output); - if (!_dbus_sha_final (&context, &digest)) goto error; - _dbus_string_get_const_data (&digest, (const char **) &p); - end = p + 20; - - 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; } |