📄 readme.phei.txt
字号:
Welcome,
this CD-ROM is a supplement to the book
"Cryptography in C and C++"
by Michael Welschenbach, published in 2003 by PHEI, P.R.China.
The CD-ROM provides functions and programs which are described in the book.
The software has been developed and tested for platforms that provide C/C++
development environments compliant to the ANSI/ISO C- and C++-standards.
The batch- and makefiles which are listed below are designed for the gcc
C/C++ compiler of the GNU project, which is part of virtually all Linux
distributions and there are ports for many other operating systems and
hardware platforms available. The makefiles can easily be adapted to other
development environments.
The testprograms for the C++-class LINT are suggested as examples for the tests
that the readers are encouraged to develop as an exercise in chapter 17 of the
book.
For installing the software it is recommended to copy the directories and
subdirectories contained on the CD-ROM onto a harddisk.
Some of the text files on this CD-ROM contain UNIX-style end-of-lines (LF).
This may cause problems with some operating systems or text editors. A way
around those problems may be to compress files with zip und to decompress
the compressed files with unzip -a, which will automatically convert the
end-of-lines to local conventions.
The CD-ROM contains the following directories and files:
Directory files Description
--------- ----- -----------
flint/src:
flint.c C functions for arithmetic and number theory
flint.h Header file for flint.c
kmul.c Karatsuba multiplication
kmul.h Header file for kmul.c
_assert.h Header file with dummy assertion macros
ripemd.c Implementation of the hash function RIPEMD160
ripemd.h Header file for ripemd.c
sha1.c Implementation of the hash function SHA-1
sha1.h Header file for sha1.c
aes.c Implementation of the Advanced Encryption Standard
aes.h Header file for the Advanced Encryption Standard
flintpp.cpp Implementation of the arithmetic class LINT
flintpp.h Header file for flintpp.cpp
flint/src/asm:
mult.asm Multiplication function mult() in 80x86 assembler
umul.asm Multiplication function umul() in 80x86 assembler
sqr.asm Squaring function sqr() in 80x86 assembler
div.asm Division function div_l() in 80x86 assembler
flint/src/asm/cygwin: Assembler functions coded for Cygwin-environment
mult.s Multiplication function mult() in 80x86 assembler
umul.s Multiplication function umul() in 80x86 assembler
sqr.s Squaring function sqr() in 80x86 assembler
div.s Division function div_l() in 80x86 assembler
flint/src/asm/linux: Assembler functions coded for Linux (w/o underscores)
mult.s Multiplication function mult() in 80x86 assembler
umul.s Multiplication function umul() in 80x86 assembler
sqr.s Squaring function sqr() in 80x86 assembler
div.s Division function div_l() in 80x86 assembler
flint/lib:
flinta.lib Library providing the objectcode of the assembler
functions in OMF format for usage under DOS,
Windows, OS/2
flintavc.lib Library providing the objectcode of the assembler
functions in COFF format for usage with lcc-win32,
Microsoft Visual C/C++ and other environments
flinta.a Archive providing the objectcode of the assembler
functions for usage with emx/gcc under OS/2 and
Windows (9x, NT)
libflint.a Archive providing the objectcode of the assembler
functions for usage with gcc under Linux (on Pentium
or compatible hardware platforms)
flint/lib/dll:
flint.dll Dynamic Link Library (DLL) providing the C functions
and data of the FLINT/C package (developed with
Visual C/C++ V. 6.0)
flint.def FLINT/C symbols that are exported by flint.dll
flint.lib COFF import library for flint.dll
makedll.bat Batch file for the generation of flint.dll and
flint.lib under Visual C/C++
dllmain.c Function for initialization of flint.dll
flint/rsa:
rsakey.cpp Implementation of the RSA classes rsakey and rsapub
rsakey.h Header file for rsakey.cpp
rsademo.cpp Demoapplication for RSA classes
makefile Makefile for rsademo using gcc, make or nmake
makefile.asm Makefile for rsademo with support of assembler
functions using gcc, make or nmake
flint/test:
testaes.c Test of the Advanced Encryption Standard in aes.c
testrand.c Test of the pseudo random number generator usrand64_l
testbbs.c Test of the pseudo random number generator usrandBBS_l
testbas.c Tests of the functions for conversion and I/O
testreg.c Tests of register management
testadd.c Tests of addition
testsub.c Tests of subtraction
testmul.c Tests of multiplication
testkar.c Tests of Karatsuba multiplication
testsqr.c Tests of squaring
testdiv.c Tests of division
testmadd.c Tests of modular addition
testmsub.c Tests of modular subtraction
testmmul.c Tests of modular multiplication
testmsqr.c Tests of modular squaring
testgcd.c Tests of gcd functions
testmexp.c Tests of modular exponentiation
testset.c Tests of functions for bit manipulation
testshft.c Tests of shift operations
testiroo.c Test calculation of integer square roots
testbool.c Tests of boolean functions and_l, or_l, xor_l
testripe.c Tests of hash function RIPEMD160
testsha1.c Tests of hash function SHA-1
testcnst.cpp Tests of constructors of class LINT
testari.cpp Tests of LINT arithmetic
testxgcd.cpp Tests of Extended Euclidean Algorithm
testchin.cpp Tests of LINT Function chinrest
testroot.cpp Tests of LINT Functions isprime, jacobi and root
testprrt.cpp Tests of LINT Function primroot
makefile Makefile for running the testsuite with make
under Unix and Linux
makefile.asm Makefile for running the testsuite with make
under Unix/Linux with support of assembler functions
testvc.bat Batch file for running the testsuite with Microsoft
Visual C/C++ under Windows
testvca.bat Batch file for running the testsuite with Microsoft
Visual C/C++ under Windows with assembler support
testdll.bat Batch file for running the testsuite with Microsoft
Visual C/C++ under Windows, testing the Flint DLL
testgcc.bat Batch file for running the testsuite with GNU compiler
gcc under DOS or in a DOS box under Windows
testgcca.bat Batch file for running the testsuite with GNU compiler
gcc under DOS or Windows with support of assembler
functions
testgcc.cmd Batch file for running the testsuite with GNU compiler
gcc under under OS/2
testgcca.cmd Batch file for running the testsuite with GNU compiler
flint/test/testvals:
test1.bin,
test2.bin,
test3.bin Binaries, input files for testripe.c
xxxxxnn.txt Testvectors for testaes.c
gcc under OS/2 with support of assembler functions
-------------------------------------------------------------------------------
Many thanks to Vincent Rijmen, Antoon Bosselaers, Paulo Barreto and Brian
Gladman for their permission to include their implementations of rijndael
on this CD-ROM. The code is found in the following directories:
rijndael/c_ref: Reference C-implementation of Rijndael by
Vincent Rijmen and Paulo Barreto
rijndael/c_opt: Optimized C-implementation of Rijndael by
Vincent Rijmen, Antoon Bosselaers and Paulo Barreto
rijndael/c_cpp: Optimized C++-implemenation of Rijndael by
Brian Gladman
===============================================================================
For the programs in the directory flint and subdirectories the following legal
statements apply:
Copyright (C) 1998-2003 by Michael Welschenbach
Copyright (C) 1998-2003 by Springer-Verlag, Berlin, Heidelberg
Copyright (C) 2001-2003 by Apress L.P., Berkeley, CA
Copyright (C) 2002-2003 by Mikom, Poland
Copyright (C) 2002-2003 by PHEI, China
Copyright (C) 2002-2003 by InfoBook, Korea
Copyright (C) 2002-2003 by Triumph Publishing, Russia
The software may be used for noncommercial purposes and may be altered, as long
as the following conditions are accepted without any qualification:
(1) All changes to the sources must be identified in such a way that the
changed software cannot be misinterpreted as the original software.
(2) The statements of copyright may not removed or altered.
(3) The DISCLAIMER below is accepted.
-------------------------------------------------------------------------------
For statements of copyright and terms of usage for the programs in the
directory rijndael and subdirectories please refer to the program code. In
addition the following DISCLAIMER applies:
-------------------------------------------------------------------------------
DISCLAIMER:
Within the DISCLAIMER, the term "copyright holders" refers to the authors and
the publisher of the software contained on this CD-ROM.
There is no warranty for the software contained on this CD-ROM, to the extent
permitted by applicable law. The copyright holders provide the software `as is'
without warranty of any kind, either expressed or implied, including, but not
limited to, the implied warranty of fitness for a particular purpose. The
entire risk as to the quality and performance of the program is with you.
In no event unless required by applicable law will the copyright holders, or
any of the individual authors named in the source files, be liable to you for
damages, including any general, special, incidental or consequential damages
arising out of any use of the software or out of inability to use the software
(including but not limited to any financial losses, loss of data or
data being rendered inaccurate or losses sustained by you or by third parties
as a result of a failure of the software to operate with any other programs),
even if such holder or other party has been advised of the possibility of
such damages.
Before importing, exporting or using the cryptographic functions that are
contained on this CD-ROM to, from or in any country, you are strictly advised
to observe and to comply to any existing laws or regulations of such country
referring to the import, export or usage of cryptographic software. If in doubt
please apply for the consultancy of a legal expert in this field.
Neither the authors of the software nor the publisher can be held responsible
for any violations or the consequences of any voilations of such laws or
regulations by you or by a third party within any country.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -