Annotation of parser3/src/lib/md5/pa_md5.h, revision 1.19

1.1       paf         1: /** @file
1.19    ! moko        2:        taken from libmd, added pa_ prefixes, Parser 3 includes,
1.18      moko        3:        Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com)
1.1       paf         4: */
                      5: 
1.19    ! moko        6: /*     $OpenBSD: md5.h,v 1.15 2004/05/03 17:30:14 millert Exp $        */
        !             7: 
1.1       paf         8: /*
1.19    ! moko        9:  * This code implements the MD5 message-digest algorithm.
        !            10:  * The algorithm is due to Ron Rivest. This code was
        !            11:  * written by Colin Plumb in 1993, no copyright is claimed.
        !            12:  * This code is in the public domain; do with it what you wish.
        !            13:  *
        !            14:  * Equivalent code is available from RSA Data Security, Inc.
        !            15:  * This code has been tested against that, and is equivalent,
        !            16:  * except that you don't need to include two pages of legalese
        !            17:  * with every copy.
1.1       paf        18:  */
                     19: 
1.2       paf        20: #ifndef PA_MD5_H
                     21: #define PA_MD5_H
1.3       paf        22: 
1.19    ! moko       23: #define IDENT_PA_MD5_H "$Id: pa_md5.h,v 1.18 2024/11/04 03:53:25 moko Exp $"
1.1       paf        24: 
                     25: #ifdef __cplusplus
                     26: extern "C" {
                     27: #endif
                     28: 
1.13      moko       29: #include "pa_config_includes.h"
1.1       paf        30: 
1.19    ! moko       31: #define        MD5_BLOCK_LENGTH                64
        !            32: #define        MD5_DIGEST_LENGTH               16
        !            33: #define        MD5_DIGEST_STRING_LENGTH        (MD5_DIGEST_LENGTH * 2 + 1)
        !            34: 
        !            35: typedef struct MD5Context {
        !            36:        uint32_t state[4];                      /* state */
        !            37:        uint64_t count;                         /* number of bits, mod 2^64 */
        !            38:        uint8_t buffer[MD5_BLOCK_LENGTH];       /* input buffer */
        !            39: } PA_MD5_CTX;
1.1       paf        40: 
1.19    ! moko       41: void pa_MD5Init(PA_MD5_CTX *);
        !            42: void pa_MD5Update(PA_MD5_CTX *, const uint8_t *, size_t);
        !            43: void pa_MD5Final(uint8_t [MD5_DIGEST_LENGTH], PA_MD5_CTX *);
        !            44: void pa_MD5Transform(uint32_t [4], const uint8_t [MD5_BLOCK_LENGTH]);
        !            45: void pa_MD5Encode(const unsigned char *password, const unsigned char *salt, char *result, size_t nbytes);
        !            46: void pa_to64(char *s, unsigned long v, int n);
1.2       paf        47: 
1.1       paf        48: #define PA_MD5PW_ID "$apr1$"
                     49: #define PA_MD5PW_IDLEN 6
                     50: 
                     51: #ifdef __cplusplus
                     52: }
                     53: #endif
                     54: 
1.2       paf        55: #endif /* !PA_MD5_H */

E-mail: