Files
bind9/lib/isc/iterated_hash.c
T
Michal Nowak 57a3ae9d97 Fix argument with mismatched bound in isc_iterated_hash()
GCC 11 produced the following warning:

    iterated_hash.c:21:33: warning: argument 1 of type ‘unsigned char[20]’ with mismatched bound [-Warray-parameter=]
       21 | isc_iterated_hash(unsigned char out[ISC_SHA1_DIGESTLENGTH],
          |                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from iterated_hash.c:18:
    ./include/isc/iterated_hash.h:33:37: note: previously declared as ‘unsigned char[155]’
       33 | int isc_iterated_hash(unsigned char out[NSEC3_MAX_HASH_LENGTH],
          |                       ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
2021-05-20 13:35:08 +02:00

43 lines
1001 B
C

/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#include "config.h"
#include <stdio.h>
#include <isc/sha1.h>
#include <isc/iterated_hash.h>
int
isc_iterated_hash(unsigned char out[NSEC3_MAX_HASH_LENGTH],
unsigned int hashalg, int iterations,
const unsigned char *salt, int saltlength,
const unsigned char *in, int inlength)
{
isc_sha1_t ctx;
int n = 0;
if (hashalg != 1)
return (0);
do {
isc_sha1_init(&ctx);
isc_sha1_update(&ctx, in, inlength);
isc_sha1_update(&ctx, salt, saltlength);
isc_sha1_final(&ctx, out);
in = out;
inlength = ISC_SHA1_DIGESTLENGTH;
} while (n++ < iterations);
return (ISC_SHA1_DIGESTLENGTH);
}