I2C toy code
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 
Kris Kwiatkowski 60779f40ca Init 5 yıl önce
..
demos Init 5 yıl önce
doc Init 5 yıl önce
hooks Init 5 yıl önce
notes Init 5 yıl önce
src Init 5 yıl önce
tests Init 5 yıl önce
.clang-format Init 5 yıl önce
.travis.yml Init 5 yıl önce
LICENSE Init 5 yıl önce
README.md Init 5 yıl önce
TODO Init 5 yıl önce
build.sh Init 5 yıl önce
changes Init 5 yıl önce
check_source.sh Init 5 yıl önce
coverage.sh Init 5 yıl önce
coverage_more.sh Init 5 yıl önce
coverity.sh Init 5 yıl önce
helper.pl Init 5 yıl önce
libtomcrypt.pc.in Init 5 yıl önce
libtomcrypt.sublime-project Init 5 yıl önce
libtomcrypt.sublime-workspace Init 5 yıl önce
libtomcrypt_VS2008.sln Init 5 yıl önce
libtomcrypt_VS2008.vcproj Init 5 yıl önce
makefile Init 5 yıl önce
makefile.mingw Init 5 yıl önce
makefile.msvc Init 5 yıl önce
makefile.shared Init 5 yıl önce
makefile.unix Init 5 yıl önce
makefile_include.mk Init 5 yıl önce
printinfo.sh Init 5 yıl önce
run.sh Init 5 yıl önce
scan_build.sh Init 5 yıl önce
testbuild.sh Init 5 yıl önce
testme.sh Init 5 yıl önce
updatemakes.sh Init 5 yıl önce

README.md

libtomcrypt

See doc/crypt.pdf for a detailed documentation

Project Status

master: Build Status Coverage Status

develop: Build Status Coverage Status

Coverity Scan Build Status

Submitting patches

Please branch off from develop if you want to submit a patch.

Patch integration will be faster if tests and documentation are included.

Please update the makefiles in a separate commit. To update them simply run the updatemakes.sh script.

Branches

Please be aware, that all branches besides master and develop can and will be force-pushed, rebased and/or removed!

If you want to rely on such an unstable branch, create your own fork of this repository to make sure nothing breaks for you.

Configuration options

By default the library builds its entire feature set (besides katja) in a (depending on your needs more or less) optimal way.

There are numerous configuration options available if you want to trim down the functionality of the library.

Please have a look at src/headers/tomcrypt_custom.h for all available configuration options.

The following list is a small part of the available, but the most often required, configuration switches.

Flag Behavior
LTC_NO_TEST Remove all algorithm self-tests from the library
LTC_NO_FILE Remove all API functions requiring a pre-defined FILE data-type (mostly useful for embedded targets)
MAX_RSA_SIZE Per default set to 4096, if you need support for importing or generating bigger RSA keys, change this at compile-time.
GMP_DESC enable gmp as MPI provider *1
LTM_DESC enable libtommath as MPI provider *1
TFM_DESC enable tomsfastmath as MPI provider *1 *2
USE_GMP use gmp as MPI provider when building the binaries *3
USE_LTM use libtommath as MPI provider when building the binaries *3
USE_TFM use tomsfastmath as MPI provider when building the binaries *3

*1 It is possible to build the library against all MPI providers in parallel and choose at startup-time which math library should be used.

*2 Please be aware that tomsfastmath has the limitation of a fixed max size of MPI’s.

*3 Only one is supported at the time & this is only required when building the binaries, not when building the library itself.

Building the library

There are several makefiles provided. Please choose the one that fits best for you.

makefile use-case
makefile builds a static library (GNU Make required, broken on Mac OSX - use makefile.unix instead)
makefile.shared builds a shared (and static) library (GNU Make required)
makefile.unix for unusual UNIX platforms, or if you do not have GNU Make
makefile.mingw for usage with the mingw compiler on MS Windows
makefile.msvc for usage with the MSVC compiler on MS Windows
libtomcrypt_VS2008.sln A VisualStudio 2008 project for MS Windows

Make targets

The makefiles provide several targets to build (VS project excluded). The following list does not claim to be complete resp. to be available across all makefile variants.

target application
empty target/none given c.f. library
library builds only the library
hashsum builds the hashsum binary, similar to shasum, but with support for all hash-algorithms included in the library *4
ltcrypt builds the ltcrypt binary, implementing something similar to crypt *4
sizes builds the sizes binary, printing all internal data sizes on invocation *4
constants builds the constants binary, printing all internal constants on invocation *4
openssl-enc builds the openssl-enc binary, which is more or less compatible to openssl enc *4 *5
test builds the test binary, which runs all algorithm self-tests + some extended tests *4 *6
timing builds the timing binary, which can be used to measure timings for algorithms and modes *4 *6
bins builds hashsum *4
all_test builds test, hashsum, ltcrypt, small, tv_gen, sizes & constants *4

*4 also builds library

*5 broken build in some configurations, therefore not built by default

*6 requires define of one of USE_GMP, USE_LTM or USE_TFM (+ the appropriate MPI provider)

Examples

You want to build the library as static library

make

You want to build the library as shared library

make -f makefile.shared

You have libtommath installed on your system and want to build a static library and the test binary to run the self-tests.

make CFLAGS="-DUSE_LTM -DLTM_DESC" EXTRALIBS="-ltommath" test

You have tomsfastmath installed on your system and want to build a shared library and all binaries

make -f makefile.shared CFLAGS="-DUSE_TFM -DTFM_DESC" EXTRALIBS="-ltfm" all demos

You have gmp, libtommath and tomsfastmath installed on your system and want to build a static library and the timing binary to measure timings against gmp.

make CFLAGS="-DUSE_GMP -DGMP_DESC -DLTM_DESC -DTFM_DESC" EXTRALIBS="-lgmp" timing

If you have libtommath in a non-standard location:

make CFLAGS="-DUSE_LTM -DLTM_DESC -I/opt/devel/ltm" EXTRALIBS="/opt/devel/ltm/libtommath.a" all