Annotation of win32/apache13/src/include/ap_md5.h, revision 1.1.1.1

1.1       parser      1: /*
                      2:  * This is work is derived from material Copyright RSA Data Security, Inc.
                      3:  *
                      4:  * The RSA copyright statement and Licence for that original material is
                      5:  * included below. This is followed by the Apache copyright statement and
                      6:  * licence for the modifications made to that material.
                      7:  */
                      8: 
                      9: /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
                     10:    rights reserved.
                     11: 
                     12:    License to copy and use this software is granted provided that it
                     13:    is identified as the "RSA Data Security, Inc. MD5 Message-Digest
                     14:    Algorithm" in all material mentioning or referencing this software
                     15:    or this function.
                     16: 
                     17:    License is also granted to make and use derivative works provided
                     18:    that such works are identified as "derived from the RSA Data
                     19:    Security, Inc. MD5 Message-Digest Algorithm" in all material
                     20:    mentioning or referencing the derived work.
                     21: 
                     22:    RSA Data Security, Inc. makes no representations concerning either
                     23:    the merchantability of this software or the suitability of this
                     24:    software for any particular purpose. It is provided "as is"
                     25:    without express or implied warranty of any kind.
                     26: 
                     27:    These notices must be retained in any copies of any part of this
                     28:    documentation and/or software.
                     29:  */
                     30: 
                     31: /* ====================================================================
                     32:  * Copyright (c) 1996-1999 The Apache Group.  All rights reserved.
                     33:  *
                     34:  * Redistribution and use in source and binary forms, with or without
                     35:  * modification, are permitted provided that the following conditions
                     36:  * are met:
                     37:  *
                     38:  * 1. Redistributions of source code must retain the above copyright
                     39:  *    notice, this list of conditions and the following disclaimer. 
                     40:  *
                     41:  * 2. Redistributions in binary form must reproduce the above copyright
                     42:  *    notice, this list of conditions and the following disclaimer in
                     43:  *    the documentation and/or other materials provided with the
                     44:  *    distribution.
                     45:  *
                     46:  * 3. All advertising materials mentioning features or use of this
                     47:  *    software must display the following acknowledgment:
                     48:  *    "This product includes software developed by the Apache Group
                     49:  *    for use in the Apache HTTP server project (http://www.apache.org/)."
                     50:  *
                     51:  * 4. The names "Apache Server" and "Apache Group" must not be used to
                     52:  *    endorse or promote products derived from this software without
                     53:  *    prior written permission. For written permission, please contact
                     54:  *    apache@apache.org.
                     55:  *
                     56:  * 5. Products derived from this software may not be called "Apache"
                     57:  *    nor may "Apache" appear in their names without prior written
                     58:  *    permission of the Apache Group.
                     59:  *
                     60:  * 6. Redistributions of any form whatsoever must retain the following
                     61:  *    acknowledgment:
                     62:  *    "This product includes software developed by the Apache Group
                     63:  *    for use in the Apache HTTP server project (http://www.apache.org/)."
                     64:  *
                     65:  * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
                     66:  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     67:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     68:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
                     69:  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
                     70:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     71:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
                     72:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     73:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
                     74:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     75:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
                     76:  * OF THE POSSIBILITY OF SUCH DAMAGE.
                     77:  * ====================================================================
                     78:  *
                     79:  * This software consists of voluntary contributions made by many
                     80:  * individuals on behalf of the Apache Group and was originally based
                     81:  * on public domain software written at the National Center for
                     82:  * Supercomputing Applications, University of Illinois, Urbana-Champaign.
                     83:  * For more information on the Apache Group and the Apache HTTP server
                     84:  * project, please see <http://www.apache.org/>.
                     85:  *
                     86:  */
                     87: 
                     88: #ifndef APACHE_MD5_H
                     89: #define APACHE_MD5_H
                     90: 
                     91: #ifdef __cplusplus
                     92: extern "C" {
                     93: #endif
                     94: 
                     95: /* MD5.H - header file for MD5C.C */
                     96: 
                     97: #define MD5_DIGESTSIZE 16
                     98: 
                     99: /* UINT4 defines a four byte word */
                    100: typedef unsigned int UINT4;
                    101: 
                    102: /* MD5 context. */
                    103: typedef struct {
                    104:     UINT4 state[4];            /* state (ABCD) */
                    105:     UINT4 count[2];            /* number of bits, modulo 2^64 (lsb first) */
                    106:     unsigned char buffer[64];  /* input buffer */
                    107: } AP_MD5_CTX;
                    108: 
                    109: /*
                    110:  * Define the Magic String prefix that identifies a password as being
                    111:  * hashed using our algorithm.
                    112:  */
                    113: #define AP_MD5PW_ID "$apr1$"
                    114: #define AP_MD5PW_IDLEN 6
                    115: 
                    116: API_EXPORT(void) ap_MD5Init(AP_MD5_CTX *context);
                    117: API_EXPORT(void) ap_MD5Update(AP_MD5_CTX *context, const unsigned char *input,
                    118:                              unsigned int inputLen);
                    119: API_EXPORT(void) ap_MD5Final(unsigned char digest[MD5_DIGESTSIZE],
                    120:                             AP_MD5_CTX *context);
                    121: API_EXPORT(void) ap_MD5Encode(const unsigned char *password,
                    122:                              const unsigned char *salt,
                    123:                              char *result, size_t nbytes);
                    124: API_EXPORT(void) ap_to64(char *s, unsigned long v, int n);
                    125: 
                    126: #ifdef __cplusplus
                    127: }
                    128: #endif
                    129: 
                    130: #endif /* !APACHE_MD5_H */

E-mail: