Annotation of embedaddon/ntp/lib/isc/iterated_hash.c, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Copyright (C) 2006, 2008, 2009  Internet Systems Consortium, Inc. ("ISC")
        !             3:  *
        !             4:  * Permission to use, copy, modify, and/or distribute this software for any
        !             5:  * purpose with or without fee is hereby granted, provided that the above
        !             6:  * copyright notice and this permission notice appear in all copies.
        !             7:  *
        !             8:  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
        !             9:  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        !            10:  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
        !            11:  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        !            12:  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
        !            13:  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        !            14:  * PERFORMANCE OF THIS SOFTWARE.
        !            15:  */
        !            16: 
        !            17: /* $Id: iterated_hash.c,v 1.4.48.2 2009/02/18 23:47:12 tbox Exp $ */
        !            18: 
        !            19: #include "config.h"
        !            20: 
        !            21: #include <stdio.h>
        !            22: 
        !            23: #include <isc/sha1.h>
        !            24: #include <isc/iterated_hash.h>
        !            25: 
        !            26: int
        !            27: isc_iterated_hash(unsigned char out[ISC_SHA1_DIGESTLENGTH],
        !            28:                  unsigned int hashalg, int iterations,
        !            29:                  const unsigned char *salt, int saltlength,
        !            30:                  const unsigned char *in, int inlength)
        !            31: {
        !            32:        isc_sha1_t ctx;
        !            33:        int n = 0;
        !            34: 
        !            35:        if (hashalg != 1)
        !            36:                return (0);
        !            37: 
        !            38:        do {
        !            39:                isc_sha1_init(&ctx);
        !            40:                isc_sha1_update(&ctx, in, inlength);
        !            41:                isc_sha1_update(&ctx, salt, saltlength);
        !            42:                isc_sha1_final(&ctx, out);
        !            43:                in = out;
        !            44:                inlength = ISC_SHA1_DIGESTLENGTH;
        !            45:        } while (n++ < iterations);
        !            46: 
        !            47:        return (ISC_SHA1_DIGESTLENGTH);
        !            48: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>