base
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
mhash AUTHORS
|
||||
===============================================================================
|
||||
|
||||
The authors of libmhash are
|
||||
|
||||
Nikos Mavroyanopoulos <nmav@hellug.gr>
|
||||
Sascha Schumann <sascha@schumann.cx>
|
||||
|
||||
The library was originaly created by Nikos Mavroyanopoulos sometime
|
||||
in 1998. Many new features and algorithms were added by Sascha Schumann,
|
||||
who maintained it from May 1999 to March 2000.
|
||||
The library is now maintained again by Nikos Mavroyanopoulos.
|
||||
|
||||
@@ -0,0 +1,482 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
@@ -0,0 +1,619 @@
|
||||
2007-04-02 12:00 imipak
|
||||
Since the symbol clashes, it has mostly been endian and alignment
|
||||
problems, although some compiler warnings have been squished as well.
|
||||
|
||||
2007-02-20 12:00 imipak
|
||||
Fixed symbol clashes. This will probably be revisited, but any future
|
||||
scheme will transparently use the masking scheme present in this
|
||||
edition.
|
||||
|
||||
2007-02-10 12:00 imipak
|
||||
|
||||
Well, Michael Schwendt did it again. He's provided a set of patches
|
||||
to solve the Haval endian problem, which are included. He also polished
|
||||
off some memory leaks that had been hitherto undetected. All kudos and
|
||||
Slashdot mod points to him for his excellent work. (Now all I have to
|
||||
figure out is how to port this code to the Amiga...)
|
||||
|
||||
2006-01-01 12:00 imipak
|
||||
|
||||
Virtually all files impacted by forcing unsigned types for unsigned
|
||||
data. Isolated C library calls, will probably steal reimplementations
|
||||
of these functions so that mhash will sit better on embedded platforms.
|
||||
|
||||
2002-10-03 13:01 nmav
|
||||
|
||||
* lib/keygen_s2k.c:
|
||||
|
||||
Corrected bug which caused memory leaks. Patch by bob mathews
|
||||
(bobmathews@alumni.calpoly.edu)
|
||||
|
||||
2002-10-03 12:55 nmav
|
||||
|
||||
* src/hmac_test.c:
|
||||
|
||||
Corrected wrong use of sizeof(). Reported by Ellis Pritchard
|
||||
(ellispritchard@users.sf.net)
|
||||
|
||||
2002-09-02 20:59 nmav
|
||||
|
||||
* NEWS, lib/keygen_hex.c, lib/mhash.c:
|
||||
|
||||
corrected the HEX key generator. Refuses hex strings longer than the
|
||||
key
|
||||
|
||||
2002-05-26 17:46 nmav
|
||||
|
||||
* NEWS, acconfig.h (tags: mhash_0_8_16), configure.in (tags:
|
||||
mhash_0_8_16), lib/adler32.c (tags: mhash_0_8_16), lib/crc32.c
|
||||
(tags: mhash_0_8_16), lib/gosthash.c (tags: mhash_0_8_16),
|
||||
lib/haval.c (tags: mhash_0_8_16), lib/md4.c (tags: mhash_0_8_16),
|
||||
lib/md5.c (tags: mhash_0_8_16), lib/mhash.c (tags: mhash_0_8_16),
|
||||
lib/mhash_int.h (tags: mhash_0_8_16), lib/ripemd.c (tags:
|
||||
mhash_0_8_16), lib/sha1.c (tags: mhash_0_8_16), lib/sha256.c (tags:
|
||||
mhash_0_8_16), lib/tiger.c (tags: mhash_0_8_16), lib/tiger_sboxes.c
|
||||
(tags: mhash_0_8_16):
|
||||
|
||||
added configure time options to disable certain algorithms
|
||||
|
||||
2002-05-26 17:08 nmav
|
||||
|
||||
* NEWS, configure.in, lib/adler32.c, lib/crc32.c, lib/haval.c,
|
||||
lib/md4.c, lib/md5.c, lib/mhash.c, lib/mhash_adler32.h (tags:
|
||||
mhash_0_8_16), lib/mhash_crc32.h (tags: mhash_0_8_16),
|
||||
lib/mhash_haval.h (tags: mhash_0_8_16), lib/mhash_md4.h (tags:
|
||||
mhash_0_8_16), lib/mhash_md5.h (tags: mhash_0_8_16),
|
||||
src/hmac_test.c (tags: mhash_0_8_16):
|
||||
|
||||
Cleaned the code up. Less code now in mhash.c.
|
||||
|
||||
2002-05-24 14:25 nmav
|
||||
|
||||
* lib/keygen_s2k.c:
|
||||
|
||||
Corrected s2k-iterated
|
||||
|
||||
2002-05-17 11:26 nmav
|
||||
|
||||
* lib/gosthash.c (tags: mhash_0_8_15):
|
||||
|
||||
cleaned up
|
||||
|
||||
2002-05-17 11:25 nmav
|
||||
|
||||
* lib/mhash_gost.h (tags: mhash_0_8_16, mhash_0_8_15):
|
||||
|
||||
Cleaned up
|
||||
|
||||
2002-05-16 22:45 nmav
|
||||
|
||||
* THANKS (tags: mhash_0_8_16, mhash_0_8_15), lib/crc32.c (tags:
|
||||
mhash_0_8_15), lib/gosthash.c, lib/keygen.c (tags: mhash_0_8_16,
|
||||
mhash_0_8_15), lib/mhash.c, lib/tiger.c (tags: mhash_0_8_15),
|
||||
lib/tiger_sboxes.c (tags: mhash_0_8_15), src/driver.c (tags:
|
||||
mhash_0_8_16, mhash_0_8_15):
|
||||
|
||||
Added const to all fixed tables. Pointed out by Darryl Miles
|
||||
<darryl@netbauds.net>.
|
||||
|
||||
2002-03-11 18:55 nmav
|
||||
|
||||
* Makefile.am (tags: mhash_0_8_16, mhash_0_8_15), NEWS, THANKS,
|
||||
lib/gosthash.c:
|
||||
|
||||
fixed bug in gost. Pointed out by Mike Gorchak
|
||||
|
||||
2002-03-10 10:29 nmav
|
||||
|
||||
* Makefile.am, NEWS, configure.in, mhash.spec, mhash.spec.in:
|
||||
|
||||
added mhash.spec.in
|
||||
|
||||
2002-03-09 19:16 nmav
|
||||
|
||||
* mhash.spec:
|
||||
|
||||
added mhash.spec by Germano Rizzo <mano@pluto.linux.it>
|
||||
|
||||
2002-02-12 11:46 nmav
|
||||
|
||||
* lib/mhash.h:
|
||||
|
||||
corrected keygen_id prototype
|
||||
|
||||
2002-02-10 10:10 nmav
|
||||
|
||||
* NEWS, THANKS, lib/mhash.c:
|
||||
|
||||
corrected some memory leaks. Patch by Gustavo Niemeyer.
|
||||
|
||||
2002-01-26 09:09 nmav
|
||||
|
||||
* NEWS, doc/mhash.pod (tags: mhash_0_8_16, mhash_0_8_15),
|
||||
lib/adler32.c (tags: mhash_0_8_15), lib/crc32.c, lib/gosthash.c,
|
||||
lib/keygen_asis.c (tags: mhash_0_8_16, mhash_0_8_15),
|
||||
lib/keygen_hex.c (tags: mhash_0_8_16, mhash_0_8_15),
|
||||
lib/keygen_mcrypt.c (tags: mhash_0_8_16, mhash_0_8_15),
|
||||
lib/keygen_s2k.c, lib/md4.c (tags: mhash_0_8_15), lib/md5.c (tags:
|
||||
mhash_0_8_15), lib/mhash.c, lib/ripemd.c (tags: mhash_0_8_15),
|
||||
lib/sha1.c (tags: mhash_0_8_15), lib/sha256.c (tags: mhash_0_8_15),
|
||||
lib/tiger.c:
|
||||
|
||||
mhash_deinit() and mhash_hmac_deinit() can now accept null digest
|
||||
parameter.
|
||||
|
||||
2001-11-19 11:52 nmav
|
||||
|
||||
* lib/: haval.c (tags: mhash_0_8_15), keygen_asis.c,
|
||||
keygen_mcrypt.c, mhash.c, mhash_tiger.h (tags: mhash_0_8_16,
|
||||
mhash_0_8_15), ripemd.c, tiger.c, tiger_sboxes.c:
|
||||
|
||||
several cleanups
|
||||
|
||||
2001-11-12 14:14 nmav
|
||||
|
||||
* NEWS, lib/Makefile.am, lib/adler32.c, lib/mhash.c, lib/mhash.h,
|
||||
lib/mhash_adler32.h (tags: mhash_0_8_15), lib/mhash_int.h (tags:
|
||||
mhash_0_8_15) (utags: libmhash_0_8_13):
|
||||
|
||||
added adler32 algorithm
|
||||
|
||||
2001-10-27 09:42 nmav
|
||||
|
||||
* NEWS, configure.in (tags: mhash_0_8_12_1, mhash_0_8_12),
|
||||
lib/Makefile.am (tags: mhash_0_8_12_1, mhash_0_8_12), lib/mhash.c
|
||||
(tags: mhash_0_8_12_1, mhash_0_8_12), lib/mhash.h (tags:
|
||||
mhash_0_8_12_1, mhash_0_8_12), lib/mhash_int.h (tags:
|
||||
mhash_0_8_12_1, mhash_0_8_12), lib/mhash_sha1.h (tags:
|
||||
mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12), lib/mhash_sha256.h (tags: mhash_0_8_16,
|
||||
mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12),
|
||||
lib/sha1.c (tags: libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12),
|
||||
lib/sha256.c (tags: libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12),
|
||||
src/hash_test.sh (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12):
|
||||
|
||||
added SHA-256
|
||||
|
||||
2001-10-26 10:47 nmav
|
||||
|
||||
* lib/: keygen.c (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12), mhash.c:
|
||||
|
||||
corrected bug in get_name()
|
||||
|
||||
2001-10-23 09:14 nmav
|
||||
|
||||
* lib/libmhash.sym, src/mhash_save_restore_test.c (tags:
|
||||
mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13) (utags:
|
||||
mhash_0_8_12_1, mhash_0_8_12):
|
||||
|
||||
corrected bugs
|
||||
|
||||
2001-10-19 21:46 nmav
|
||||
|
||||
* NEWS, configure.in (tags: mhash_0_8_11), doc/mhash.pod (tags:
|
||||
mhash_0_8_11), lib/keygen.c (tags: mhash_0_8_11), lib/mhash.c
|
||||
(tags: mhash_0_8_11), lib/mhash.h, src/mhash_save_restore_test.c:
|
||||
|
||||
Added mhash_get_name_static() Corrected mhash_get_name() and
|
||||
mhash_count()
|
||||
|
||||
2001-10-16 18:19 nmav
|
||||
|
||||
* NEWS, THANKS (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11), doc/mhash.pod, lib/libmhash.sym (tags:
|
||||
mhash_0_8_11), lib/mhash.c, lib/mhash.h, src/Makefile.am (tags:
|
||||
mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11), src/mhash_save_restore_test.c:
|
||||
|
||||
added capability to save/restore the mhash state. Initial patches
|
||||
and ideas by Blake Stephen <Stephen.Blake@veritect.com>
|
||||
|
||||
2001-09-21 13:49 nmav
|
||||
|
||||
* doc/mhash.pod, lib/haval.c (tags: libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11), lib/keygen.c,
|
||||
lib/libdefs.h (tags: mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11), lib/mhash.c,
|
||||
lib/mhash.h, lib/mhash_int.h (tags: mhash_0_8_11):
|
||||
|
||||
some fixes in included files
|
||||
|
||||
2001-09-09 09:58 nmav
|
||||
|
||||
* NEWS, doc/mhash.pod, lib/keygen.c, lib/mhash.c, lib/mhash.h,
|
||||
lib/mhash_int.h:
|
||||
|
||||
mhash_*_get_name() return a constant string
|
||||
|
||||
2001-07-12 15:34 nmav
|
||||
|
||||
* configure.in, src/driver.c (tags: libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11) (utags: mhash_0_8_10):
|
||||
|
||||
moving to mhash 0.8.10
|
||||
|
||||
2001-07-09 07:24 nmav
|
||||
|
||||
* lib/: libmhash.sym (tags: mhash_0_8_10), mhash.c (tags:
|
||||
mhash_0_8_10), mhash.h:
|
||||
|
||||
added functions to allow non-malloced results
|
||||
|
||||
2001-05-10 07:03 nmav
|
||||
|
||||
* src/hash_test.sh (tags: mhash_0_8_11, mhash_0_8_10):
|
||||
|
||||
tr fixes
|
||||
|
||||
2001-04-25 09:59 nmav
|
||||
|
||||
* src/hash_test.sh:
|
||||
|
||||
all outputs in hash_test are now specified in upper case
|
||||
|
||||
2001-04-06 12:44 nmav
|
||||
|
||||
* src/hash_test.sh:
|
||||
|
||||
corrected some case problems
|
||||
|
||||
2001-02-24 22:41 nmav
|
||||
|
||||
* src/hash_test.sh:
|
||||
|
||||
fixed a case problem
|
||||
|
||||
2001-02-11 19:33 nmav
|
||||
|
||||
* TODO (tags: mhash_0_8_11, mhash_0_8_10):
|
||||
|
||||
updated todo list
|
||||
|
||||
2001-02-10 11:43 nmav
|
||||
|
||||
* doc/mhash.pod:
|
||||
|
||||
updated information for md4
|
||||
|
||||
2001-02-04 12:06 nmav
|
||||
|
||||
* NEWS, README (tags: mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11, mhash_0_8_10),
|
||||
doc/mhash.pod, lib/mhash.h:
|
||||
|
||||
updated documentation
|
||||
|
||||
2001-02-04 10:29 nmav
|
||||
|
||||
* doc/: Makefile.am, example.c (utags: mhash_0_8_12_1,
|
||||
mhash_0_8_16, libmhash_0_8_13, mhash_0_8_12, mhash_0_8_15,
|
||||
mhash_0_8_10, mhash_0_8_11):
|
||||
|
||||
added example program
|
||||
|
||||
2001-02-04 10:23 nmav
|
||||
|
||||
* lib/tiger_sboxes.c (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9):
|
||||
|
||||
removed 64 bit version of tiger tables
|
||||
|
||||
2001-02-01 18:38 nmav
|
||||
|
||||
* NEWS, configure.in (tags: mhash_0_8_9):
|
||||
|
||||
moving to 0.8.9
|
||||
|
||||
2001-02-01 18:30 nmav
|
||||
|
||||
* lib/tiger_sboxes.c:
|
||||
|
||||
removed support for 64 bit
|
||||
|
||||
2001-01-29 09:46 nmav
|
||||
|
||||
* lib/mhash_tiger.h (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9):
|
||||
|
||||
removed 64bit version
|
||||
|
||||
2001-01-28 22:05 nmav
|
||||
|
||||
* doc/skid2-authentication (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9):
|
||||
|
||||
corrected
|
||||
|
||||
2001-01-26 00:44 nmav
|
||||
|
||||
* lib/: md4.c, md5.c (utags: mhash_0_8_12_1, libmhash_0_8_13,
|
||||
mhash_0_8_12, mhash_0_8_9, mhash_0_8_10, mhash_0_8_7,
|
||||
mhash_0_8_11):
|
||||
|
||||
made a function static so it does not cause problems in big endian
|
||||
systems
|
||||
|
||||
2001-01-24 08:20 nmav
|
||||
|
||||
* lib/: md4.c, md5.c, sha1.c (tags: mhash_0_8_11, mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
some speedups
|
||||
|
||||
2001-01-24 08:14 nmav
|
||||
|
||||
* doc/: Makefile.am (tags: mhash_0_8_9), mhash.pod (tags:
|
||||
mhash_0_8_9), skid2-authentication (utags: mhash_0_8_7):
|
||||
|
||||
added document that describes skid2 authentication protocol
|
||||
|
||||
2001-01-21 19:31 nmav
|
||||
|
||||
* lib/: tiger.c (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11), haval.c (utags: mhash_0_8_9,
|
||||
mhash_0_8_10, mhash_0_8_7):
|
||||
|
||||
removed unneeded functions
|
||||
|
||||
2001-01-21 19:30 nmav
|
||||
|
||||
* ChangeLog, NEWS, README (tags: mhash_0_8_9, mhash_0_8_7), TODO
|
||||
(tags: mhash_0_8_9, mhash_0_8_7), buildconf (tags: mhash_0_8_16,
|
||||
mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12,
|
||||
mhash_0_8_11, mhash_0_8_10, mhash_0_8_9, mhash_0_8_7),
|
||||
lib/Makefile.am, lib/keygen_hex.c (tags: libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11, mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7), lib/md5.c, lib/mhash_md5.h (tags:
|
||||
mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12,
|
||||
mhash_0_8_11, mhash_0_8_10, mhash_0_8_9, mhash_0_8_7),
|
||||
lib/mhash_tiger.h, lib/tiger.c, src/hash_test.sh (tags:
|
||||
mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
changes for MD4, TIGER160 and TIGER128
|
||||
|
||||
2001-01-21 19:28 nmav
|
||||
|
||||
* lib/: mhash.h, mhash_int.h (tags: mhash_0_8_10) (utags:
|
||||
mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
added MD4, TIGER160, TIGER128
|
||||
|
||||
2001-01-21 19:27 nmav
|
||||
|
||||
* lib/mhash.c (tags: mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
added MD4, TIGER128 and TIGER160
|
||||
|
||||
2001-01-21 19:27 nmav
|
||||
|
||||
* lib/: md4.c, mhash_md4.h (tags: mhash_0_8_15, libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11, mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
Added MD4 algorithm
|
||||
|
||||
2001-01-21 17:17 nmav
|
||||
|
||||
* NEWS:
|
||||
|
||||
more news!
|
||||
|
||||
2001-01-21 17:14 nmav
|
||||
|
||||
* src/hash_test.sh:
|
||||
|
||||
corrected tiger vectors
|
||||
|
||||
2001-01-21 17:13 nmav
|
||||
|
||||
* lib/: gosthash.c (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7), mhash.c, mhash_tiger.h, ripemd.c (tags:
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), tiger.c, tiger_sboxes.c:
|
||||
|
||||
corrected tiger implementation and minor fixes
|
||||
|
||||
2001-01-03 22:10 nmav
|
||||
|
||||
* lib/keygen_s2k.c (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7):
|
||||
|
||||
more fixes
|
||||
|
||||
2001-01-03 21:55 nmav
|
||||
|
||||
* lib/: keygen_mcrypt.c (tags: libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7), keygen_s2k.c, mhash.c:
|
||||
|
||||
Corrected bugs reported by: sami Farin <sfarin@ratol.fi> Joe Hohertz
|
||||
<jhohertz@wiretap.net>
|
||||
|
||||
2000-12-15 13:42 nmav
|
||||
|
||||
* lib/crc32.c (tags: libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12,
|
||||
mhash_0_8_11, mhash_0_8_10, mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
removed deprecated comments
|
||||
|
||||
2000-12-15 12:43 nmav
|
||||
|
||||
* lib/crc-32b.c:
|
||||
|
||||
crc32b was moved to crc32.c
|
||||
|
||||
2000-12-15 12:42 nmav
|
||||
|
||||
* NEWS, configure.in, doc/mhash.pod, lib/libmhash.sym (tags:
|
||||
mhash_0_8_9, mhash_0_8_7), lib/mhash.c, lib/mhash.h,
|
||||
lib/mhash_int.h:
|
||||
|
||||
added new functions
|
||||
|
||||
2000-12-15 12:11 nmav
|
||||
|
||||
* lib/: Makefile.am, crc-32b.c, crc32.c, gosthash.c, gosthash.h
|
||||
(tags: libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), mhash.c, mhash_crc32.h
|
||||
(tags: mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12,
|
||||
mhash_0_8_11, mhash_0_8_10, mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
CRC32B and GOST are now thread safe - and use less initialization
|
||||
time.
|
||||
|
||||
2000-10-30 13:13 nmav
|
||||
|
||||
* NEWS, configure.in, doc/mhash.pod, lib/crc32.c, lib/mhash.c,
|
||||
lib/mhash_crc32.h:
|
||||
|
||||
Added mhash_end_m() and mhash_hmac_end_m() functions.
|
||||
|
||||
2000-10-26 13:37 nmav
|
||||
|
||||
* NEWS, configure.in, lib/keygen.c (tags: mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7), lib/mhash.c, lib/mhash_int.h,
|
||||
src/keygen_test.c (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
More win32 changes
|
||||
|
||||
2000-10-24 23:07 nmav
|
||||
|
||||
* lib/: keygen.c, keygen_asis.c (tags: libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11, mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7):
|
||||
|
||||
corrected bug in the KEYGEN_ASIS transformation
|
||||
|
||||
2000-10-20 14:32 nmav
|
||||
|
||||
* NEWS, configure.in, lib/Makefile.am, lib/keygen.c, lib/libdefs.h
|
||||
(tags: mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), lib/mhash.c:
|
||||
|
||||
changes for WIN32
|
||||
|
||||
2000-05-10 19:55 nmav
|
||||
|
||||
* TODO:
|
||||
|
||||
updated TODO list
|
||||
|
||||
2000-05-10 05:46 nmav
|
||||
|
||||
* lib/mhash.c:
|
||||
|
||||
Corrected memory leaks in HMAC. Patches by Marios Hadjieleftheriou
|
||||
<marioh@cs.ucr.edu>
|
||||
|
||||
2000-04-14 19:09 nmav
|
||||
|
||||
* lib/mhash.c, lib/mhash.h, lib/mhash_int.h, src/hash_test.sh:
|
||||
|
||||
Added HAVAL224
|
||||
|
||||
2000-04-11 12:11 nmav
|
||||
|
||||
* lib/mhash.c:
|
||||
|
||||
Corrected hmac implementation.
|
||||
|
||||
2000-04-11 11:58 nmav
|
||||
|
||||
* configure.in, doc/Makefile.am, doc/md2-rfc1319.txt,
|
||||
doc/md2.license, doc/mhash.pod, lib/Makefile.am, lib/md2c.c,
|
||||
lib/mhash.c, lib/mhash.h, lib/mhash_int.h, lib/mhash_md2.h,
|
||||
src/hash_test.sh:
|
||||
|
||||
MD2 algorithm was removed.
|
||||
|
||||
2000-04-09 10:18 nmav
|
||||
|
||||
* configure.in, doc/mhash.pod, lib/mhash.h, lib/mhash_int.h,
|
||||
lib/snefru.c:
|
||||
|
||||
snefru was removed.
|
||||
|
||||
2000-04-06 22:19 nmav
|
||||
|
||||
* src/: driver.c (tags: mhash_0_8_9, mhash_0_8_7), hmac_test.c
|
||||
(tags: mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), keygen_test.c:
|
||||
|
||||
Corrected problem in the includes.
|
||||
|
||||
2000-04-04 10:34 nmav
|
||||
|
||||
* .cvsignore, AUTHORS (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), COPYING (tags:
|
||||
mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7), ChangeLog, INSTALL (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), Makefile.am, NEWS, README,
|
||||
TODO, acconfig.h, acinclude.m4 (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), buildconf,
|
||||
changelog-update.sh (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), mhash.spec (tags:
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), doc/.cvsignore (tags:
|
||||
mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7), doc/Makefile.am, doc/md2.license, doc/md5-rfc1321.txt
|
||||
(tags: mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1,
|
||||
mhash_0_8_12, mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7), doc/mhash.pod, doc/md2-rfc1319.txt, lib/Makefile.am,
|
||||
lib/bzero.c (tags: mhash_0_8_16, mhash_0_8_15, libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11, mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7), lib/crc-32b.c, lib/crc32.c,
|
||||
lib/gosthash.c, lib/libmhash.sym, lib/haval.c, lib/keygen.c,
|
||||
lib/keygen_asis.c, lib/keygen_hex.c, lib/keygen_mcrypt.c,
|
||||
lib/keygen_s2k.c, lib/md2c.c, lib/md5.c, lib/mhash.c, lib/ripemd.c,
|
||||
lib/sha1.c, lib/snefru.c, lib/swap.c (tags: mhash_0_8_16,
|
||||
mhash_0_8_15, libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12,
|
||||
mhash_0_8_11, mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), lib/tiger.c,
|
||||
lib/libdefs.h, lib/mhash_crc32.h, lib/tiger_sboxes.c,
|
||||
lib/gosthash.h, lib/keygen.h (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), lib/mhash.h,
|
||||
lib/mhash_haval.h (tags: mhash_0_8_15, libmhash_0_8_13,
|
||||
mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11, mhash_0_8_10,
|
||||
mhash_0_8_9, mhash_0_8_7), lib/mhash_md2.h, lib/mhash_md5.h,
|
||||
lib/mhash_sha1.h (tags: mhash_0_8_11, mhash_0_8_10, mhash_0_8_9,
|
||||
mhash_0_8_7), lib/mhash_tiger.h, lib/mhash_int.h,
|
||||
lib/mhash_ripemd.h (tags: mhash_0_8_16, mhash_0_8_15,
|
||||
libmhash_0_8_13, mhash_0_8_12_1, mhash_0_8_12, mhash_0_8_11,
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), src/Makefile.am (tags:
|
||||
mhash_0_8_10, mhash_0_8_9, mhash_0_8_7), src/driver.c,
|
||||
src/hash_test.sh, src/hmac_test.c, src/keygen_test.c (utags:
|
||||
start):
|
||||
|
||||
project started in sourceforge
|
||||
|
||||
2000-04-04 10:34 nmav
|
||||
|
||||
* .cvsignore, AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am,
|
||||
NEWS, README, TODO, acconfig.h, acinclude.m4, buildconf,
|
||||
changelog-update.sh, mhash.spec, doc/.cvsignore, doc/Makefile.am,
|
||||
doc/md2.license, doc/md5-rfc1321.txt, doc/mhash.pod,
|
||||
doc/md2-rfc1319.txt, lib/Makefile.am, lib/bzero.c, lib/crc-32b.c,
|
||||
lib/crc32.c, lib/gosthash.c, lib/libmhash.sym, lib/haval.c,
|
||||
lib/keygen.c, lib/keygen_asis.c, lib/keygen_hex.c,
|
||||
lib/keygen_mcrypt.c, lib/keygen_s2k.c, lib/md2c.c, lib/md5.c,
|
||||
lib/mhash.c, lib/ripemd.c, lib/sha1.c, lib/snefru.c, lib/swap.c,
|
||||
lib/tiger.c, lib/libdefs.h, lib/mhash_crc32.h, lib/tiger_sboxes.c,
|
||||
lib/gosthash.h, lib/keygen.h, lib/mhash.h, lib/mhash_haval.h,
|
||||
lib/mhash_md2.h, lib/mhash_md5.h, lib/mhash_sha1.h,
|
||||
lib/mhash_tiger.h, lib/mhash_int.h, lib/mhash_ripemd.h,
|
||||
src/Makefile.am, src/driver.c, src/hash_test.sh, src/hmac_test.c,
|
||||
src/keygen_test.c:
|
||||
|
||||
Initial revision
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
||||
@@ -0,0 +1,7 @@
|
||||
#AUTOMAKE_OPTIONS = foreign
|
||||
SUBDIRS = include lib doc src
|
||||
EXTRA_DIST = mhash.spec.in mhash.spec
|
||||
USE_MHASH_CONFIG = yes
|
||||
|
||||
ChangeLog:
|
||||
cvs2cl --utc --fsf -t -S --prune
|
||||
@@ -0,0 +1,637 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/mhash.spec.in \
|
||||
$(top_srcdir)/configure \
|
||||
$(top_srcdir)/include/mutils/mhash_config.h.in AUTHORS COPYING \
|
||||
ChangeLog INSTALL NEWS THANKS TODO config.guess config.sub \
|
||||
depcomp install-sh ltmain.sh missing
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno configure.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/mutils/mhash_config.h
|
||||
CONFIG_CLEAN_FILES = mhash.spec
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
|
||||
#AUTOMAKE_OPTIONS = foreign
|
||||
SUBDIRS = include lib doc src
|
||||
EXTRA_DIST = mhash.spec.in mhash.spec
|
||||
USE_MHASH_CONFIG = yes
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
include/mutils/mhash_config.h: include/mutils/stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f include/mutils/stamp-h1; \
|
||||
$(MAKE) include/mutils/stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
include/mutils/stamp-h1: $(top_srcdir)/include/mutils/mhash_config.h.in $(top_builddir)/config.status
|
||||
@rm -f include/mutils/stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status include/mutils/mhash_config.h
|
||||
$(top_srcdir)/include/mutils/mhash_config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f include/mutils/stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f include/mutils/mhash_config.h include/mutils/stamp-h1
|
||||
mhash.spec: $(top_builddir)/config.status $(srcdir)/mhash.spec.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
$(mkdir_p) $(distdir)/. $(distdir)/include/mutils
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||
check-am clean clean-generic clean-libtool clean-recursive \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-libtool \
|
||||
distclean-recursive distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
ChangeLog:
|
||||
cvs2cl --utc --fsf -t -S --prune
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,172 @@
|
||||
mhash ChangeLog ($Date: 2006/06/24 21:46:11 $)
|
||||
===============================================================================
|
||||
|
||||
People
|
||||
|
||||
NM - Nikos Mavroyanopoulos <nmav@hellug.gr>
|
||||
SS - Sascha Schumann <sascha@schumann.cx>
|
||||
|
||||
Version 0.9.9
|
||||
- Added patch for sigbus error on unaligned data, when doing rapid copies.
|
||||
(Thanks to Wayne - mhash@useunix.net - for that.)
|
||||
|
||||
Version 0.9.8.1
|
||||
- Another round of bugfixes
|
||||
|
||||
Version 0.9.8
|
||||
- As before - more patches and cleanups
|
||||
|
||||
Version 0.9.7
|
||||
- More patches, more cleanups. Better handling of endian issues. Should
|
||||
handle platforms that do weird things with booleans better. Eliminated
|
||||
more redundant code. Snefru is now endian-aware. Maybe.
|
||||
|
||||
Known Issues:
|
||||
- Sub-optimal on 64-bit platforms, as a lot of the code assumes 32-bits.
|
||||
- May be some big-endian issues remaining. make check is your friend!
|
||||
|
||||
Version 0.9.6
|
||||
- Bunch of patches and speedups. Credits to be added.
|
||||
|
||||
Version 0.9.2
|
||||
- Added SNEFRU128, SNEFRU256. Reintroduced MD2.
|
||||
(jkmhash@itaparica.org)
|
||||
- Fixes to .spec file and clean-ups of documentation
|
||||
(cpedersen[at]c-note.dk)
|
||||
- Fixed typecasts, memory leaks and compiler warnings
|
||||
(imipak@yahoo.com)
|
||||
|
||||
Version 0.9.1
|
||||
- Added RIPEMD128/256/320, SHA224/384/512, Whirlpool
|
||||
- Really, this time!
|
||||
(jkmhash@itaparica.org)
|
||||
|
||||
Version 0.8.19
|
||||
- Added VC++ project files, contributed by James M. Rogers
|
||||
<james@singlestep.com>
|
||||
|
||||
Version 0.8.18 (released March 6 2003)
|
||||
- Several additions and fixes to built win32 dlls.
|
||||
|
||||
Version 0.8.17 (released October 4 2002)
|
||||
- Corrected the HEX key mode. Refuses to convert hex strings longer
|
||||
than the given key size.
|
||||
- Corrected some memory leaks in keygen_s2k. Patch by Bob Mathews
|
||||
<bobmathews@alumni.calpoly.edu>
|
||||
- Corrected wrong use of sizeof in hmac_test. Reported by Ellis Pritchard
|
||||
<ellispritchard@users.sf.net>
|
||||
|
||||
Version 0.8.16 (released May 29 2002)
|
||||
- Code cleanups and optimizations
|
||||
- Added configure time options to disable certain algorithms
|
||||
|
||||
Version 0.8.15 (released May 24 2002)
|
||||
- Corrected Iterated S2K
|
||||
- Made all static tables constant (pointed out by Darryl Miles <darryl@netbauds.net>)
|
||||
|
||||
Version 0.8.14 (release March 28 2002)
|
||||
- mhash_deinit() and mhash_hmac_deinit() now accept a null digest parameter
|
||||
- Corrected memory leaks (patch by Gustavo Niemeyer <niemeyer@conectiva.com>)
|
||||
- Corrected bug in Gost hash algorithm (pointed out by Mike Gorchak <mike@malva.ua>)
|
||||
|
||||
Version 0.8.13 (released November 18 2001)
|
||||
- Added ADLER32 algorithm (implementation by Manuel Kasper <mk@neon1.net>)
|
||||
|
||||
Version 0.8.12 (released October 29 2001)
|
||||
- Corrected bugs in mhash_get_name() functions
|
||||
- Added SHA-256 from libnettle.
|
||||
|
||||
Version 0.8.11 (released October 21 2001)
|
||||
- added mhash_save_state_mem() and mhash_restore_state_mem() functions,
|
||||
initial patches and idea by Blake Stephen <Stephen.Blake@veritect.com>
|
||||
- Added mhash_get_name_static()
|
||||
- Corrected mhash_get_name() and mhash_count()
|
||||
|
||||
Version 0.8.10 (released on July 12 2001)
|
||||
- New mhash_deinit() and mhash_hmac_deinit() functions based on the
|
||||
proposal, and patches by William Ahern <wahern@25thandClement.com>
|
||||
|
||||
Version 0.8.9 (released on February 04 2001)
|
||||
- TIGER runs on alpha (NM)
|
||||
- Documentation updated
|
||||
|
||||
Version 0.8.8 (released on January 29 2001)
|
||||
- MD4 and MD5 now compile on big endian machines (NM)
|
||||
- TIGER now compiles on big endian machines. (NM)
|
||||
|
||||
Version 0.8.6 (released on January 21 2001)
|
||||
- Corrected Tiger implementation (NM, bug pointed out by Gordon Mohr <gojomo@usa.net>)
|
||||
- Added MD4 (NM)
|
||||
- Added TIGER128 and TIGER160 (NM)
|
||||
|
||||
Version 0.8.5 (released on January 2001)
|
||||
- added checks for malloc failures (NM, some patches by Sami Farin <sfarin@ratol.fi>)
|
||||
- corrected old style checks for mhash failures (NM, reported by Joe Hohertz <jhohertz@wiretap.net>)
|
||||
|
||||
Version 0.8.4 (released on December 15 2000)
|
||||
- added mhash_hmac_end_m() and mhash_end_m() functions which allow to specify the malloc function. (NM)
|
||||
- added mhash_cp() - Copy a context (NM)
|
||||
- added mhash_get_mhash_algo() - Returns the name of the algorithm of the context (NM)
|
||||
- fixes in crc32b and gost (for multithreaded applications) (NM)
|
||||
|
||||
Version 0.8.3 (released on October 25 2000)
|
||||
- Compiles under Win32 using cygwin (with -mno-cygwin) (NM)
|
||||
- Bugfixes in KEYGEN_ASIS (NM)
|
||||
|
||||
Version 0.8.2 (released on May 12 2000)
|
||||
- Corrected Memory leaks in HMAC implementation (NM, contributed by Marios Hadjieleftheriou <marioh@cs.ucr.edu>)
|
||||
- Added HAVAL224 (NM)
|
||||
|
||||
Version 0.8.1 (released on April 11 2000)
|
||||
- Bugfixes in hmac implementation. (NM)
|
||||
- Removed MD2 (which was not free) (NM)
|
||||
|
||||
Version 0.8.0 (released on April 5 2000)
|
||||
- No longer needs posix thread locks to be thread safe (NM)
|
||||
- Supports unlimited number of MHASH threads (NM)
|
||||
- Improved the key generation algorithm API (NM)
|
||||
- Corrected Haval implementation. (NM)
|
||||
Now mhash uses Paulo Barreto's implementation
|
||||
Added HAVAL256, HAVAL192, HAVAL160, HAVAL128 (3 passes haval)
|
||||
- License was changed to GNU Lesser GPL
|
||||
|
||||
Version 0.7.0 (released on Mar 3rd 2000)
|
||||
- cleaned up binary interface (SS)
|
||||
- improved POSIX Threads detection (SS)
|
||||
- added keygen API (NM)
|
||||
- added new improved RIPEMD160 implementation (NM)
|
||||
- removed RIPEMD128 (NM)
|
||||
- added RPM .spec file by work@scripty.com (SS)
|
||||
|
||||
Version 0.6.1 (released on Oct 23th 1999)
|
||||
- fixed Tiger algorithm on 32-bit architectures (NM)
|
||||
|
||||
Version 0.6.0 (released on Oct 11th 1999)
|
||||
- export only symbols of the public interface (SS)
|
||||
- MHASH_API_VERSION has been changed to 19991004 (SS)
|
||||
- API change: All algorithm names have been prefixed with MHASH_
|
||||
to avoid namespace pollution (SS)
|
||||
- added mhash_get_hash_pblock() by NM, reimplemented by SS
|
||||
- improved data structure handling (NM)
|
||||
- use "--silent" libtool option (SS)
|
||||
- added hmac functions (SS, contributed by NM)
|
||||
|
||||
Version 0.5.2 (released on Jul 14th 1999)
|
||||
- fix VPATH build (SS)
|
||||
- upgrade to libtool 1.3.3 (SS)
|
||||
- rework directory layout (simplified) (SS)
|
||||
- change test script to work with Bourne shells (SS)
|
||||
- fix some big endian issues in RIPEMD160, RIPEMD128 and TIGER (SS)
|
||||
|
||||
Version 0.5 (relased on May 22nd 1999)
|
||||
- put under CVS control
|
||||
- change get_block_size to mhash_get_block_size (NM)
|
||||
- add --disable-pthreads option (NM)
|
||||
- add libtool and automake support (SS)
|
||||
- add several algorithms (SS)
|
||||
HAVAL, RIPEMD128, RIPEMD160, TIGER, GOST, CRC32B
|
||||
- add mhash_get_hash_name (SS)
|
||||
- add mhash_count (SS)
|
||||
- documentation revamp (SS)
|
||||
- renew API (SS)
|
||||
- add test vectors (SS)
|
||||
@@ -0,0 +1,42 @@
|
||||
mhash README ($Date: 2001/02/04 12:06:10 $)
|
||||
===============================================================================
|
||||
|
||||
OVERVIEW
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The mhash library provides an easy way to access strong hashes such as MD5,
|
||||
SHA1 and other algorithms.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
The mhash library provides the following features:
|
||||
|
||||
o Free software (GNU Lesser General Public License)
|
||||
o Reentrancy support
|
||||
o Support for known strong algorithms
|
||||
o Support for less-known algorithms such as GOST
|
||||
o Should work on every ANSI C conforming platform
|
||||
|
||||
Disclaimer
|
||||
----------
|
||||
|
||||
Please read the file COPYING before using mhash.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
For installing mhash under Unix please read the document INSTALL.
|
||||
|
||||
New Versions
|
||||
------------
|
||||
|
||||
Information on how to retrieve new versions of mhash can be found on
|
||||
<URL:http://mhash.sourceforge.net>.
|
||||
|
||||
Credits
|
||||
-------
|
||||
|
||||
Please read the file AUTHORS.
|
||||
@@ -0,0 +1,17 @@
|
||||
Blake Stephen <Stephen.Blake@veritect.com>
|
||||
William Ahern <wahern@25thandClement.com>
|
||||
Gordon Mohr <gojomo@usa.net>
|
||||
Sami Farin <sfarin@ratol.fi>
|
||||
Joe Hohertz <jhohertz@wiretap.net>
|
||||
Marios Hadjieleftheriou <marioh@cs.ucr.edu>
|
||||
Gustavo Niemeyer <niemeyer@conectiva.com>
|
||||
Mike Gorchak <mike@malva.ua>
|
||||
Germano Rizzo <mano@pluto.linux.it>
|
||||
Darryl Miles <darryl@netbauds.net>
|
||||
B. Poettering <jkmhash@itaparica.org>
|
||||
Chris Hansom <cph@csail.mi.edu>
|
||||
Heiko Lehmann <hlehmann@fh-lausitz.de>
|
||||
Michael Schwendt <mschwendt@users.sourceforge.net>
|
||||
Wayne <mhash@useunix.net>
|
||||
|
||||
(And countless others, and to all those who intend to contribute in futute)
|
||||
@@ -0,0 +1,23 @@
|
||||
mhash TODO
|
||||
===============================================================================
|
||||
|
||||
- add PANAMA hash algorithm.
|
||||
- add 64 bit version of Tiger.
|
||||
- add all unbroken hash algorithms from Paulo Barreto's "Hashing
|
||||
Function Lounge". In April 2004 these were: Cellhash, Parallel
|
||||
FFT-Hash, Subhash.
|
||||
http://planeta.terra.com.br/informatica/paulobarreto/hflounge.html
|
||||
|
||||
- add a generic support for hash functions built upon block ciphers
|
||||
(Matyas-Meyer-Oseas, Miyaguchi-Preneel, Davies-Meyer, Abreast
|
||||
Davies-Meyer, Tandem Davies-Mayer, etc).
|
||||
|
||||
- It is possible to build block ciphers from hash functions (search
|
||||
the web for "Luby Rackoff" or MDC). Shouldn't mhash contain appropriate
|
||||
routines?
|
||||
|
||||
- If there are any MAC functions in the world, that are not built upon
|
||||
existing block ciphers or hash functions, they might be added to
|
||||
mhash. What about MAA?
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
])
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,207 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(MHASH, 0.9.9, mhash-devel@sourceforge.net)
|
||||
AC_CANONICAL_TARGET
|
||||
AC_CONFIG_SRCDIR([lib/mhash.c])
|
||||
AM_INIT_AUTOMAKE
|
||||
|
||||
AC_DEFINE([MHASH_VERSION], PROGRAM_VERSION, "MHash Version")
|
||||
AC_CONFIG_HEADER([include/mutils/mhash_config.h])
|
||||
|
||||
|
||||
dnl Check system.
|
||||
|
||||
AC_GNU_SOURCE
|
||||
|
||||
AC_AIX
|
||||
|
||||
AC_ISC_POSIX
|
||||
|
||||
AC_MINIX
|
||||
|
||||
dnl Checks for programs.
|
||||
|
||||
AM_PROG_AS
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_C_O
|
||||
AC_PROG_CXX
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
|
||||
dnl Check Make characteristics
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
dnl Check C characteristics
|
||||
|
||||
AC_LANG(C)
|
||||
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_C_PROTOTYPES
|
||||
AC_C_BIGENDIAN
|
||||
|
||||
dnl Miscellaneous checks
|
||||
|
||||
AC_CONST
|
||||
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
dnl Checks for headers
|
||||
|
||||
AC_HEADER_STDBOOL
|
||||
AC_HEADER_STDC
|
||||
|
||||
AC_CHECK_HEADERS(sys/endian.h sys/stat.h sys/types.h sys/mman.h)
|
||||
AC_CHECK_HEADERS(assert.h byteswap.h dlfcn.h ctype.h errno.h)
|
||||
AC_CHECK_HEADERS(endian.h fcntl.h inttypes.h limits.h)
|
||||
AC_CHECK_HEADERS(malloc.h unistd.h utime.h values.h)
|
||||
AC_CHECK_HEADERS(signal.h stdint.h stdio.h stdlib.h string.h strings.h)
|
||||
|
||||
dnl Checks for functions
|
||||
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_MEMCMP
|
||||
|
||||
AC_CHECK_FUNCS(bcopy bzero)
|
||||
AC_CHECK_FUNCS(fcntl fsync)
|
||||
AC_CHECK_FUNCS(memset memmove mlock)
|
||||
AC_CHECK_FUNCS(sigaction signal)
|
||||
AC_CHECK_FUNCS(readdir_r readdir)
|
||||
AC_CHECK_FUNCS(strtol)
|
||||
AC_CHECK_FUNCS(lstat stat)
|
||||
AC_CHECK_FUNCS(umask utime)
|
||||
|
||||
dnl Checks type sizes.
|
||||
|
||||
AC_CHECK_SIZEOF(unsigned long long int, 8)
|
||||
AC_CHECK_SIZEOF(unsigned long int, 4)
|
||||
AC_CHECK_SIZEOF(unsigned int, 4)
|
||||
AC_CHECK_SIZEOF(unsigned short int, 2)
|
||||
AC_CHECK_SIZEOF(unsigned char, 1)
|
||||
|
||||
dnl Checks for optional libraries and tools
|
||||
|
||||
AM_WITH_DMALLOC
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
AC_ARG_WITH(CC,
|
||||
[ --with-CC choose compiler],
|
||||
if test "$withval" != "no" && test "$withval" != "yes" ; then
|
||||
CC="$withval"
|
||||
fi
|
||||
)
|
||||
|
||||
AC_ARG_WITH(CFLAGS,
|
||||
[ --with-CFLAGS set C compiler flags],
|
||||
if test "$withval" != "no" && test "$withval" != "yes" ; then
|
||||
CFLAGS="$withval"
|
||||
fi
|
||||
)
|
||||
|
||||
AC_ARG_WITH(CPPFLAGS,
|
||||
[ --with-CPPFLAGS set C preprocessor flags],
|
||||
if test "$withval" != "no" && test "$withval" != "yes" ; then
|
||||
CPPFLAGS="$withval"
|
||||
fi
|
||||
)
|
||||
|
||||
AC_ARG_WITH(LDFLAGS,
|
||||
[ --with-LDFLAGS set linker flags],
|
||||
if test "$withval" != "no" && test "$withval" != "yes" ; then
|
||||
LDFLAGS="$withval"
|
||||
fi
|
||||
)
|
||||
|
||||
if test x$ac_cv_prog_gcc = xyes; then
|
||||
if test x$opt_maintainer_mode = xyes; then
|
||||
CFLAGS=" -ggdb3 -O2 -Wall -Wpointer-arith"
|
||||
fi
|
||||
|
||||
if test x$opt_dmalloc_mode = xyes; then
|
||||
AC_CHECK_LIB( dmalloc, main)
|
||||
AC_DEFINE(USE_DMALLOC, 1, [dmalloc])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(md5,
|
||||
[ --disable-md5 disable the MD5 algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_MD5, 1, "MD-5 Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(sha1,
|
||||
[ --disable-sha1 disable the SHA1 algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_SHA1, 1, "SHA-1 Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(md4,
|
||||
[ --disable-md4 disable the MD4 algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_MD4, 1, "MD-4 Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(md2,
|
||||
[ --disable-md2 disable the MD2 algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_MD2, 1, "MD-2 Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(tiger,
|
||||
[ --disable-tiger disable the TIGER algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_TIGER, 1, "Tiger Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(haval,
|
||||
[ --disable-haval disable the HAVAL algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_HAVAL, 1, "Haval Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(crc32,
|
||||
[ --disable-crc32 disable the CRC32 algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_CRC32, 1, "CRC32 Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(adler32,
|
||||
[ --disable-adler32 disable the ADLER32 algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_ADLER32, 1, "Adler32 Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(ripemd,
|
||||
[ --disable-ripemd disable the RIPEMD128/160/256/320 algorithms],
|
||||
,
|
||||
AC_DEFINE(ENABLE_RIPEMD, 1, "RIPE-MD - RIPE Substitute for MD"))
|
||||
|
||||
AC_ARG_ENABLE(gost,
|
||||
[ --disable-gost disable the GOST algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_GOST, 1, "GOST Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(sha256-sha224,
|
||||
[ --disable-sha256-sha224 disable the SHA256 and SHA224 algorithms],
|
||||
,
|
||||
AC_DEFINE(ENABLE_SHA256_SHA224, 1, "SHA-224 and SHA-256 - SHA-2 Algorithms"))
|
||||
|
||||
AC_ARG_ENABLE(sha512-sha384,
|
||||
[ --disable-sha512-sha384 disable the SHA512 and SHA384 algorithms],
|
||||
,
|
||||
AC_DEFINE(ENABLE_SHA512_SHA384, 1, "SHA-384 and SHA-512 - SHA-2 Algorithms"))
|
||||
|
||||
AC_ARG_ENABLE(snefru,
|
||||
[ --disable-snefru disable the SNEFRU algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_SNEFRU, 1, "Snefru Algorithm"))
|
||||
|
||||
AC_ARG_ENABLE(whirlpool,
|
||||
[ --disable-whirlpool disable the WHIRLPOOL algorithm],
|
||||
,
|
||||
AC_DEFINE(ENABLE_WHIRLPOOL, 1, "Whirlpool Algorithm"))
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
mhash.spec
|
||||
include/Makefile
|
||||
doc/Makefile
|
||||
src/Makefile
|
||||
lib/Makefile])
|
||||
AC_OUTPUT
|
||||
@@ -0,0 +1,522 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2004-05-31.23
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program 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 General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit 0
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test -f "$tmpdepfile"; then :
|
||||
else
|
||||
stripped=`echo "$stripped" | sed 's,^.*/,,'`
|
||||
tmpdepfile="$stripped.u"
|
||||
fi
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile"; then
|
||||
outname="$stripped.o"
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# Dependencies are output in .lo.d with libtool 1.4.
|
||||
# With libtool 1.5 they are output both in $dir.libs/$base.o.d
|
||||
# and in $dir.libs/$base.o.d and $dir$base.o.d. We process the
|
||||
# latter, because the former will be cleaned when $dir.libs is
|
||||
# erased.
|
||||
tmpdepfile1="$dir.libs/$base.lo.d"
|
||||
tmpdepfile2="$dir$base.o.d"
|
||||
tmpdepfile3="$dir.libs/$base.d"
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1="$dir$base.o.d"
|
||||
tmpdepfile2="$dir$base.d"
|
||||
tmpdepfile3="$dir$base.d"
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile1"; then
|
||||
tmpdepfile="$tmpdepfile1"
|
||||
elif test -f "$tmpdepfile2"; then
|
||||
tmpdepfile="$tmpdepfile2"
|
||||
else
|
||||
tmpdepfile="$tmpdepfile3"
|
||||
fi
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
"$@" || exit $?
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
@@ -0,0 +1,6 @@
|
||||
#AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
nobase_include_HEADERS = mhash.h mutils/mhash.h mutils/mglobal.h mutils/mtypes.h mutils/mutils.h mutils/mhash_config.h mutils/mincludes.h
|
||||
|
||||
dist-hook:
|
||||
find $(distdir) -name CVS -o -name .cvsignore | xargs rm -rf
|
||||
@@ -0,0 +1,417 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = include
|
||||
DIST_COMMON = $(nobase_include_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/mutils/mhash_config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(includedir)"
|
||||
nobase_includeHEADERS_INSTALL = $(install_sh_DATA)
|
||||
HEADERS = $(nobase_include_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCAS = @CCAS@
|
||||
CCASFLAGS = @CCASFLAGS@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
nobase_include_HEADERS = mhash.h mutils/mhash.h mutils/mglobal.h mutils/mtypes.h mutils/mutils.h mutils/mhash_config.h mutils/mincludes.h
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu include/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-nobase_includeHEADERS: $(nobase_include_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
|
||||
@$(am__vpath_adj_setup) \
|
||||
list='$(nobase_include_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
$(am__vpath_adj) \
|
||||
echo " $(nobase_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
|
||||
$(nobase_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-nobase_includeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@$(am__vpath_adj_setup) \
|
||||
list='$(nobase_include_HEADERS)'; for p in $$list; do \
|
||||
$(am__vpath_adj) \
|
||||
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(includedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(mkdir_p) $(distdir)/mutils
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(includedir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-nobase_includeHEADERS
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am uninstall-nobase_includeHEADERS
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool ctags dist-hook distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-nobase_includeHEADERS \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-info-am \
|
||||
uninstall-nobase_includeHEADERS
|
||||
|
||||
|
||||
dist-hook:
|
||||
find $(distdir) -name CVS -o -name .cvsignore | xargs rm -rf
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,13 @@
|
||||
#if !defined(__MHASH_H)
|
||||
#define __MHASH_H
|
||||
|
||||
#define MUTILS_USE_MHASH_CONFIG
|
||||
|
||||
#include <mutils/mincludes.h>
|
||||
#include <mutils/mglobal.h>
|
||||
#include <mutils/mtypes.h>
|
||||
#include <mutils/mutils.h>
|
||||
#include <mutils/mhash.h>
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Jonathan Day, Nikos Mavroyanopoulos
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Library General Public License as published
|
||||
* by the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(__MGLOBAL_H)
|
||||
#define __MGLOBAL_H
|
||||
|
||||
#define MHASH_API_NONE 0
|
||||
#define MHASH_API_CLASSIC 1
|
||||
#define MHASH_API_FAMILY 2
|
||||
|
||||
#define MHASH_API_VERSION 20060101
|
||||
#define MHASH_API_TYPE MHASH_API_CLASSIC
|
||||
/* #define MHASH_API_TYPE MHASH_API_FAMILY */
|
||||
#define MHASH_API_FULL
|
||||
|
||||
typedef enum __hashid {
|
||||
#if (MHASH_API_TYPE == MHASH_API_CLASSIC)
|
||||
MHASH_CRC32 = 0,
|
||||
MHASH_MD5 = 1,
|
||||
MHASH_SHA1 = 2,
|
||||
MHASH_HAVAL256 = 3,
|
||||
MHASH_RIPEMD160 = 5,
|
||||
MHASH_TIGER192 = 7,
|
||||
MHASH_GOST = 8,
|
||||
MHASH_CRC32B = 9,
|
||||
MHASH_HAVAL224 = 10,
|
||||
MHASH_HAVAL192 = 11,
|
||||
MHASH_HAVAL160 = 12,
|
||||
MHASH_HAVAL128 = 13,
|
||||
MHASH_TIGER128 = 14,
|
||||
MHASH_TIGER160 = 15,
|
||||
MHASH_MD4 = 16,
|
||||
MHASH_SHA256 = 17,
|
||||
MHASH_ADLER32 = 18,
|
||||
MHASH_SHA224 = 19,
|
||||
MHASH_SHA512 = 20,
|
||||
MHASH_SHA384 = 21,
|
||||
MHASH_WHIRLPOOL = 22,
|
||||
MHASH_RIPEMD128 = 23,
|
||||
MHASH_RIPEMD256 = 24,
|
||||
MHASH_RIPEMD320 = 25,
|
||||
MHASH_SNEFRU128 = 26,
|
||||
MHASH_SNEFRU256 = 27,
|
||||
MHASH_MD2 = 28,
|
||||
MHASH_AR = 64, /* NOT YET IMPLEMENTED */
|
||||
MHASH_BOOGNISH = 65, /* NOT YET IMPLEMENTED */
|
||||
MHASH_CELLHASH = 66, /* NOT YET IMPLEMENTED */
|
||||
MHASH_FFT_HASH_I = 67, /* NOT YET IMPLEMENTED */
|
||||
MHASH_FFT_HASH_II = 68, /* NOT YET IMPLEMENTED */
|
||||
MHASH_NHASH = 69, /* NOT YET IMPLEMENTED */
|
||||
MHASH_PANAMA = 70, /* NOT YET IMPLEMENTED */
|
||||
MHASH_SMASH = 71, /* NOT YET IMPLEMENTED */
|
||||
MHASH_SUBHASH = 72 /* NOT YET IMPLEMENTED */
|
||||
#endif
|
||||
#if (MHASH_API_TYPE == MHASH_API_FAMILY)
|
||||
MHASH_CRC32 = 0x0001,
|
||||
MHASH_CRC32B = 0x0002,
|
||||
MHASH_ADLER32 = 0x0011,
|
||||
MHASH_MD2 = 0x0101,
|
||||
MHASH_MD4 = 0x0111,
|
||||
MHASH_RIPEMD128 = 0x0112,
|
||||
MHASH_RIPEMD160 = 0x0113,
|
||||
MHASH_RIPEMD256 = 0x0114,
|
||||
MHASH_RIPEMD320 = 0x0115,
|
||||
MHASH_MD5 = 0x0121,
|
||||
MHASH_SHA1 = 0x0201,
|
||||
MHASH_SHA224 = 0x0201,
|
||||
MHASH_SHA256 = 0x0202,
|
||||
MHASH_SHA384 = 0x0203,
|
||||
MHASH_SHA512 = 0x0204,
|
||||
MHASH_HAVAL128 = 0x0301,
|
||||
MHASH_HAVAL160 = 0x0302,
|
||||
MHASH_HAVAL192 = 0x0303,
|
||||
MHASH_HAVAL224 = 0x0304,
|
||||
MHASH_HAVAL256 = 0x0305, /* 3 passes */
|
||||
MHASH_TIGER128 = 0x0401,
|
||||
MHASH_TIGER160 = 0x0402,
|
||||
MHASH_TIGER192 = 0x0403,
|
||||
MHASH_GOST = 0x0501,
|
||||
MHASH_WHIRLPOOL = 0x0601,
|
||||
MHASH_SNEFRU128 = 0x0701, /* 8 passes */
|
||||
MHASH_SNEFRU256 = 0x0702, /* 8 passes */
|
||||
MHASH_AR = 0x0801, /* NOT YET IMPLEMENTED */
|
||||
MHASH_BOOGNISH = 0x0901, /* NOT YET IMPLEMENTED */
|
||||
MHASH_CELLHASH = 0x0a01, /* NOT YET IMPLEMENTED */
|
||||
MHASH_FFT_HASH_I = 0x0b01, /* NOT YET IMPLEMENTED */
|
||||
MHASH_FFT_HASH_II = 0x0b02, /* NOT YET IMPLEMENTED */
|
||||
MHASH_NHASH = 0x0c01, /* NOT YET IMPLEMENTED */
|
||||
MHASH_PANAMA = 0x0d01, /* NOT YET IMPLEMENTED */
|
||||
MHASH_SMASH = 0x0e01, /* NOT YET IMPLEMENTED */
|
||||
MHASH_SUBHASH = 0x0f01 /* NOT YET IMPLEMENTED */
|
||||
#endif
|
||||
} hashid;
|
||||
|
||||
/* These aliases are actually quite useful and so will be kept */
|
||||
|
||||
#define MHASH_HAVAL MHASH_HAVAL256
|
||||
#define MHASH_TIGER MHASH_TIGER192
|
||||
|
||||
typedef enum __keygenid {
|
||||
KEYGEN_MCRYPT, /* The key generator used in mcrypt */
|
||||
KEYGEN_ASIS, /* Just returns the password as binary key */
|
||||
KEYGEN_HEX, /* Just converts a hex key into a binary one */
|
||||
KEYGEN_PKDES, /* The transformation used in Phil Karn's DES
|
||||
* encryption program */
|
||||
KEYGEN_S2K_SIMPLE, /* The OpenPGP (rfc2440) Simple S2K */
|
||||
KEYGEN_S2K_SALTED, /* The OpenPGP Salted S2K */
|
||||
KEYGEN_S2K_ISALTED /* The OpenPGP Iterated Salted S2K */
|
||||
} keygenid;
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,185 @@
|
||||
/*
|
||||
* Copyright (C) 1998 Nikos Mavroyanopoulos
|
||||
* Copyright (C) 1999,2000 Sascha Schumman, Nikos Mavroyanopoulos
|
||||
* Copyright (C) 2001 Nikos Mavroyanopoulos
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Library General Public License as published
|
||||
* by the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(__MUTILS_MHASH_H)
|
||||
#define __MUTILS_MHASH_H
|
||||
|
||||
/* $Id: mhash.h,v 1.2 2006/01/09 07:27:04 imipak Exp $ */
|
||||
|
||||
#if defined(MUTILS_USE_MHASH_CONFIG)
|
||||
#include <mutils/mhash_config.h>
|
||||
#endif
|
||||
|
||||
#include <mutils/mglobal.h>
|
||||
#include <mutils/mutils.h>
|
||||
#include <mutils/mtypes.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* these are for backwards compatibility and will
|
||||
be removed at some time */
|
||||
#ifdef MHASH_BACKWARDS_COMPATIBLE
|
||||
# define hmac_mhash_init mhash_hmac_init
|
||||
# define hmac_mhash_end mhash_hmac_end
|
||||
#endif
|
||||
|
||||
/* typedefs */
|
||||
|
||||
typedef struct mhash_hash_entry mhash_hash_entry;
|
||||
|
||||
#if defined(PROTOTYPES)
|
||||
|
||||
/* information prototypes */
|
||||
|
||||
mutils_word32 mhash_count(void);
|
||||
mutils_word32 mhash_get_block_size(hashid type);
|
||||
mutils_word8 *mhash_get_hash_name(hashid type);
|
||||
void mhash_free(void *ptr);
|
||||
|
||||
__const mutils_word8 *mhash_get_hash_name_static(hashid type);
|
||||
|
||||
/* initializing prototypes */
|
||||
|
||||
MHASH mhash_init(hashid type);
|
||||
|
||||
/* copy prototypes */
|
||||
|
||||
MHASH mhash_cp(MHASH from);
|
||||
|
||||
/* update prototype */
|
||||
|
||||
mutils_boolean mhash(MHASH thread, const void *plaintext, mutils_word32 size);
|
||||
|
||||
/* finalizing prototype */
|
||||
|
||||
void *mhash_end(MHASH thread);
|
||||
void *mhash_end_m(MHASH thread, void *(*hash_malloc) (mutils_word32));
|
||||
void mhash_deinit(MHASH thread, void *result);
|
||||
|
||||
/* informational */
|
||||
|
||||
mutils_word32 mhash_get_hash_pblock(hashid type);
|
||||
hashid mhash_get_mhash_algo(MHASH tmp);
|
||||
|
||||
/* HMAC */
|
||||
|
||||
MHASH mhash_hmac_init(const hashid type, void *key, mutils_word32 keysize, mutils_word32 block);
|
||||
void *mhash_hmac_end_m(MHASH thread, void *(*hash_malloc) (mutils_word32));
|
||||
void *mhash_hmac_end(MHASH thread);
|
||||
mutils_boolean mhash_hmac_deinit(MHASH thread, void *result);
|
||||
|
||||
/* Save state functions */
|
||||
|
||||
mutils_boolean mhash_save_state_mem(MHASH thread, void *mem, mutils_word32 *mem_size);
|
||||
MHASH mhash_restore_state_mem(void *mem);
|
||||
|
||||
/* Key generation functions */
|
||||
|
||||
mutils_error mhash_keygen(keygenid algorithm, hashid opt_algorithm,
|
||||
mutils_word64 count,
|
||||
void *keyword, mutils_word32 keysize,
|
||||
void *salt, mutils_word32 saltsize,
|
||||
mutils_word8 *password, mutils_word32 passwordlen);
|
||||
|
||||
mutils_error mhash_keygen_ext(keygenid algorithm, KEYGEN data,
|
||||
void *keyword, mutils_word32 keysize,
|
||||
mutils_word8 *password, mutils_word32 passwordlen);
|
||||
|
||||
mutils_word8 *mhash_get_keygen_name(keygenid type);
|
||||
|
||||
mutils_word32 mhash_get_keygen_salt_size(keygenid type);
|
||||
mutils_word32 mhash_get_keygen_max_key_size(keygenid type);
|
||||
mutils_word32 mhash_keygen_count(void);
|
||||
|
||||
mutils_boolean mhash_keygen_uses_salt(keygenid type);
|
||||
mutils_boolean mhash_keygen_uses_count(keygenid type);
|
||||
mutils_boolean mhash_keygen_uses_hash_algorithm(keygenid type);
|
||||
|
||||
#else
|
||||
|
||||
/* information prototypes */
|
||||
|
||||
mutils_word32 mhash_count();
|
||||
mutils_word32 mhash_get_block_size();
|
||||
mutils_word8 *mhash_get_hash_name();
|
||||
void mhash_free();
|
||||
|
||||
__const mutils_word8 *mhash_get_hash_name_static();
|
||||
|
||||
/* initializing prototypes */
|
||||
|
||||
MHASH mhash_init();
|
||||
|
||||
/* copy prototypes */
|
||||
|
||||
MHASH mhash_cp();
|
||||
|
||||
/* update prototype */
|
||||
|
||||
mutils_boolean mhash();
|
||||
|
||||
/* finalizing prototype */
|
||||
|
||||
void *mhash_end();
|
||||
void *mhash_end_m();
|
||||
void mhash_deinit();
|
||||
|
||||
/* informational */
|
||||
|
||||
mutils_word32 mhash_get_hash_pblock();
|
||||
hashid mhash_get_mhash_algo();
|
||||
|
||||
/* HMAC */
|
||||
|
||||
MHASH mhash_hmac_init();
|
||||
void *mhash_hmac_end_m();
|
||||
void *mhash_hmac_end();
|
||||
mutils_boolean mhash_hmac_deinit();
|
||||
|
||||
/* Save state functions */
|
||||
|
||||
mutils_boolean mhash_save_state_mem();
|
||||
MHASH mhash_restore_state_mem();
|
||||
|
||||
/* Key generation functions */
|
||||
|
||||
mutils_error mhash_keygen();
|
||||
mutils_error mhash_keygen_ext();
|
||||
|
||||
mutils_word8 *mhash_get_keygen_name();
|
||||
|
||||
mutils_word32 mhash_get_keygen_salt_size();
|
||||
mutils_word32 mhash_get_keygen_max_key_size();
|
||||
mutils_word32 mhash_keygen_count();
|
||||
|
||||
mutils_boolean mhash_keygen_uses_salt();
|
||||
mutils_boolean mhash_keygen_uses_count();
|
||||
mutils_boolean mhash_keygen_uses_hash_algorithm();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* !MHASH_H */
|
||||
@@ -0,0 +1,260 @@
|
||||
/* include/mutils/mhash_config.h. Generated from mhash_config.h.in by configure. */
|
||||
/* include/mutils/mhash_config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* "Adler32 Algorithm" */
|
||||
#define ENABLE_ADLER32 1
|
||||
|
||||
/* "CRC32 Algorithm" */
|
||||
#define ENABLE_CRC32 1
|
||||
|
||||
/* "GOST Algorithm" */
|
||||
#define ENABLE_GOST 1
|
||||
|
||||
/* "Haval Algorithm" */
|
||||
#define ENABLE_HAVAL 1
|
||||
|
||||
/* "MD-2 Algorithm" */
|
||||
#define ENABLE_MD2 1
|
||||
|
||||
/* "MD-4 Algorithm" */
|
||||
#define ENABLE_MD4 1
|
||||
|
||||
/* "MD-5 Algorithm" */
|
||||
#define ENABLE_MD5 1
|
||||
|
||||
/* "RIPE-MD - RIPE Substitute for MD" */
|
||||
#define ENABLE_RIPEMD 1
|
||||
|
||||
/* "SHA-1 Algorithm" */
|
||||
#define ENABLE_SHA1 1
|
||||
|
||||
/* "SHA-224 and SHA-256 - SHA-2 Algorithms" */
|
||||
#define ENABLE_SHA256_SHA224 1
|
||||
|
||||
/* "SHA-384 and SHA-512 - SHA-2 Algorithms" */
|
||||
#define ENABLE_SHA512_SHA384 1
|
||||
|
||||
/* "Snefru Algorithm" */
|
||||
#define ENABLE_SNEFRU 1
|
||||
|
||||
/* "Tiger Algorithm" */
|
||||
#define ENABLE_TIGER 1
|
||||
|
||||
/* "Whirlpool Algorithm" */
|
||||
#define ENABLE_WHIRLPOOL 1
|
||||
|
||||
/* Define to 1 if you have the <assert.h> header file. */
|
||||
#define HAVE_ASSERT_H 1
|
||||
|
||||
/* Define to 1 if you have the `bcopy' function. */
|
||||
#define HAVE_BCOPY 1
|
||||
|
||||
/* Define to 1 if you have the <byteswap.h> header file. */
|
||||
#define HAVE_BYTESWAP_H 1
|
||||
|
||||
/* Define to 1 if you have the `bzero' function. */
|
||||
#define HAVE_BZERO 1
|
||||
|
||||
/* Define to 1 if you have the <ctype.h> header file. */
|
||||
#define HAVE_CTYPE_H 1
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#define HAVE_DLFCN_H 1
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
#define HAVE_ENDIAN_H 1
|
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */
|
||||
#define HAVE_ERRNO_H 1
|
||||
|
||||
/* Define to 1 if you have the `fcntl' function. */
|
||||
#define HAVE_FCNTL 1
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
/* Define to 1 if you have the `fsync' function. */
|
||||
#define HAVE_FSYNC 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
|
||||
/* #undef HAVE_LIBDMALLOC */
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define to 1 if you have the `lstat' function. */
|
||||
#define HAVE_LSTAT 1
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#define HAVE_MALLOC 1
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#define HAVE_MALLOC_H 1
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#define HAVE_MEMMOVE 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#define HAVE_MEMSET 1
|
||||
|
||||
/* Define to 1 if you have the `mlock' function. */
|
||||
#define HAVE_MLOCK 1
|
||||
|
||||
/* Define to 1 if you have the `readdir' function. */
|
||||
#define HAVE_READDIR 1
|
||||
|
||||
/* Define to 1 if you have the `readdir_r' function. */
|
||||
#define HAVE_READDIR_R 1
|
||||
|
||||
/* Define to 1 if you have the `sigaction' function. */
|
||||
#define HAVE_SIGACTION 1
|
||||
|
||||
/* Define to 1 if you have the `signal' function. */
|
||||
#define HAVE_SIGNAL 1
|
||||
|
||||
/* Define to 1 if you have the <signal.h> header file. */
|
||||
#define HAVE_SIGNAL_H 1
|
||||
|
||||
/* Define to 1 if you have the `stat' function. */
|
||||
#define HAVE_STAT 1
|
||||
|
||||
/* Define to 1 if stdbool.h conforms to C99. */
|
||||
#define HAVE_STDBOOL_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#define HAVE_STDIO_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#define HAVE_STRTOL 1
|
||||
|
||||
/* Define to 1 if you have the <sys/endian.h> header file. */
|
||||
/* #undef HAVE_SYS_ENDIAN_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `umask' function. */
|
||||
#define HAVE_UMASK 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `utime' function. */
|
||||
#define HAVE_UTIME 1
|
||||
|
||||
/* Define to 1 if you have the <utime.h> header file. */
|
||||
#define HAVE_UTIME_H 1
|
||||
|
||||
/* Define to 1 if you have the <values.h> header file. */
|
||||
#define HAVE_VALUES_H 1
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#define HAVE__BOOL 1
|
||||
|
||||
/* "MHash Version" */
|
||||
#define MHASH_VERSION PROGRAM_VERSION
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
/* #undef NO_MINUS_C_MINUS_O */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "mhash"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "mhash-devel@sourceforge.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "MHASH"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "MHASH 0.9.9"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "mhash"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "0.9.9"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* dmalloc */
|
||||
/* #undef USE_DMALLOC */
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "0.9.9"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
/* #undef WORDS_BIGENDIAN */
|
||||
|
||||
/* Define to 1 if on AIX 3.
|
||||
System headers sometimes define this.
|
||||
We just want to avoid a redefinition error message. */
|
||||
#ifndef _ALL_SOURCE
|
||||
/* # undef _ALL_SOURCE */
|
||||
#endif
|
||||
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
/* #undef _MINIX */
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
/* #undef _POSIX_1_SOURCE */
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
/* #undef _POSIX_SOURCE */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
/* #undef malloc */
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
@@ -0,0 +1,259 @@
|
||||
/* include/mutils/mhash_config.h.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* "Adler32 Algorithm" */
|
||||
#undef ENABLE_ADLER32
|
||||
|
||||
/* "CRC32 Algorithm" */
|
||||
#undef ENABLE_CRC32
|
||||
|
||||
/* "GOST Algorithm" */
|
||||
#undef ENABLE_GOST
|
||||
|
||||
/* "Haval Algorithm" */
|
||||
#undef ENABLE_HAVAL
|
||||
|
||||
/* "MD-2 Algorithm" */
|
||||
#undef ENABLE_MD2
|
||||
|
||||
/* "MD-4 Algorithm" */
|
||||
#undef ENABLE_MD4
|
||||
|
||||
/* "MD-5 Algorithm" */
|
||||
#undef ENABLE_MD5
|
||||
|
||||
/* "RIPE-MD - RIPE Substitute for MD" */
|
||||
#undef ENABLE_RIPEMD
|
||||
|
||||
/* "SHA-1 Algorithm" */
|
||||
#undef ENABLE_SHA1
|
||||
|
||||
/* "SHA-224 and SHA-256 - SHA-2 Algorithms" */
|
||||
#undef ENABLE_SHA256_SHA224
|
||||
|
||||
/* "SHA-384 and SHA-512 - SHA-2 Algorithms" */
|
||||
#undef ENABLE_SHA512_SHA384
|
||||
|
||||
/* "Snefru Algorithm" */
|
||||
#undef ENABLE_SNEFRU
|
||||
|
||||
/* "Tiger Algorithm" */
|
||||
#undef ENABLE_TIGER
|
||||
|
||||
/* "Whirlpool Algorithm" */
|
||||
#undef ENABLE_WHIRLPOOL
|
||||
|
||||
/* Define to 1 if you have the <assert.h> header file. */
|
||||
#undef HAVE_ASSERT_H
|
||||
|
||||
/* Define to 1 if you have the `bcopy' function. */
|
||||
#undef HAVE_BCOPY
|
||||
|
||||
/* Define to 1 if you have the <byteswap.h> header file. */
|
||||
#undef HAVE_BYTESWAP_H
|
||||
|
||||
/* Define to 1 if you have the `bzero' function. */
|
||||
#undef HAVE_BZERO
|
||||
|
||||
/* Define to 1 if you have the <ctype.h> header file. */
|
||||
#undef HAVE_CTYPE_H
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
#undef HAVE_ENDIAN_H
|
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */
|
||||
#undef HAVE_ERRNO_H
|
||||
|
||||
/* Define to 1 if you have the `fcntl' function. */
|
||||
#undef HAVE_FCNTL
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the `fsync' function. */
|
||||
#undef HAVE_FSYNC
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
|
||||
#undef HAVE_LIBDMALLOC
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if you have the `lstat' function. */
|
||||
#undef HAVE_LSTAT
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#undef HAVE_MALLOC_H
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the `mlock' function. */
|
||||
#undef HAVE_MLOCK
|
||||
|
||||
/* Define to 1 if you have the `readdir' function. */
|
||||
#undef HAVE_READDIR
|
||||
|
||||
/* Define to 1 if you have the `readdir_r' function. */
|
||||
#undef HAVE_READDIR_R
|
||||
|
||||
/* Define to 1 if you have the `sigaction' function. */
|
||||
#undef HAVE_SIGACTION
|
||||
|
||||
/* Define to 1 if you have the `signal' function. */
|
||||
#undef HAVE_SIGNAL
|
||||
|
||||
/* Define to 1 if you have the <signal.h> header file. */
|
||||
#undef HAVE_SIGNAL_H
|
||||
|
||||
/* Define to 1 if you have the `stat' function. */
|
||||
#undef HAVE_STAT
|
||||
|
||||
/* Define to 1 if stdbool.h conforms to C99. */
|
||||
#undef HAVE_STDBOOL_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdio.h> header file. */
|
||||
#undef HAVE_STDIO_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#undef HAVE_STRTOL
|
||||
|
||||
/* Define to 1 if you have the <sys/endian.h> header file. */
|
||||
#undef HAVE_SYS_ENDIAN_H
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
#undef HAVE_SYS_MMAN_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the `umask' function. */
|
||||
#undef HAVE_UMASK
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `utime' function. */
|
||||
#undef HAVE_UTIME
|
||||
|
||||
/* Define to 1 if you have the <utime.h> header file. */
|
||||
#undef HAVE_UTIME_H
|
||||
|
||||
/* Define to 1 if you have the <values.h> header file. */
|
||||
#undef HAVE_VALUES_H
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#undef HAVE__BOOL
|
||||
|
||||
/* "MHash Version" */
|
||||
#undef MHASH_VERSION
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#undef NO_MINUS_C_MINUS_O
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#undef PROTOTYPES
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* dmalloc */
|
||||
#undef USE_DMALLOC
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
#undef WITH_DMALLOC
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
#undef WORDS_BIGENDIAN
|
||||
|
||||
/* Define to 1 if on AIX 3.
|
||||
System headers sometimes define this.
|
||||
We just want to avoid a redefinition error message. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
#undef _MINIX
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
#undef _POSIX_1_SOURCE
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
#undef _POSIX_SOURCE
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#undef __PROTOTYPES
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Jonathan Day, Nikos Mavroyanopoulos
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Library General Public License as published
|
||||
* by the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* The function of this header is to make sure that all system-specific headers
|
||||
* files that are required are included. Eventually, system headers will only
|
||||
* be pulled in when local definitions don't exist or are suboptimal.
|
||||
*
|
||||
* For now, we're also defining MAXINT and MININT in here, as there are
|
||||
* reported problems with the way we're trying to find it.
|
||||
*/
|
||||
|
||||
#if !defined(__MINCLUDES_H)
|
||||
#define __MINCLUDES_H
|
||||
|
||||
#if defined(MUTILS_USE_MHASH_CONFIG)
|
||||
#include <mutils/mhash_config.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_LIMITS_H)
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STDBOOL_H)
|
||||
#include <stdbool.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_CTYPE_H)
|
||||
#include <ctype.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SYS_TYPES_H)
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_ASSERT_H)
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRINGS_H)
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRING_H)
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_MALLOC_H)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STDIO_H)
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STDLIB_H)
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_UNISTD_H)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_VALUES_H)
|
||||
#include <values.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SYS_MMAN_H)
|
||||
#include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_ERRNO_H)
|
||||
#include <errno.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_ERROR_H)
|
||||
#include <error.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_INTTYPES_H)
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STDINT_H)
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
#if !defined(INT_MAX)
|
||||
#define INT_MAX ((int) (~0U>>1))
|
||||
#endif
|
||||
|
||||
#if !defined(MAXINT)
|
||||
#define MAXINT INT_MAX
|
||||
#endif
|
||||
|
||||
#if !defined(INT_MIN)
|
||||
#define INT_MIN (-INT_MAX - 1)
|
||||
#endif
|
||||
|
||||
#if !defined(MININT)
|
||||
#define MININT INT_MIN
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Jonathan Day, Nikos Mavroyanopoulos
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Library General Public License as published
|
||||
* by the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(__MTYPES_H)
|
||||
#define __MTYPES_H
|
||||
|
||||
#include <mutils/mutils.h>
|
||||
|
||||
typedef struct __KEYGEN
|
||||
{
|
||||
hashid hash_algorithm[2];
|
||||
mutils_word32 count;
|
||||
void *salt;
|
||||
mutils_word32 salt_size;
|
||||
} KEYGEN;
|
||||
|
||||
typedef void (*INIT_FUNC)( void*);
|
||||
typedef void (*HASH_FUNC)(void*, const void*, int);
|
||||
typedef void (*FINAL_FUNC)(void*);
|
||||
typedef void (*DEINIT_FUNC)(void*, unsigned char*);
|
||||
|
||||
typedef struct __MHASH_INSTANCE
|
||||
{
|
||||
mutils_word32 hmac_key_size;
|
||||
mutils_word32 hmac_block;
|
||||
mutils_word8 *hmac_key;
|
||||
|
||||
mutils_word8 *state;
|
||||
mutils_word32 state_size;
|
||||
hashid algorithm_given;
|
||||
|
||||
HASH_FUNC hash_func;
|
||||
FINAL_FUNC final_func;
|
||||
DEINIT_FUNC deinit_func;
|
||||
} MHASH_INSTANCE;
|
||||
|
||||
typedef MHASH_INSTANCE *MHASH;
|
||||
|
||||
#define MHASH_FAILED ((MHASH) 0x0)
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,255 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Jonathan Day, Nikos Mavroyanopoulos
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Library General Public License as published
|
||||
* by the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(__MUTILS_H)
|
||||
#define __MUTILS_H
|
||||
|
||||
#include <mutils/mincludes.h>
|
||||
|
||||
#if defined(const)
|
||||
#define __const const
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The vast majority of user code won't care about mutils, so changes to
|
||||
* this helper library API should not result in a change to the MHASH API
|
||||
* version number.
|
||||
*/
|
||||
|
||||
#define MUTILS_API 20060624
|
||||
|
||||
/* FIXME: We're assuming we've a standard integer types header and that it has been included
|
||||
* correctly.
|
||||
*/
|
||||
|
||||
#define MUTILS_STANDARD_TYPES 1
|
||||
|
||||
#if defined(MUTILS_STANDARD_TYPES)
|
||||
|
||||
#define TIGER_64BIT
|
||||
|
||||
#define mutils_word64 uint64_t
|
||||
#define mutils_word32 uint32_t
|
||||
#define mutils_word16 uint16_t
|
||||
#define mutils_word8 uint8_t
|
||||
|
||||
#else /* Ok, we don't have the standard integer type definitions */
|
||||
|
||||
#if SIZEOF_UNSIGNED_LONG_INT == 8
|
||||
typedef unsigned long int mutils_word64;
|
||||
#define TIGER_64BIT
|
||||
#elif SIZEOF_UNSIGNED_LONG_LONG_INT == 8
|
||||
typedef unsigned long long int mutils_word64;
|
||||
#else
|
||||
#error "Cannot find a 64 bit integer in your system, sorry."
|
||||
#endif
|
||||
|
||||
#if SIZEOF_UNSIGNED_LONG_INT == 4
|
||||
typedef unsigned long int mutils_word32;
|
||||
#elif SIZEOF_UNSIGNED_INT == 4
|
||||
typedef unsigned int mutils_word32;
|
||||
#else
|
||||
#error "Cannot find a 32 bit integer in your system, sorry."
|
||||
#endif
|
||||
|
||||
#if SIZEOF_UNSIGNED_INT == 2
|
||||
typedef unsigned int mutils_word16;
|
||||
#elif SIZEOF_UNSIGNED_SHORT_INT == 2
|
||||
typedef unsigned short int mutils_word16;
|
||||
#else
|
||||
#error "Cannot find a 16 bit integer in your system, sorry."
|
||||
#endif
|
||||
|
||||
#if SIZEOF_UNSIGNED_CHAR == 1
|
||||
typedef unsigned char mutils_word8;
|
||||
#else
|
||||
#error "Cannot find an 8 bit char in your system, sorry."
|
||||
#endif
|
||||
|
||||
#endif /* End of standard integer type declarationsd */
|
||||
|
||||
/*
|
||||
* Due to buggy implementations of the boolean headers in some systems,
|
||||
* we have to detect the boolean values seperately from the boolean type.
|
||||
* A big thank you to Heiko Lehmann for spotting the bug. Unfortunately,
|
||||
* this fix may not be enough, as it is only going to work on things the
|
||||
* precompiler knows about.
|
||||
*
|
||||
* Why go to all this trouble over something that should have a standard
|
||||
* value anyway? Because.
|
||||
*/
|
||||
|
||||
#if defined(HAVE__BOOL)
|
||||
#define mutils_boolean _Bool
|
||||
#else
|
||||
typedef char mutils_boolean;
|
||||
#endif
|
||||
|
||||
#if defined(false)
|
||||
#define MUTILS_FALSE (mutils_boolean) false
|
||||
#else
|
||||
#if defined(FALSE)
|
||||
#define MUTILS_FALSE (mutils_boolean) FALSE
|
||||
#else
|
||||
#define MUTILS_FALSE (mutils_boolean) 0
|
||||
#endif /* FALSE */
|
||||
#endif /* false */
|
||||
|
||||
#if defined(true)
|
||||
#define MUTILS_TRUE (mutils_boolean) true
|
||||
#else
|
||||
#if defined(TRUE)
|
||||
#define MUTILS_TRUE (mutils_boolean) TRUE
|
||||
#else
|
||||
#define MUTILS_TRUE (mutils_boolean) -1
|
||||
#endif /* TRUE */
|
||||
#endif /* true */
|
||||
|
||||
/*
|
||||
* Other than OK, the only defined values should be for a category of error.
|
||||
* Even then, the values shouldn't be assumed. Their only function is to
|
||||
* make it easy to programmatically identify the nature of the error and to
|
||||
* ensure a library upgrade won't break existing binaries, should new error
|
||||
* codes be introduced.
|
||||
*/
|
||||
|
||||
typedef enum __mutils_error_codes
|
||||
{
|
||||
MUTILS_OK = 0,
|
||||
MUTILS_SYSTEM_ERROR = 0x100,
|
||||
MUTILS_UNSPECIFIED_ERROR,
|
||||
MUTILS_SYSTEM_RESOURCE_ERROR,
|
||||
MUTILS_PARAMETER_ERROR = 0x200,
|
||||
MUTILS_INVALID_FUNCTION,
|
||||
MUTILS_INVALID_INPUT_BUFFER,
|
||||
MUTILS_INVALID_OUTPUT_BUFFER,
|
||||
MUTILS_INVALID_PASSES,
|
||||
MUTILS_INVALID_FORMAT,
|
||||
MUTILS_INVALID_SIZE,
|
||||
MUTILS_INVALID_RESULT
|
||||
} mutils_error_codes;
|
||||
|
||||
#define mutils_error mutils_word32
|
||||
|
||||
#include <mutils/mglobal.h>
|
||||
|
||||
/*
|
||||
* Some useful, generic endian macros.
|
||||
*/
|
||||
|
||||
#define mutils_swapendian64(x) \
|
||||
((mutils_word64) \
|
||||
(((x) & 0xff00000000000000ull) >> 56) | \
|
||||
(((x) & 0x00ff000000000000ull) >> 40) | \
|
||||
(((x) & 0x0000ff0000000000ull) >> 24) | \
|
||||
(((x) & 0x000000ff00000000ull) >> 8) | \
|
||||
(((x) & 0x00000000ff000000ull) << 8) | \
|
||||
(((x) & 0x0000000000ff0000ull) << 24) | \
|
||||
(((x) & 0x000000000000ff00ull) << 40) | \
|
||||
(((x) & 0x00000000000000ffull) << 56))
|
||||
|
||||
#define mutils_swapendian32(a) \
|
||||
((mutils_word32) \
|
||||
(((a & (mutils_word32) 0x000000ffU) << 24) | \
|
||||
((a & (mutils_word32) 0x0000ff00U) << 8) | \
|
||||
((a & (mutils_word32) 0x00ff0000U) >> 8) | \
|
||||
((a & (mutils_word32) 0xff000000U) >> 24)) \
|
||||
)
|
||||
|
||||
#define mutils_swapendian16(a) \
|
||||
((mutils_word16) \
|
||||
(((a & (mutils_word16) 0x00ffU) << 8) | \
|
||||
((a & (mutils_word16) 0xff00U) >> 8)) \
|
||||
)
|
||||
|
||||
|
||||
|
||||
/* Change the endianness of the data if (and only if) the data type we want
|
||||
* is the opposite from the native endianness. This allows us to have some
|
||||
* reasonably generic macros, provided we always start from the native
|
||||
* ordering.
|
||||
*/
|
||||
|
||||
#if defined(WORDS_BIGENDIAN)
|
||||
|
||||
#define mutils_lend64(n) mutils_swapendian64(n)
|
||||
#define mutils_lend32(n) mutils_swapendian32(n)
|
||||
#define mutils_lend16(n) mutils_swapendian16(n)
|
||||
|
||||
#define mutils_bend64(n) n
|
||||
#define mutils_bend32(n) n
|
||||
#define mutils_bend16(n) n
|
||||
|
||||
#define mutils_lend2sys64(n) mutils_swapendian64(n)
|
||||
#define mutils_lend2sys32(n) mutils_swapendian32(n)
|
||||
#define mutils_lend2sys16(n) mutils_swapendian16(n)
|
||||
|
||||
#define mutils_bend2sys32(n) n
|
||||
#define mutils_bend2sys16(n) n
|
||||
|
||||
#else
|
||||
|
||||
#define mutils_lend64(n) n
|
||||
#define mutils_lend32(n) n
|
||||
#define mutils_lend16(n) n
|
||||
|
||||
#define mutils_bend64(n) mutils_swapendian64(n)
|
||||
#define mutils_bend32(n) mutils_swapendian32(n)
|
||||
#define mutils_bend16(n) mutils_swapendian16(n)
|
||||
|
||||
#define mutils_lend2sys64(n) n
|
||||
#define mutils_lend2sys32(n) n
|
||||
#define mutils_lend2sys16(n) n
|
||||
|
||||
#define mutils_bend2sys64(n) mutils_swapendian64(n)
|
||||
#define mutils_bend2sys32(n) mutils_swapendian32(n)
|
||||
#define mutils_bend2sys16(n) mutils_swapendian16(n)
|
||||
|
||||
#endif
|
||||
|
||||
int mutils_mlock(__const void *addr, __const mutils_word32 len);
|
||||
int mutils_munlock(__const void *addr, __const mutils_word32 len);
|
||||
|
||||
void *mutils_malloc(__const mutils_word32 n);
|
||||
void *mutils_realloc(__const void *ptr, __const mutils_word32 n);
|
||||
void mutils_free(__const void *ptr);
|
||||
void mutils_bzero(void *s, __const mutils_word32 n);
|
||||
|
||||
void mutils_memset(void *dest, __const mutils_word8 c, __const mutils_word32 n);
|
||||
void mutils_memcpy(void *dest, __const void *src, __const mutils_word32 n);
|
||||
void mutils_memmove(void *dest, __const void *src, __const mutils_word32 n);
|
||||
int mutils_memcmp(__const void *s1, __const void *s2, __const mutils_word32 n);
|
||||
|
||||
mutils_word32 mutils_strlen(__const mutils_word8 *str);
|
||||
mutils_word8 *mutils_strdup(__const mutils_word8 *str);
|
||||
mutils_word8 *mutils_strcat(mutils_word8 *dest, __const mutils_word8 *src);
|
||||
mutils_word8 *mutils_strcpy(mutils_word8 *dest, __const mutils_word8 *src);
|
||||
mutils_word8 *mutils_strncpy(mutils_word8 *dest, __const mutils_word8 *src, __const mutils_word32 n);
|
||||
int mutils_strcmp(__const mutils_word8 *src1, __const mutils_word8 *src2);
|
||||
int mutils_strncmp(__const mutils_word8 *src1, __const mutils_word8 *src2, __const mutils_word32 n);
|
||||
long mutils_strtol(__const mutils_word8 *nptr, mutils_word8 **endptr, __const mutils_word8 base);
|
||||
|
||||
mutils_word32 mutils_word32swap(mutils_word32 x);
|
||||
mutils_word32 *mutils_word32nswap(mutils_word32 *x, mutils_word32 n, mutils_boolean destructive);
|
||||
|
||||
mutils_word8 *mutils_asciify(mutils_word8 *in, __const mutils_word32 len);
|
||||
mutils_boolean mutils_thequals(mutils_word8 *text, mutils_word8 *hash, __const mutils_word32 len);
|
||||
|
||||
#endif /* __MUTILS_H */
|
||||
@@ -0,0 +1,323 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2004-10-22.00
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dstarg=
|
||||
no_target_directory=
|
||||
|
||||
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
-c (ignored)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test -n "$1"; do
|
||||
case $1 in
|
||||
-c) shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--help) echo "$usage"; exit 0;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t) dstarg=$2
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-T) no_target_directory=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit 0;;
|
||||
|
||||
*) # When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
test -n "$dir_arg$dstarg" && break
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dstarg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dstarg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dstarg=$arg
|
||||
done
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test -z "$1"; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src ;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
src=
|
||||
|
||||
if test -d "$dst"; then
|
||||
mkdircmd=:
|
||||
chmodcmd=
|
||||
else
|
||||
mkdircmd=$mkdirprog
|
||||
fi
|
||||
else
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dstarg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dstarg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst ;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dstarg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dst=$dst/`basename "$src"`
|
||||
fi
|
||||
fi
|
||||
|
||||
# This sed command emulates the dirname command.
|
||||
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if test ! -d "$dstdir"; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
|
||||
oIFS=$IFS
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
shift
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=
|
||||
|
||||
while test $# -ne 0 ; do
|
||||
pathcomp=$pathcomp$1
|
||||
shift
|
||||
if test ! -d "$pathcomp"; then
|
||||
$mkdirprog "$pathcomp"
|
||||
# mkdir can fail with a `File exist' error in case several
|
||||
# install-sh are creating the directory concurrently. This
|
||||
# is OK.
|
||||
test -d "$pathcomp" || exit
|
||||
fi
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
$doit $mkdircmd "$dst" \
|
||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
||||
|
||||
else
|
||||
dstfile=`basename "$dst"`
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
$doit $cpprog "$src" "$dsttmp" &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|
||||
|| {
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
if test -f "$dstdir/$dstfile"; then
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
||||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||
(exit 1); exit
|
||||
}
|
||||
else
|
||||
:
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
}
|
||||
}
|
||||
fi || { (exit 1); exit; }
|
||||
done
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
{
|
||||
(exit 0); exit
|
||||
}
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,96 @@
|
||||
%define prefix /usr
|
||||
|
||||
Summary: Thread-safe hash library
|
||||
Name: mhash
|
||||
Version: 0.9.9
|
||||
Release: 1
|
||||
Copyright: LGPL
|
||||
Group: System Environment/Libraries
|
||||
Source: http://mhash.sf.net/dl/%{name}-%{version}.tar.gz
|
||||
BuildRoot: /tmp/%{name}-%{version}-root
|
||||
Packager: Germano Rizzo <mano@pluto.linux.it>
|
||||
URL: http://mhash.sf.net
|
||||
|
||||
%description
|
||||
mhash is a thread-safe hash library, implemented in C, and provides a
|
||||
uniform interface to a large number of hash algorithms. These
|
||||
algorithms can be used to compute checksums, message digests, and
|
||||
other signatures. The HMAC support implements the basics for message
|
||||
authentication, following RFC 2104.
|
||||
|
||||
Algorithms currently supplied are:
|
||||
|
||||
CRC-32, CRC-32B, ALDER-32, MD-2, MD-4, MD-5, RIPEMD-128, RIPEMD-160,
|
||||
RIPEMD-256, RIPEMD-320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, HAVAL-128,
|
||||
HAVAL-160, HAVAL-192, HAVAL-256, TIGER, TIGER-128, TIGER-160, GOST, WHIRLPOOL,
|
||||
SNEFRU-128, SNEFRU-256
|
||||
|
||||
Algorithms will be added to this list over time.
|
||||
|
||||
%package devel
|
||||
Summary: Header files and libraries for developing apps which will use mhash
|
||||
Group: Development/Libraries
|
||||
Requires: mhash
|
||||
|
||||
%description devel
|
||||
The mhash-devel package contains the header files and libraries needed
|
||||
to develop programs that use the mhash library.
|
||||
|
||||
Install the mhash-devel package if you want to develop applications that
|
||||
will use the mhash library.
|
||||
|
||||
%changelog
|
||||
* Tue Feb 20 2007 Jonathan Day <imipak@yahoo.com>
|
||||
- Fixed symbol conflicts in config file
|
||||
* Mon Feb 19 2007 Jonathan Day <imipak@yahoo.com>
|
||||
- Included fixes for memory leaks and endian issues
|
||||
* Sun Jan 8 2006 Jonathan Day <imipak@yahoo.com>
|
||||
- Interface cleanup
|
||||
* Wed Jan 12 2005 Jonathan Day <imipak@yahoo.com>
|
||||
- Finally got round to integrating a lot of people's patches
|
||||
* Thu Nov 18 2004 Casper Pedersen <cpedersen[at]c-note.dk>
|
||||
- added '--enable-static=yes' to create static lib.
|
||||
* Fri Feb 01 2002 Germano Rizzo <mano@pluto.linux.it>
|
||||
- Built version 0.8.13 basing on Kyle Wheeler's SPEC file
|
||||
* Sat Jun 10 2000 Kyle Wheeler <memoryhole@penguinpowered.com>
|
||||
- Updated for version 0.8.1
|
||||
* Wed Feb 9 2000 Clinton Work <clinton@scripty.com>
|
||||
- Created a new spec file for version 0.6.1
|
||||
- Created both a shared library and devel packages
|
||||
|
||||
%prep
|
||||
%setup
|
||||
|
||||
%build
|
||||
ENABLING="--enable-static=yes --enable-shared=yes"
|
||||
CFLAGS="${RPM_OPT_FLAGS}"
|
||||
CFLAGS="$RPM_OPT_FLAGS" ./configure "$ENABLING" --prefix=%{prefix}
|
||||
make
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make prefix=$RPM_BUILD_ROOT%{prefix} install
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(-, root, root, 0755)
|
||||
%{prefix}/lib/libmhash.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root, 0755)
|
||||
%doc AUTHORS COPYING INSTALL ChangeLog NEWS README TODO
|
||||
%doc doc/example.c doc/md5-rfc1321.txt doc/mhash.html doc/skid2-authentication
|
||||
%{prefix}/man/man3/mhash.3*
|
||||
%{prefix}/lib/*.a
|
||||
%{prefix}/lib/*.la
|
||||
%{prefix}/lib/*.so
|
||||
%{prefix}/include/*.h
|
||||
%{prefix}/include/mutils/*.h
|
||||
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
%define prefix /usr
|
||||
|
||||
Summary: Thread-safe hash library
|
||||
Name: @PACKAGE@
|
||||
Version: @VERSION@
|
||||
Release: 1
|
||||
Copyright: LGPL
|
||||
Group: System Environment/Libraries
|
||||
Source: http://mhash.sf.net/dl/%{name}-%{version}.tar.gz
|
||||
BuildRoot: /tmp/%{name}-%{version}-root
|
||||
Packager: Germano Rizzo <mano@pluto.linux.it>
|
||||
URL: http://mhash.sf.net
|
||||
|
||||
%description
|
||||
mhash is a thread-safe hash library, implemented in C, and provides a
|
||||
uniform interface to a large number of hash algorithms. These
|
||||
algorithms can be used to compute checksums, message digests, and
|
||||
other signatures. The HMAC support implements the basics for message
|
||||
authentication, following RFC 2104.
|
||||
|
||||
Algorithms currently supplied are:
|
||||
|
||||
CRC-32, CRC-32B, ALDER-32, MD-2, MD-4, MD-5, RIPEMD-128, RIPEMD-160,
|
||||
RIPEMD-256, RIPEMD-320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, HAVAL-128,
|
||||
HAVAL-160, HAVAL-192, HAVAL-256, TIGER, TIGER-128, TIGER-160, GOST, WHIRLPOOL,
|
||||
SNEFRU-128, SNEFRU-256
|
||||
|
||||
Algorithms will be added to this list over time.
|
||||
|
||||
%package devel
|
||||
Summary: Header files and libraries for developing apps which will use mhash
|
||||
Group: Development/Libraries
|
||||
Requires: mhash
|
||||
|
||||
%description devel
|
||||
The mhash-devel package contains the header files and libraries needed
|
||||
to develop programs that use the mhash library.
|
||||
|
||||
Install the mhash-devel package if you want to develop applications that
|
||||
will use the mhash library.
|
||||
|
||||
%changelog
|
||||
* Tue Feb 20 2007 Jonathan Day <imipak@yahoo.com>
|
||||
- Fixed symbol conflicts in config file
|
||||
* Mon Feb 19 2007 Jonathan Day <imipak@yahoo.com>
|
||||
- Included fixes for memory leaks and endian issues
|
||||
* Sun Jan 8 2006 Jonathan Day <imipak@yahoo.com>
|
||||
- Interface cleanup
|
||||
* Wed Jan 12 2005 Jonathan Day <imipak@yahoo.com>
|
||||
- Finally got round to integrating a lot of people's patches
|
||||
* Thu Nov 18 2004 Casper Pedersen <cpedersen[at]c-note.dk>
|
||||
- added '--enable-static=yes' to create static lib.
|
||||
* Fri Feb 01 2002 Germano Rizzo <mano@pluto.linux.it>
|
||||
- Built version 0.8.13 basing on Kyle Wheeler's SPEC file
|
||||
* Sat Jun 10 2000 Kyle Wheeler <memoryhole@penguinpowered.com>
|
||||
- Updated for version 0.8.1
|
||||
* Wed Feb 9 2000 Clinton Work <clinton@scripty.com>
|
||||
- Created a new spec file for version 0.6.1
|
||||
- Created both a shared library and devel packages
|
||||
|
||||
%prep
|
||||
%setup
|
||||
|
||||
%build
|
||||
ENABLING="--enable-static=yes --enable-shared=yes"
|
||||
CFLAGS="${RPM_OPT_FLAGS}"
|
||||
CFLAGS="$RPM_OPT_FLAGS" ./configure "$ENABLING" --prefix=%{prefix}
|
||||
make
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make prefix=$RPM_BUILD_ROOT%{prefix} install
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(-, root, root, 0755)
|
||||
%{prefix}/lib/libmhash.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root, 0755)
|
||||
%doc AUTHORS COPYING INSTALL ChangeLog NEWS README TODO
|
||||
%doc doc/example.c doc/md5-rfc1321.txt doc/mhash.html doc/skid2-authentication
|
||||
%{prefix}/man/man3/mhash.3*
|
||||
%{prefix}/lib/*.a
|
||||
%{prefix}/lib/*.la
|
||||
%{prefix}/lib/*.so
|
||||
%{prefix}/include/*.h
|
||||
%{prefix}/include/mutils/*.h
|
||||
|
||||
|
||||
@@ -0,0 +1,353 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2004-09-07.08
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
|
||||
# Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program 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 General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case "$1" in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit 0
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program).
|
||||
case "$1" in
|
||||
lex|yacc)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case "$1" in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case "$f" in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f y.tab.h ]; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if [ ! -f y.tab.c ]; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f lex.yy.c ]; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||
fi
|
||||
if [ -f "$file" ]; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||
fi
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
||||
Reference in New Issue
Block a user