1/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  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
30DBUS_BEGIN_DECLS
31
32typedef struct DBusSHAContext DBusSHAContext;
33
34/**
35 * Struct storing state of the SHA algorithm
36 */
37struct 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
45void        _dbus_sha_init    (DBusSHAContext   *context);
46void        _dbus_sha_update  (DBusSHAContext   *context,
47                               const DBusString *data);
48dbus_bool_t _dbus_sha_final   (DBusSHAContext   *context,
49                               DBusString       *results);
50dbus_bool_t _dbus_sha_compute (const DBusString *data,
51                               DBusString       *ascii_output);
52
53DBUS_END_DECLS
54
55#endif /* DBUS_SHA_H */
56