* Parts of this file are based on public domain code written by Steve Reid.
*/
-/*
+/*
* Copyright (C) 2012 Eric Biggers
*
* This file is part of wimlib, a library for working with WIM files.
*
* wimlib is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
+ * terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
* any later version.
*
* wimlib is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
- * You should have received a copy of the GNU Lesser General Public License
+ * You should have received a copy of the GNU General Public License
* along with wimlib; if not, see http://www.gnu.org/licenses/.
*/
* Steve Reid's public domain code, or based on Intel's SSSE3 SHA1 code.
*/
-#ifndef WITH_LIBCRYPTO
+const u8 zero_hash[SHA1_HASH_SIZE] = {
+ 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,
+};
+#ifndef WITH_LIBCRYPTO
+
/* Initialize new context */
void sha1_init(SHA_CTX* context)
{
#include <stdlib.h>
void ssse3_not_found()
{
- fprintf(stderr,
+ fprintf(stderr,
"Cannot calculate SHA1 message digest: CPU does not support SSSE3\n"
"instructions! Recompile wimlib without the --enable-ssse3-sha1 flag\n"
"to use wimlib on this CPU.\n");
while ((context->count[0] & 504) != 448) {
sha1_update(context, (u8 *)"\0", 1);
}
- sha1_update(context, finalcount, 8); /* Should cause a SHA1_Transform() */
+ sha1_update(context, finalcount, 8); /* Should cause a sha1_transform() */
for (i = 0; i < SHA1_HASH_SIZE; i++) {
md[i] = (u8)((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
}
}
-/* Calculates the SHA1 message digest given the name of a file. @md must point
- * to a buffer of length 20 bytes into which the message digest is written.
- */
+/* Calculates the SHA1 message digest of a file. @md must point to a buffer of
+ * length 20 bytes into which the message digest is written. */
int sha1sum(const char *filename, u8 md[SHA1_HASH_SIZE])
{
FILE *fp;