34
MD5 utility
/* crypto/md5/md5.h */
C o p y r i g h t ( C ) 1 9 9 5 - 1 9 9 8 E r i c Yo u n g
([email protected])All rights reserved.
This package is an SSL implementation written
by Eric Young ([email protected]).
The implementation was written so as to
conform with Netscapes SSL.
This library is free for commercial and non-
commercial use as long as the following
conditions are aheared to. The following
conditions apply to all code found in this
distribution, be it the RC4, RSA, lhash, DES,
etc., code; not just the SSL code. The SSL
documentation included with this distribution is
covered by the same copyright terms except that
the holder is Tim Hudson ([email protected]).
Copyright remains Eric Young's, and as such
any Copyright notices in the code are not to be
removed.
If this package is used in a product, Eric Young
should be given attribution as the author of the
parts of the library used.
This can be in the form of a textual message at
program startup or in documentation (online or
textual) provided with the package.
Redistribution and use in source and binary
forms, with or without modification, are
permitted provided that the following conditions
are met:
1.Redistributions of source code must retain the
copyright notice, this list of conditions and the
following disclaimer.
2.Redistributions in binary form must reproduce
the above copyright notice, this list of
conditions and the following disclaimer in the
documentation and/or other materials provided
with the distribution.
3 . A l l a d v e r t i s i n g m a t e r i a l s m e n t i o n i n g
fe a t u re s o r u s e o f t h i s s o f t w a re m u s t
display the following acknowledgement:
"This product includes cryptographic software
written by Eric Young ([email protected])"
4.The word 'cryptographic' can be left out if the
rouines from the library being used are not
cryptographic related :-).
5. If you include any Windows specific code (or
a derivative thereof ) from the apps directory
(application code) you must include an
acknowledgement:
6."This product includes software written by Tim
Hudson ([email protected])"THIS SOFTWARE
IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILIT Y AND
FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILIT Y OF SUCH DAMAGE.
The license and distribution terms for any
publically available version or derivative of
this code cannot be changed. i.e. this code
cannot simply be copied and put under another
distribution license [including the GNU Public
License.]
--------------------------------------------------------------------
CRC utility
COPYRIGHT (C ) 1986 G ar y S. Brown. You
may use this program, or code or tables
extracted from it, as desired without restriction.
First, the polynomial itself and its table of feedback
terms. The polynomial is X^32+X^26+X^23+X^22
+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+
X^2+X^1+X^0
Note that we take it "backwards" and put the
highest-order term in the lowest-order bit. The
X^32 term is "implied"; the LSB is the X^31 term,
etc. The X^0 term (usually shown as "+1") results in
the MSB being 1
Note that the usual hardware shift register
implementation, which is what we're using (we're
merely optimizing it by doing eight-bit chunks at
a time) shifts bits into the lowest-order term. In
our implementation, that means shifting towards
the right. Why do we do it this way? Because the
Important Notice Concerning the Software
DRV-430_B5A-0959-01_EU_EN.indd 34
2017/12/21 12:13