VirtualBox

root/trunk/include/iprt/md5.h

Revision 8245, 2.4 kB (checked in by vboxsync, 9 months ago)

rebranding: IPRT files again.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /** @file
2  * IPRT - Message-Digest algorithm 5.
3  */
4
5 /*
6  * Copyright (C) 2006-2007 Sun Microsystems, Inc.
7  *
8  * This file is part of VirtualBox Open Source Edition (OSE), as
9  * available from http://www.virtualbox.org. This file is free software;
10  * you can redistribute it and/or modify it under the terms of the GNU
11  * General Public License (GPL) as published by the Free Software
12  * Foundation, in version 2 as it comes in the "COPYING" file of the
13  * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14  * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15  *
16  * The contents of this file may alternatively be used under the terms
17  * of the Common Development and Distribution License Version 1.0
18  * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19  * VirtualBox OSE distribution, in which case the provisions of the
20  * CDDL are applicable instead of those of the GPL.
21  *
22  * You may elect to license modified versions of this file under the
23  * terms and conditions of either the GPL or the CDDL or both.
24  *
25  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26  * Clara, CA 95054 USA or visit http://www.sun.com if you need
27  * additional information or have any questions.
28  */
29
30 #ifndef ___iprt_md5_h
31 #define ___iprt_md5_h
32
33 #include <iprt/types.h>
34
35 /** @defgroup grp_rt_md5    RTMd5 - Message-Digest algorithm 5
36  * @ingroup grp_rt
37  * @{
38  */
39
40 /** Size of a MD5 hash. */
41 #define RTMD5HASHSIZE 16
42
43 /**
44  * MD5 hash algorithm context.
45  */
46 typedef struct RTMD5CONTEXT
47 {
48     uint32_t buf[4];
49     uint32_t bits[2];
50     uint32_t in[16];
51 } RTMD5CONTEXT;
52
53 /** Pointer to MD5 hash algorithm context. */
54 typedef RTMD5CONTEXT *PRTMD5CONTEXT;
55
56 __BEGIN_DECLS
57
58 /**
59  * Initialize MD5 context.
60  *
61  * @param   pCtx        Pointer to the MD5 context to initialize.
62  */
63 RTDECL(void) RTMd5Init(PRTMD5CONTEXT pCtx);
64
65 /**
66  * Feed data into the MD5 computation.
67  *
68  * @param   pCtx        Pointer to the MD5 context.
69  * @param   pvBuf       Pointer to data.
70  * @param   cbBuf       Length of data (in bytes).
71  */
72 RTDECL(void) RTMd5Update(PRTMD5CONTEXT pCtx, const void *pvBuf, size_t cbBuf);
73
74 /**
75  * Compute the MD5 hash of the data.
76  *
77  * @param   pabDigest  Where to store the hash.
78  *                     (What's passed is a pointer to the caller's buffer.)
79  * @param   pCtx       Pointer to the MD5 context.
80  */
81 RTDECL(void) RTMd5Final(uint8_t pabDigest[RTMD5HASHSIZE], PRTMD5CONTEXT pCtx);
82
83 __END_DECLS
84
85 /** @} */
86
87 #endif /* !__iprt_md5_h__ */
Note: See TracBrowser for help on using the browser.

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy