
1: /* -*- mode: C; c-file-style: "gnu" -*- */ 2: /* dbus-sha.h SHA-1 implementation 3: * 4: * Copyright (C) 2003 Red Hat Inc. 5: * 6: * Licensed under the Academic Free License version 2.1 7: * 8: * This program is free software; you can redistribute it and/or modify 9: * it under the terms of the GNU General Public License as published by 10: * the Free Software Foundation; either version 2 of the License, or 11: * (at your option) any later version. 12: * 13: * This program is distributed in the hope that it will be useful, 14: * but WITHOUT ANY WARRANTY; without even the implied warranty of 15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16: * GNU General Public License for more details. 17: * 18: * You should have received a copy of the GNU General Public License 19: * along with this program; if not, write to the Free Software 20: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21: * 22: */ 23: #ifndef DBUS_SHA_H 24: #define DBUS_SHA_H 25: 26: #include <dbus/dbus-macros.h> 27: #include <dbus/dbus-errors.h> 28: #include <dbus/dbus-string.h> 29: 30: DBUS_BEGIN_DECLS 31: 32: typedef struct DBusSHAContext DBusSHAContext; 33: 34: /** 35: * Struct storing state of the SHA algorithm 36: */ 37: struct DBusSHAContext 38: { 39: dbus_uint32_t digest[5]; /**< Message digest */ 40: dbus_uint32_t count_lo; /**< 64-bit bit count */ 41: dbus_uint32_t count_hi; /**< No clue */ 42: dbus_uint32_t data[16]; /**< SHA data buffer */ 43: }; 44: 45: void _dbus_sha_init (DBusSHAContext *context); 46: void _dbus_sha_update (DBusSHAContext *context, 47: const DBusString *data); 48: dbus_bool_t _dbus_sha_final (DBusSHAContext *context, 49: DBusString *results); 50: dbus_bool_t _dbus_sha_compute (const DBusString *data, 51: DBusString *ascii_output); 52: 53: DBUS_END_DECLS 54: 55: #endif /* DBUS_SHA_H */