Annotation of embedaddon/ntp/lib/isc/iterated_hash.c, revision 1.1.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>