THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS “AS IS” AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FIPS pub 180-1: Secure Hash Algorithm (SHA-1) based on: http://csrc.nist.gov/fips/fip180-
1.txt implemented by Jun-ichiro itojun Itoh <[email protected]>
sha1.c : Implementation of the Secure Hash Algorithm
SHA: NIST's Secure Hash Algorithm
This version written November 2000 by David Ireland of DI Management Services Pty
Limited <[email protected]>
Adapted from code in the Python Cryptography Toolkit, version 1.0.0 by A.M. Kuchling 1995.
AM Kuchling's posting:-
Based on SHA code originally posted to sci.crypt by Peter Gutmann in message
The original specification of SHA was found to have a weakness by NSA/NIST.
This code implements the fixed version of SHA.
Here's the first paragraph of Peter Gutmann's posting:
The following is my SHA (FIPS 180) code updated to allow use of the “fixed” SHA, thanks to
Jim Gillogly and an anonymous contributor for the information on what's changed in the new
version.
The fix is a simple change which involves adding a single rotate in the initial expansion
function.
It is unknown whether this is an optimal solution to the problem which was discovered in the
SHA or whether it's simply a bandaid which fixes the problem with a minimum of effort (for
example the reengineering of a great many Capstone chips).
trsha2.c
$KAME: sha1.c,v 1.5 2000/11/08 06:13:08 itojun Exp $
Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of