blob: f8c68be8b8dc7931b087348877224fcf1cc1d788 [file] [log] [blame]
Tristan Matthews0a329cc2013-07-17 13:20:14 -04001/* $Id$ */
2/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __PJLIB_UTIL_MD5_H__
21#define __PJLIB_UTIL_MD5_H__
22
23/**
24 * @file md5.h
25 * @brief MD5 Functions
26 */
27
28#include <pj/types.h>
29
30PJ_BEGIN_DECL
31
32/**
33 * @defgroup PJLIB_UTIL_MD5 MD5
34 * @ingroup PJLIB_UTIL_ENCRYPTION
35 * @{
36 */
37
38
39/** MD5 context. */
40typedef struct pj_md5_context
41{
42 pj_uint32_t buf[4]; /**< buf */
43 pj_uint32_t bits[2]; /**< bits */
44 pj_uint8_t in[64]; /**< in */
45} pj_md5_context;
46
47/** Initialize the algorithm.
48 * @param pms MD5 context.
49 */
50PJ_DECL(void) pj_md5_init(pj_md5_context *pms);
51
52/** Append a string to the message.
53 * @param pms MD5 context.
54 * @param data Data.
55 * @param nbytes Length of data.
56 */
57PJ_DECL(void) pj_md5_update( pj_md5_context *pms,
58 const pj_uint8_t *data, unsigned nbytes);
59
60/** Finish the message and return the digest.
61 * @param pms MD5 context.
62 * @param digest 16 byte digest.
63 */
64PJ_DECL(void) pj_md5_final(pj_md5_context *pms, pj_uint8_t digest[16]);
65
66
67/**
68 * @}
69 */
70
71PJ_END_DECL
72
73
74#endif /* __PJLIB_UTIL_MD5_H__ */