Changeset 1770 in MondoRescue for branches/stable/mindi-busybox/libbb/sha1.c
- Timestamp:
- Nov 6, 2007, 11:01:53 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mindi-busybox/libbb/sha1.c
r821 r1770 1 /* vi: set sw=4 ts=4: */ 1 2 /* 2 3 * Based on shasum from http://www.netsw.org/crypto/hash/ … … 6 7 * Copyright (C) 2003 Glenn L. McGrath 7 8 * Copyright (C) 2003 Erik Andersen 8 *9 * LICENSE TERMS10 9 * 11 * The free distribution and use of this software in both source and binary 12 * form is allowed (with or without changes) provided that: 10 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 13 11 * 14 * 1. distributions of this source code include the above copyright15 * notice, this list of conditions and the following disclaimer;16 *17 * 2. distributions in binary form include the above copyright18 * notice, this list of conditions and the following disclaimer19 * in the documentation and/or other associated materials;20 *21 * 3. the copyright holder's name is not used to endorse products22 * built using this software without specific written permission.23 *24 * ALTERNATIVELY, provided that this notice is retained in full, this product25 * may be distributed under the terms of the GNU General Public License (GPL),26 * in which case the provisions of the GPL apply INSTEAD OF those given above.27 *28 * DISCLAIMER29 *30 * This software is provided 'as is' with no explicit or implied warranties31 * in respect of its properties, including, but not limited to, correctness32 * and/or fitness for purpose.33 12 * --------------------------------------------------------------------------- 34 13 * Issue Date: 10/11/2002 … … 38 17 */ 39 18 40 #include <fcntl.h>41 #include <limits.h>42 #include <stdio.h>43 #include <stdint.h>44 #include <stdlib.h>45 #include <string.h>46 #include <unistd.h>47 48 19 #include "libbb.h" 49 20 50 # 51 # 52 # 53 # 54 # 21 #define SHA1_BLOCK_SIZE 64 22 #define SHA1_DIGEST_SIZE 20 23 #define SHA1_HASH_SIZE SHA1_DIGEST_SIZE 24 #define SHA2_GOOD 0 25 #define SHA2_BAD 1 55 26 56 # define rotl32(x,n)(((x) << n) | ((x) >> (32 - n)))27 #define rotl32(x,n) (((x) << n) | ((x) >> (32 - n))) 57 28 58 # define SHA1_MASK(SHA1_BLOCK_SIZE - 1)29 #define SHA1_MASK (SHA1_BLOCK_SIZE - 1) 59 30 60 31 /* reverse byte order in 32-bit words */ 61 #define ch(x,y,z) ((z) ^ ((x) & ((y) ^ (z))))62 #define parity(x,y,z) ((x) ^ (y) ^ (z))63 #define maj(x,y,z) (((x) & (y)) | ((z) & ((x) | (y))))32 #define ch(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) 33 #define parity(x,y,z) ((x) ^ (y) ^ (z)) 34 #define maj(x,y,z) (((x) & (y)) | ((z) & ((x) | (y)))) 64 35 65 36 /* A normal version as set out in the FIPS. This version uses */ 66 37 /* partial loop unrolling and is optimised for the Pentium 4 */ 67 # define rnd(f,k) \ 68 t = a; a = rotl32(a,5) + f(b,c,d) + e + k + w[i]; \ 69 e = d; d = c; c = rotl32(b, 30); b = t 70 38 #define rnd(f,k) \ 39 do { \ 40 t = a; a = rotl32(a,5) + f(b,c,d) + e + k + w[i]; \ 41 e = d; d = c; c = rotl32(b, 30); b = t; \ 42 } while (0) 71 43 72 44 static void sha1_compile(sha1_ctx_t *ctx) … … 182 154 183 155 /* assemble the eight byte counter in the buffer in big-endian */ 184 /* format */156 /* format */ 185 157 186 158 ctx->wbuf[14] = htonl((ctx->count[1] << 3) | (ctx->count[0] >> 29)); … … 194 166 for (i = 0; i < SHA1_DIGEST_SIZE; ++i) 195 167 hval[i] = (unsigned char) (ctx->hash[i >> 2] >> 8 * (~i & 3)); 196 168 197 169 return resbuf; 198 170 } 199 200
Note:
See TracChangeset
for help on using the changeset viewer.