Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

md5.h

Go to the documentation of this file.
00001 /* ==================================================================== 
00002  * The Kannel Software License, Version 1.0 
00003  * 
00004  * Copyright (c) 2001-2008 Kannel Group  
00005  * Copyright (c) 1998-2001 WapIT Ltd.   
00006  * All rights reserved. 
00007  * 
00008  * Redistribution and use in source and binary forms, with or without 
00009  * modification, are permitted provided that the following conditions 
00010  * are met: 
00011  * 
00012  * 1. Redistributions of source code must retain the above copyright 
00013  *    notice, this list of conditions and the following disclaimer. 
00014  * 
00015  * 2. Redistributions in binary form must reproduce the above copyright 
00016  *    notice, this list of conditions and the following disclaimer in 
00017  *    the documentation and/or other materials provided with the 
00018  *    distribution. 
00019  * 
00020  * 3. The end-user documentation included with the redistribution, 
00021  *    if any, must include the following acknowledgment: 
00022  *       "This product includes software developed by the 
00023  *        Kannel Group (http://www.kannel.org/)." 
00024  *    Alternately, this acknowledgment may appear in the software itself, 
00025  *    if and wherever such third-party acknowledgments normally appear. 
00026  * 
00027  * 4. The names "Kannel" and "Kannel Group" must not be used to 
00028  *    endorse or promote products derived from this software without 
00029  *    prior written permission. For written permission, please  
00030  *    contact org@kannel.org. 
00031  * 
00032  * 5. Products derived from this software may not be called "Kannel", 
00033  *    nor may "Kannel" appear in their name, without prior written 
00034  *    permission of the Kannel Group. 
00035  * 
00036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 
00037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
00038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
00039  * DISCLAIMED.  IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 
00040  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,  
00041  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT  
00042  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR  
00043  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  
00044  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE  
00045  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  
00046  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
00047  * ==================================================================== 
00048  * 
00049  * This software consists of voluntary contributions made by many 
00050  * individuals on behalf of the Kannel Group.  For more information on  
00051  * the Kannel Group, please see <http://www.kannel.org/>. 
00052  * 
00053  * Portions of this software are based upon software originally written at  
00054  * WapIT Ltd., Helsinki, Finland for the Kannel project.  
00055  */ 
00056 
00057 /*
00058  * md5.h - MD5 digest algorithm
00059  */
00060 
00061 /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
00062    rights reserved.
00063 
00064    License to copy and use this software is granted provided that it
00065    is identified as the "RSA Data Security, Inc. MD5 Message-Digest
00066    Algorithm" in all material mentioning or referencing this software
00067    or this function.
00068 
00069    License is also granted to make and use derivative works provided
00070    that such works are identified as "derived from the RSA Data
00071    Security, Inc. MD5 Message-Digest Algorithm" in all material
00072    mentioning or referencing the derived work.
00073 
00074    RSA Data Security, Inc. makes no representations concerning either
00075    the merchantability of this software or the suitability of this
00076    software for any particular purpose. It is provided "as is"
00077    without express or implied warranty of any kind.
00078 
00079    These notices must be retained in any copies of any part of this
00080    documentation and/or software.
00081  */
00082 
00083 #ifndef MD5_H
00084 #define MD5_H
00085 
00086 /* MD5 context. */
00087 typedef struct {
00088     unsigned int state[4];        /* state (ABCD) */
00089     unsigned int count[2];        /* number of bits, modulo 2^64 (lsb first) */
00090     unsigned char buffer[64];   /* input buffer */
00091 } md5_ctx;
00092 
00093 /* 
00094  * Calculates the MD5 hash value, which is the raw 16 byte
00095  * data block. Returns NULL in case NULL has been given as argument.
00096  */
00097 Octstr *md5(Octstr *data);
00098 
00099 /*
00100  * Calculates the MD5 digest key of a given Octstr.
00101  * Returns NULL in case NULL has been given as argument.
00102  */
00103 Octstr *md5digest(Octstr *data);
00104 
00105 #endif
00106 
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.