Merge pull request #219 from libtom/feature/common
Introduce testprof/common.c [skip ci]
This commit is contained in:
commit
2816da42af
6
build.sh
6
build.sh
@ -15,9 +15,9 @@ fi
|
||||
CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -j$MAKE_JOBS -f $3 all_test 1>gcc_1.txt 2>gcc_2.txt
|
||||
mret=$?
|
||||
cnt=$(wc -l < gcc_2.txt)
|
||||
# ignore 2 lines since ar prints to stderr instead of stdout and ar is called for
|
||||
# $(LIBNAME) and testprof/$(LIBTEST_S)
|
||||
if [[ $mret -ne 0 ]] || [[ $cnt -gt 2 ]]; then
|
||||
# ignore 1 line since ar prints to stderr instead of stdout and ar is called for
|
||||
# $(LIBNAME)
|
||||
if [[ $mret -ne 0 ]] || [[ $cnt -gt 1 ]]; then
|
||||
echo "build $1 failed! printing gcc_2.txt now for convenience"
|
||||
cat gcc_2.txt
|
||||
exit 1
|
||||
|
@ -5,7 +5,7 @@ set -e
|
||||
./sizes
|
||||
./constants
|
||||
|
||||
for i in $(for j in $(echo $(./hashsum -h | tail -n +3)); do echo $j; done | sort); do echo -n "$i: " && ./hashsum -a $i testprof/test.key ; done > hashsum_tv.txt
|
||||
for i in $(for j in $(echo $(./hashsum -h | tail -n +3)); do echo $j; done | sort); do echo -n "$i: " && ./hashsum -a $i tests/test.key ; done > hashsum_tv.txt
|
||||
difftroubles=$(diff -i -w -B hashsum_tv.txt notes/hashsum_tv.txt | grep '^<') || true
|
||||
if [ -n "$difftroubles" ]; then
|
||||
echo "FAILURE: hashsum_tv.tx"
|
||||
|
@ -27,8 +27,6 @@
|
||||
'\255')
|
||||
#define HEXOF(x) (x - _base(x))
|
||||
|
||||
static void register_algs(void);
|
||||
|
||||
static char* hashsum;
|
||||
|
||||
static void die(int status)
|
||||
@ -159,7 +157,8 @@ int main(int argc, char **argv)
|
||||
hashsum = strdup(basename(argv[0]));
|
||||
|
||||
/* You need to register algorithms before using them */
|
||||
register_algs();
|
||||
register_all_ciphers();
|
||||
register_all_hashes();
|
||||
if (argc > 1 && (strcmp("-h", argv[1]) == 0 || strcmp("--help", argv[1]) == 0)) {
|
||||
die(EXIT_SUCCESS);
|
||||
}
|
||||
@ -261,87 +260,6 @@ int main(int argc, char **argv)
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
static void register_algs(void)
|
||||
{
|
||||
int err;
|
||||
LTC_UNUSED_PARAM(err);
|
||||
|
||||
#ifdef LTC_TIGER
|
||||
register_hash (&tiger_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD2
|
||||
register_hash (&md2_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD4
|
||||
register_hash (&md4_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD5
|
||||
register_hash (&md5_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA1
|
||||
register_hash (&sha1_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA224
|
||||
register_hash (&sha224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA256
|
||||
register_hash (&sha256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA384
|
||||
register_hash (&sha384_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512
|
||||
register_hash (&sha512_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_224
|
||||
register_hash (&sha512_224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_256
|
||||
register_hash (&sha512_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA3
|
||||
register_hash (&sha3_224_desc);
|
||||
register_hash (&sha3_256_desc);
|
||||
register_hash (&sha3_384_desc);
|
||||
register_hash (&sha3_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD128
|
||||
register_hash (&rmd128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD160
|
||||
register_hash (&rmd160_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD256
|
||||
register_hash (&rmd256_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD320
|
||||
register_hash (&rmd320_desc);
|
||||
#endif
|
||||
#ifdef LTC_WHIRLPOOL
|
||||
register_hash (&whirlpool_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2S
|
||||
register_hash (&blake2s_128_desc);
|
||||
register_hash (&blake2s_160_desc);
|
||||
register_hash (&blake2s_224_desc);
|
||||
register_hash (&blake2s_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2B
|
||||
register_hash (&blake2b_160_desc);
|
||||
register_hash (&blake2b_256_desc);
|
||||
register_hash (&blake2b_384_desc);
|
||||
register_hash (&blake2b_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_CHC_HASH
|
||||
register_hash(&chc_desc);
|
||||
if ((err = chc_register(register_cipher(&aes_enc_desc))) != CRYPT_OK) {
|
||||
printf("chc_register error: %s\n", error_to_string(err));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
||||
|
@ -22,74 +22,6 @@ int usage(char *name)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
void register_algs(void)
|
||||
{
|
||||
#ifdef LTC_RIJNDAEL
|
||||
register_cipher (&aes_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLOWFISH
|
||||
register_cipher (&blowfish_desc);
|
||||
#endif
|
||||
#ifdef LTC_XTEA
|
||||
register_cipher (&xtea_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC5
|
||||
register_cipher (&rc5_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC6
|
||||
register_cipher (&rc6_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFERP
|
||||
register_cipher (&saferp_desc);
|
||||
#endif
|
||||
#ifdef LTC_TWOFISH
|
||||
register_cipher (&twofish_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFER
|
||||
register_cipher (&safer_k64_desc);
|
||||
register_cipher (&safer_sk64_desc);
|
||||
register_cipher (&safer_k128_desc);
|
||||
register_cipher (&safer_sk128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC2
|
||||
register_cipher (&rc2_desc);
|
||||
#endif
|
||||
#ifdef LTC_DES
|
||||
register_cipher (&des_desc);
|
||||
register_cipher (&des3_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAST5
|
||||
register_cipher (&cast5_desc);
|
||||
#endif
|
||||
#ifdef LTC_NOEKEON
|
||||
register_cipher (&noekeon_desc);
|
||||
#endif
|
||||
#ifdef LTC_SKIPJACK
|
||||
register_cipher (&skipjack_desc);
|
||||
#endif
|
||||
#ifdef LTC_KHAZAD
|
||||
register_cipher (&khazad_desc);
|
||||
#endif
|
||||
#ifdef LTC_ANUBIS
|
||||
register_cipher (&anubis_desc);
|
||||
#endif
|
||||
|
||||
if (register_hash(&sha256_desc) == -1) {
|
||||
printf("Error registering LTC_SHA256\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (register_prng(&yarrow_desc) == -1) {
|
||||
printf("Error registering yarrow PRNG\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (register_prng(&sprng_desc) == -1) {
|
||||
printf("Error registering sprng PRNG\n");
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
unsigned char plaintext[512],ciphertext[512];
|
||||
@ -104,7 +36,8 @@ int main(int argc, char *argv[])
|
||||
int err;
|
||||
|
||||
/* register algs, so they can be printed */
|
||||
register_algs();
|
||||
register_all_ciphers();
|
||||
register_all_hashes();
|
||||
|
||||
if (argc < 4) {
|
||||
if ((argc > 2) && (!strcmp(argv[1], "-t"))) {
|
||||
|
114
demos/test.c
114
demos/test.c
@ -1,114 +0,0 @@
|
||||
#include <tomcrypt_test.h>
|
||||
|
||||
#ifndef GIT_VERSION
|
||||
#define GIT_VERSION "Undefined version"
|
||||
#endif
|
||||
|
||||
#define LTC_TEST_FN(f) { f, #f }
|
||||
|
||||
static const struct {
|
||||
int (*fn)(void);
|
||||
const char* name;
|
||||
} test_functions[] =
|
||||
{
|
||||
LTC_TEST_FN(store_test),
|
||||
LTC_TEST_FN(rotate_test),
|
||||
LTC_TEST_FN(misc_test),
|
||||
LTC_TEST_FN(cipher_hash_test),
|
||||
LTC_TEST_FN(mac_test),
|
||||
LTC_TEST_FN(modes_test),
|
||||
LTC_TEST_FN(der_tests),
|
||||
LTC_TEST_FN(pkcs_1_test),
|
||||
LTC_TEST_FN(pkcs_1_pss_test),
|
||||
LTC_TEST_FN(pkcs_1_oaep_test),
|
||||
LTC_TEST_FN(pkcs_1_emsa_test),
|
||||
LTC_TEST_FN(pkcs_1_eme_test),
|
||||
LTC_TEST_FN(rsa_test),
|
||||
LTC_TEST_FN(dh_test),
|
||||
LTC_TEST_FN(ecc_tests),
|
||||
LTC_TEST_FN(dsa_test),
|
||||
LTC_TEST_FN(katja_test),
|
||||
LTC_TEST_FN(file_test),
|
||||
LTC_TEST_FN(multi_test),
|
||||
};
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int x, pass = 0, fail = 0, nop = 0;
|
||||
size_t fn_len, i, dots;
|
||||
char *single_test = NULL;
|
||||
ulong64 ts;
|
||||
long delta, dur = 0;
|
||||
reg_algs();
|
||||
|
||||
printf("build == %s\n%s\n", GIT_VERSION, crypt_build_settings);
|
||||
|
||||
#ifdef USE_LTM
|
||||
ltc_mp = ltm_desc;
|
||||
printf("math provider = libtommath\n");
|
||||
#elif defined(USE_TFM)
|
||||
ltc_mp = tfm_desc;
|
||||
printf("math provider = tomsfastmath\n");
|
||||
#elif defined(USE_GMP)
|
||||
ltc_mp = gmp_desc;
|
||||
printf("math provider = gnump\n");
|
||||
#else
|
||||
extern ltc_math_descriptor EXT_MATH_LIB;
|
||||
ltc_mp = EXT_MATH_LIB;
|
||||
printf("math provider = EXT_MATH_LIB\n");
|
||||
#endif
|
||||
printf("MP_DIGIT_BIT = %d\n", MP_DIGIT_BIT);
|
||||
|
||||
fn_len = 0;
|
||||
for (i = 0; i < sizeof(test_functions)/sizeof(test_functions[0]); ++i) {
|
||||
size_t len = strlen(test_functions[i].name);
|
||||
if (fn_len < len) fn_len = len;
|
||||
}
|
||||
|
||||
fn_len = fn_len + (4 - (fn_len % 4));
|
||||
|
||||
/* single test name from commandline */
|
||||
if (argc > 1) single_test = argv[1];
|
||||
|
||||
for (i = 0; i < sizeof(test_functions)/sizeof(test_functions[0]); ++i) {
|
||||
if (single_test && strcmp(test_functions[i].name, single_test)) {
|
||||
continue;
|
||||
}
|
||||
dots = fn_len - strlen(test_functions[i].name);
|
||||
|
||||
printf("\n%s", test_functions[i].name);
|
||||
while(dots--) printf(".");
|
||||
fflush(stdout);
|
||||
|
||||
ts = epoch_usec();
|
||||
x = test_functions[i].fn();
|
||||
delta = (long)(epoch_usec() - ts);
|
||||
dur += delta;
|
||||
|
||||
if (x == CRYPT_OK) {
|
||||
printf("passed %10.3fms", (double)(delta)/1000);
|
||||
pass++;
|
||||
}
|
||||
else if (x == CRYPT_NOP) {
|
||||
printf("nop");
|
||||
nop++;
|
||||
}
|
||||
else {
|
||||
printf("failed %10.3fms", (double)(delta)/1000);
|
||||
fail++;
|
||||
}
|
||||
}
|
||||
|
||||
if (fail > 0 || fail+pass+nop == 0) {
|
||||
printf("\n\nFAILURE: passed=%d failed=%d nop=%d duration=%.1fsec\n", pass, fail, nop, (double)(dur)/(1000*1000));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
else {
|
||||
printf("\n\nSUCCESS: passed=%d failed=%d nop=%d duration=%.1fsec\n", pass, fail, nop, (double)(dur)/(1000*1000));
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
1371
demos/timing.c
1371
demos/timing.c
File diff suppressed because it is too large
Load Diff
164
demos/tv_gen.c
164
demos/tv_gen.c
@ -1,151 +1,5 @@
|
||||
#include <tomcrypt.h>
|
||||
|
||||
void reg_algs(void)
|
||||
{
|
||||
int err;
|
||||
LTC_UNUSED_PARAM(err);
|
||||
|
||||
#ifdef LTC_RIJNDAEL
|
||||
register_cipher (&aes_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLOWFISH
|
||||
register_cipher (&blowfish_desc);
|
||||
#endif
|
||||
#ifdef LTC_XTEA
|
||||
register_cipher (&xtea_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC5
|
||||
register_cipher (&rc5_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC6
|
||||
register_cipher (&rc6_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFERP
|
||||
register_cipher (&saferp_desc);
|
||||
#endif
|
||||
#ifdef LTC_TWOFISH
|
||||
register_cipher (&twofish_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFER
|
||||
register_cipher (&safer_k64_desc);
|
||||
register_cipher (&safer_sk64_desc);
|
||||
register_cipher (&safer_k128_desc);
|
||||
register_cipher (&safer_sk128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC2
|
||||
register_cipher (&rc2_desc);
|
||||
#endif
|
||||
#ifdef LTC_DES
|
||||
register_cipher (&des_desc);
|
||||
register_cipher (&des3_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAST5
|
||||
register_cipher (&cast5_desc);
|
||||
#endif
|
||||
#ifdef LTC_NOEKEON
|
||||
register_cipher (&noekeon_desc);
|
||||
#endif
|
||||
#ifdef LTC_SKIPJACK
|
||||
register_cipher (&skipjack_desc);
|
||||
#endif
|
||||
#ifdef LTC_ANUBIS
|
||||
register_cipher (&anubis_desc);
|
||||
#endif
|
||||
#ifdef LTC_KHAZAD
|
||||
register_cipher (&khazad_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAMELLIA
|
||||
register_cipher (&camellia_desc);
|
||||
#endif
|
||||
|
||||
#ifdef LTC_TIGER
|
||||
register_hash (&tiger_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD2
|
||||
register_hash (&md2_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD4
|
||||
register_hash (&md4_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD5
|
||||
register_hash (&md5_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA1
|
||||
register_hash (&sha1_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA224
|
||||
register_hash (&sha224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA256
|
||||
register_hash (&sha256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA384
|
||||
register_hash (&sha384_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512
|
||||
register_hash (&sha512_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_224
|
||||
register_hash (&sha512_224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_256
|
||||
register_hash (&sha512_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA3
|
||||
register_hash (&sha3_224_desc);
|
||||
register_hash (&sha3_256_desc);
|
||||
register_hash (&sha3_384_desc);
|
||||
register_hash (&sha3_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD128
|
||||
register_hash (&rmd128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD160
|
||||
register_hash (&rmd160_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD256
|
||||
register_hash (&rmd256_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD320
|
||||
register_hash (&rmd320_desc);
|
||||
#endif
|
||||
#ifdef LTC_WHIRLPOOL
|
||||
register_hash (&whirlpool_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2S
|
||||
register_hash (&blake2s_128_desc);
|
||||
register_hash (&blake2s_160_desc);
|
||||
register_hash (&blake2s_224_desc);
|
||||
register_hash (&blake2s_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2B
|
||||
register_hash (&blake2b_160_desc);
|
||||
register_hash (&blake2b_256_desc);
|
||||
register_hash (&blake2b_384_desc);
|
||||
register_hash (&blake2b_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_CHC_HASH
|
||||
register_hash(&chc_desc);
|
||||
if ((err = chc_register(register_cipher(&aes_desc))) != CRYPT_OK) {
|
||||
printf("chc_register error: %s\n", error_to_string(err));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef USE_LTM
|
||||
ltc_mp = ltm_desc;
|
||||
#elif defined(USE_TFM)
|
||||
ltc_mp = tfm_desc;
|
||||
#elif defined(USE_GMP)
|
||||
ltc_mp = gmp_desc;
|
||||
#else
|
||||
extern ltc_math_descriptor EXT_MATH_LIB;
|
||||
ltc_mp = EXT_MATH_LIB;
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
void hash_gen(void)
|
||||
{
|
||||
unsigned char md[MAXBLOCKSIZE], *buf;
|
||||
@ -880,7 +734,23 @@ void lrw_gen(void)
|
||||
|
||||
int main(void)
|
||||
{
|
||||
reg_algs();
|
||||
register_all_ciphers();
|
||||
register_all_hashes();
|
||||
register_all_prngs();
|
||||
#ifdef USE_LTM
|
||||
ltc_mp = ltm_desc;
|
||||
#elif defined(USE_TFM)
|
||||
ltc_mp = tfm_desc;
|
||||
#elif defined(USE_GMP)
|
||||
ltc_mp = gmp_desc;
|
||||
#elif defined(EXT_MATH_LIB)
|
||||
extern ltc_math_descriptor EXT_MATH_LIB;
|
||||
ltc_mp = EXT_MATH_LIB;
|
||||
#else
|
||||
fprintf(stderr, "No MPI provider available\n");
|
||||
exit(EXIT_FAILURE);
|
||||
#endif
|
||||
|
||||
printf("Generating hash vectors..."); fflush(stdout); hash_gen(); printf("done\n");
|
||||
printf("Generating cipher vectors..."); fflush(stdout); cipher_gen(); printf("done\n");
|
||||
printf("Generating HMAC vectors..."); fflush(stdout); hmac_gen(); printf("done\n");
|
||||
|
43
helper.pl
43
helper.pl
@ -27,7 +27,7 @@ sub write_file {
|
||||
|
||||
sub check_source {
|
||||
my @all_files = (bsd_glob("makefile*"), bsd_glob("*.sh"), bsd_glob("*.pl"));
|
||||
find({ wanted=>sub { push @all_files, $_ if -f $_ }, no_chdir=>1 }, qw/src testprof demos/);
|
||||
find({ wanted=>sub { push @all_files, $_ if -f $_ }, no_chdir=>1 }, qw/src tests demos/);
|
||||
|
||||
my $fails = 0;
|
||||
for my $file (sort @all_files) {
|
||||
@ -81,22 +81,33 @@ sub check_defines {
|
||||
return $fails;
|
||||
}
|
||||
|
||||
sub check_hashes {
|
||||
sub check_descriptor {
|
||||
my $which = shift;
|
||||
my $what = shift;
|
||||
my @src;
|
||||
my @descriptors;
|
||||
find({ wanted => sub { push @src, $_ if $_ =~ /\.c$/ }, no_chdir=>1 }, './src/hashes/');
|
||||
find({ wanted => sub { push @src, $_ if $_ =~ /\.c$/ }, no_chdir=>1 }, "./src/${which}/");
|
||||
for my $f (@src) {
|
||||
my @n = map { my $x = $_; $x =~ s/^.*?ltc_hash_descriptor\s+(\S+).*$/$1/; $x } grep { $_ =~ /ltc_hash_descriptor/ } split /\n/, read_file($f);
|
||||
my @n = map { my $x = $_; $x =~ s/^.*?ltc_${what}_descriptor\s+(\S+).*$/$1/; $x } grep { $_ =~ /ltc_${what}_descriptor/ } split /\n/, read_file($f);
|
||||
push @descriptors, @n if @n;
|
||||
}
|
||||
my $fails = 0;
|
||||
for my $d (@descriptors) {
|
||||
for my $f (qw{ demos/tv_gen.c demos/hashsum.c testprof/x86_prof.c }) {
|
||||
for my $f ("./src/misc/crypt/crypt_register_all_${which}.c") {
|
||||
my $txt = read_file($f);
|
||||
warn "$d missing in $f\n" and $fails++ if $txt !~ /\Q$d\E/;
|
||||
}
|
||||
}
|
||||
warn( $fails > 0 ? "check-hashes: FAIL $fails\n" : "check-hashes: PASS\n" );
|
||||
my $name = sprintf("%-17s", "check-${which}:");
|
||||
warn( $fails > 0 ? "${name}FAIL $fails\n" : "${name}PASS\n" );
|
||||
return $fails;
|
||||
}
|
||||
|
||||
sub check_descriptors {
|
||||
my $fails = 0;
|
||||
$fails = $fails + check_descriptor("ciphers", "cipher");
|
||||
$fails = $fails + check_descriptor("hashes", "hash");
|
||||
$fails = $fails + check_descriptor("prngs", "prng");
|
||||
return $fails;
|
||||
}
|
||||
|
||||
@ -234,7 +245,7 @@ sub process_makefiles {
|
||||
my @all = ();
|
||||
find({ no_chdir => 1, wanted => sub { push @all, $_ if -f $_ && $_ =~ /\.(c|h)$/ } }, 'src');
|
||||
my @t = qw();
|
||||
find({ no_chdir => 1, wanted => sub { push @t, $_ if $_ =~ /(no_prng|test_driver|x86_prof|_tests?).c$/ } }, 'testprof');
|
||||
find({ no_chdir => 1, wanted => sub { push @t, $_ if $_ =~ /(common|no_prng|_tests?|test).c$/ } }, 'tests');
|
||||
|
||||
my @o = sort ('src/ciphers/aes/aes_enc.o', map { my $x = $_; $x =~ s/\.c$/.o/; $x } @c);
|
||||
my $var_o = prepare_variable("OBJECTS", @o);
|
||||
@ -291,14 +302,14 @@ sub die_usage {
|
||||
MARKER
|
||||
}
|
||||
|
||||
GetOptions( "s|check-source" => \my $check_source,
|
||||
"d|check-defines" => \my $check_defines,
|
||||
"h|check-hashes" => \my $check_hashes,
|
||||
"m|check-makefiles" => \my $check_makefiles,
|
||||
"a|check-all" => \my $check_all,
|
||||
"u|update-makefiles" => \my $update_makefiles,
|
||||
"f|fixupind=s" => \my $fixupind,
|
||||
"h|help" => \my $help
|
||||
GetOptions( "s|check-source" => \my $check_source,
|
||||
"c|check-descriptors" => \my $check_descriptors,
|
||||
"d|check-defines" => \my $check_defines,
|
||||
"m|check-makefiles" => \my $check_makefiles,
|
||||
"a|check-all" => \my $check_all,
|
||||
"u|update-makefiles" => \my $update_makefiles,
|
||||
"f|fixupind=s" => \my $fixupind,
|
||||
"h|help" => \my $help
|
||||
) or die_usage;
|
||||
|
||||
if ($fixupind) {
|
||||
@ -311,7 +322,7 @@ if ($fixupind) {
|
||||
my $failure;
|
||||
$failure ||= check_source() if $check_all || $check_source;
|
||||
$failure ||= check_defines() if $check_all || $check_defines;
|
||||
$failure ||= check_hashes() if $check_all || $check_hashes;
|
||||
$failure ||= check_descriptors() if $check_all || $check_descriptors;
|
||||
$failure ||= process_makefiles(0) if $check_all || $check_makefiles;
|
||||
$failure ||= process_makefiles(1) if $update_makefiles;
|
||||
|
||||
|
@ -1343,6 +1343,10 @@
|
||||
RelativePath="src\misc\burn_stack.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="src\misc\compare_testvector.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="src\misc\crc32.c"
|
||||
>
|
||||
@ -1462,6 +1466,18 @@
|
||||
RelativePath="src\misc\crypt\crypt_prng_rng_descriptor.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="src\misc\crypt\crypt_register_all_ciphers.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="src\misc\crypt\crypt_register_all_hashes.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="src\misc\crypt\crypt_register_all_prngs.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="src\misc\crypt\crypt_register_cipher.c"
|
||||
>
|
||||
|
23
makefile
23
makefile
@ -27,9 +27,6 @@ INSTALL_CMD = install
|
||||
ifndef LIBNAME
|
||||
LIBNAME=libtomcrypt.a
|
||||
endif
|
||||
ifndef LIBTEST
|
||||
LIBTEST=libtomcrypt_prof.a
|
||||
endif
|
||||
|
||||
|
||||
include makefile_include.mk
|
||||
@ -61,27 +58,17 @@ ifneq ($V,1)
|
||||
endif
|
||||
${silent} $(RANLIB) $@
|
||||
|
||||
$(LIBTEST): $(TOBJECTS)
|
||||
ifneq ($V,1)
|
||||
@echo " * ${AR} $@"
|
||||
endif
|
||||
${silent} $(AR) $(ARFLAGS) $@ $(TOBJECTS)
|
||||
ifneq ($V,1)
|
||||
@echo " * ${RANLIB} $@"
|
||||
endif
|
||||
${silent} $(RANLIB) $@
|
||||
|
||||
timing: $(LIBNAME) $(LIBTEST) $(TIMINGS)
|
||||
timing: $(LIBNAME) $(TIMINGS)
|
||||
ifneq ($V,1)
|
||||
@echo " * ${CC} $@"
|
||||
endif
|
||||
${silent} $(CC) $(LDFLAGS) $(TIMINGS) $(LIBTEST) $(LIB_PRE) $(LIBNAME) $(LIB_POST) $(EXTRALIBS) -o $(TIMING)
|
||||
${silent} $(CC) $(LDFLAGS) $(TIMINGS) $(LIB_PRE) $(LIBNAME) $(LIB_POST) $(EXTRALIBS) -o $(TIMING)
|
||||
|
||||
test: $(LIBNAME) $(LIBTEST) $(TESTS)
|
||||
test: $(LIBNAME) $(TOBJECTS)
|
||||
ifneq ($V,1)
|
||||
@echo " * ${CC} $@"
|
||||
endif
|
||||
${silent} $(CC) $(LDFLAGS) $(TESTS) $(LIBTEST) $(LIB_PRE) $(LIBNAME) $(LIB_POST) $(EXTRALIBS) -o $(TEST)
|
||||
${silent} $(CC) $(LDFLAGS) $(TOBJECTS) $(LIB_PRE) $(LIBNAME) $(LIB_POST) $(EXTRALIBS) -o $(TEST)
|
||||
|
||||
# build the demos from a template
|
||||
define DEMO_template
|
||||
@ -102,8 +89,6 @@ install: .common_install
|
||||
|
||||
install_bins: .common_install_bins
|
||||
|
||||
install_test: .common_install_test
|
||||
|
||||
profile:
|
||||
CFLAGS="$(CFLAGS) -fprofile-generate" $(MAKE) timing EXTRALIBS="$(EXTRALIBS) -lgcov"
|
||||
./timing
|
||||
|
@ -25,7 +25,7 @@ CFLAGS = -O2 -DUSE_LTM -DLTM_DESC -I../libtommath
|
||||
EXTRALIBS = -L../libtommath -ltommath
|
||||
|
||||
#Compilation flags
|
||||
LTC_CFLAGS = $(CFLAGS) -Isrc/headers -Itestprof -DLTC_SOURCE
|
||||
LTC_CFLAGS = $(CFLAGS) -Isrc/headers -Itests -DLTC_SOURCE
|
||||
LTC_LDFLAGS = $(LDFLAGS) $(EXTRALIBS)
|
||||
VERSION=1.17
|
||||
|
||||
@ -33,7 +33,6 @@ VERSION=1.17
|
||||
LIBMAIN_S =libtomcrypt.a
|
||||
LIBMAIN_I =libtomcrypt.dll.a
|
||||
LIBMAIN_D =libtomcrypt.dll
|
||||
LIBTEST_S =libtomcrypt_prof.a
|
||||
|
||||
#List of objects to compile (all goes to libtomcrypt.a)
|
||||
OBJECTS=src/ciphers/aes/aes.o src/ciphers/aes/aes_enc.o src/ciphers/anubis.o src/ciphers/blowfish.o \
|
||||
@ -92,17 +91,19 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
|
||||
src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
|
||||
src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
|
||||
src/math/rand_bn.o src/math/rand_prime.o src/math/tfm_desc.o src/misc/adler32.o \
|
||||
src/misc/base64/base64_decode.o src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crc32.o \
|
||||
src/misc/crypt/crypt.o src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
|
||||
src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_constants.o \
|
||||
src/misc/crypt/crypt_find_cipher.o src/misc/crypt/crypt_find_cipher_any.o \
|
||||
src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash.o \
|
||||
src/misc/crypt/crypt_find_hash_any.o src/misc/crypt/crypt_find_hash_id.o \
|
||||
src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
|
||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
|
||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
|
||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
|
||||
src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
|
||||
src/misc/base64/base64_decode.o src/misc/base64/base64_encode.o src/misc/burn_stack.o \
|
||||
src/misc/compare_testvector.o src/misc/crc32.o src/misc/crypt/crypt.o src/misc/crypt/crypt_argchk.o \
|
||||
src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
|
||||
src/misc/crypt/crypt_constants.o src/misc/crypt/crypt_find_cipher.o \
|
||||
src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
|
||||
src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
|
||||
src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
|
||||
src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
|
||||
src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_inits.o \
|
||||
src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
|
||||
src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_prng_rng_descriptor.o \
|
||||
src/misc/crypt/crypt_register_all_ciphers.o src/misc/crypt/crypt_register_all_hashes.o \
|
||||
src/misc/crypt/crypt_register_all_prngs.o src/misc/crypt/crypt_register_cipher.o \
|
||||
src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
|
||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
|
||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
|
||||
@ -187,13 +188,12 @@ src/stream/chacha/chacha_keystream.o src/stream/chacha/chacha_setup.o src/stream
|
||||
src/stream/rc4/rc4.o src/stream/rc4/rc4_test.o src/stream/sober128/sober128.o \
|
||||
src/stream/sober128/sober128_test.o
|
||||
|
||||
#List of test objects to compile (all goes to libtomcrypt_prof.a)
|
||||
TOBJECTS=testprof/base64_test.o testprof/cipher_hash_test.o testprof/der_tests.o testprof/dh_test.o \
|
||||
testprof/dsa_test.o testprof/ecc_test.o testprof/file_test.o testprof/katja_test.o testprof/mac_test.o \
|
||||
testprof/misc_test.o testprof/modes_test.o testprof/multi_test.o testprof/no_prng.o \
|
||||
testprof/pkcs_1_eme_test.o testprof/pkcs_1_emsa_test.o testprof/pkcs_1_oaep_test.o \
|
||||
testprof/pkcs_1_pss_test.o testprof/pkcs_1_test.o testprof/rotate_test.o testprof/rsa_test.o \
|
||||
testprof/store_test.o testprof/test_driver.o testprof/x86_prof.o
|
||||
#List of test objects to compile
|
||||
TOBJECTS=tests/base64_test.o tests/cipher_hash_test.o tests/common.o tests/der_test.o tests/dh_test.o \
|
||||
tests/dsa_test.o tests/ecc_test.o tests/file_test.o tests/katja_test.o tests/mac_test.o tests/misc_test.o \
|
||||
tests/modes_test.o tests/multi_test.o tests/no_prng.o tests/pkcs_1_eme_test.o tests/pkcs_1_emsa_test.o \
|
||||
tests/pkcs_1_oaep_test.o tests/pkcs_1_pss_test.o tests/pkcs_1_test.o tests/prng_test.o \
|
||||
tests/rotate_test.o tests/rsa_test.o tests/store_test.o tests/test.o
|
||||
|
||||
#The following headers will be installed by "make install"
|
||||
HEADERS=src/headers/tomcrypt.h src/headers/tomcrypt_argchk.h src/headers/tomcrypt_cfg.h \
|
||||
@ -220,16 +220,11 @@ src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c
|
||||
|
||||
#Dependencies on *.h
|
||||
$(OBJECTS): $(HEADERS)
|
||||
$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h
|
||||
$(TOBJECTS): $(HEADERS) tests/tomcrypt_test.h
|
||||
|
||||
.c.o:
|
||||
$(CC) $(LTC_CFLAGS) -c $< -o $@
|
||||
|
||||
#Create libtomcrypt_prof.a
|
||||
$(LIBTEST_S): $(TOBJECTS)
|
||||
$(AR) $(ARFLAGS) $@ $(TOBJECTS)
|
||||
$(RANLIB) $@
|
||||
|
||||
#Create libtomcrypt.a
|
||||
$(LIBMAIN_S): $(OBJECTS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJECTS)
|
||||
@ -242,32 +237,31 @@ $(LIBMAIN_D) $(LIBMAIN_I): $(OBJECTS)
|
||||
|
||||
#Demo tools/utilities
|
||||
hashsum.exe: demos/hashsum.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/hashsum.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
ltcrypt.exe: demos/ltcrypt.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/ltcrypt.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
small.exe: demos/small.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/small.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
tv_gen.exe: demos/tv_gen.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/tv_gen.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
timing.exe: demos/timing.o $(LIBMAIN_S)
|
||||
$(CC) demos/timing.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
|
||||
#Tests + timing tests
|
||||
timing.exe: demos/timing.o $(LIBTEST_S) $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
@echo NOTICE: start the tests by: timing.exe
|
||||
test.exe: demos/test.o $(LIBTEST_S) $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
@echo NOTICE: start the tests by: test.exe
|
||||
#Tests
|
||||
test.exe: $(TOBJECTS) $(LIBMAIN_S)
|
||||
$(CC) $(TOBJECTS) $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
@echo NOTICE: start the tests by launching test.exe
|
||||
|
||||
all: $(LIBMAIN_S) $(LIBMAIN_I) $(LIBMAIN_D) $(LIBTEST_S) hashsum.exe ltcrypt.exe small.exe tv_gen.exe timing.exe test.exe
|
||||
all: $(LIBMAIN_S) $(LIBMAIN_I) $(LIBMAIN_D) hashsum.exe ltcrypt.exe small.exe tv_gen.exe timing.exe test.exe
|
||||
|
||||
test: test.exe
|
||||
|
||||
clean:
|
||||
@cmd /c del /Q *_tv.txt 2>nul
|
||||
@cmd /c del /Q /S *.o *.a *.exe *.dll 2>nul
|
||||
@-cmd /c del /Q *_tv.txt 2>nul
|
||||
@-cmd /c del /Q /S *.o *.a *.exe *.dll 2>nul
|
||||
|
||||
#Install the library + headers
|
||||
install: $(LIBMAIN_S) $(LIBMAIN_I) $(LIBMAIN_D) $(LIBTEST_S)
|
||||
install: $(LIBMAIN_S) $(LIBMAIN_I) $(LIBMAIN_D)
|
||||
cmd /c if not exist "$(DESTDIR)\bin" mkdir "$(DESTDIR)\bin"
|
||||
cmd /c if not exist "$(DESTDIR)\lib" mkdir "$(DESTDIR)\lib"
|
||||
cmd /c if not exist "$(DESTDIR)\include" mkdir "$(DESTDIR)\include"
|
||||
|
@ -20,13 +20,12 @@ CFLAGS = /Ox /DUSE_LTM /DLTM_DESC /I../libtommath
|
||||
EXTRALIBS = ../libtommath/tommath.lib
|
||||
|
||||
#Compilation flags
|
||||
LTC_CFLAGS = $(CFLAGS) /nologo /Isrc/headers/ /Itestprof/ /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /DLTC_SOURCE /W3
|
||||
LTC_CFLAGS = $(CFLAGS) /nologo /Isrc/headers/ /Itests/ /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /DLTC_SOURCE /W3
|
||||
LTC_LDFLAGS = advapi32.lib $(EXTRALIBS)
|
||||
VERSION=1.17
|
||||
|
||||
#Libraries to be created (this makefile builds only static libraries)
|
||||
LIBMAIN_S =tomcrypt.lib
|
||||
LIBTEST_S =tomcrypt_prof.lib
|
||||
|
||||
#List of objects to compile (all goes to tomcrypt.lib)
|
||||
OBJECTS=src/ciphers/aes/aes.obj src/ciphers/aes/aes_enc.obj src/ciphers/anubis.obj src/ciphers/blowfish.obj \
|
||||
@ -85,17 +84,19 @@ src/mac/xcbc/xcbc_file.obj src/mac/xcbc/xcbc_init.obj src/mac/xcbc/xcbc_memory.o
|
||||
src/mac/xcbc/xcbc_memory_multi.obj src/mac/xcbc/xcbc_process.obj src/mac/xcbc/xcbc_test.obj \
|
||||
src/math/fp/ltc_ecc_fp_mulmod.obj src/math/gmp_desc.obj src/math/ltm_desc.obj src/math/multi.obj \
|
||||
src/math/rand_bn.obj src/math/rand_prime.obj src/math/tfm_desc.obj src/misc/adler32.obj \
|
||||
src/misc/base64/base64_decode.obj src/misc/base64/base64_encode.obj src/misc/burn_stack.obj src/misc/crc32.obj \
|
||||
src/misc/crypt/crypt.obj src/misc/crypt/crypt_argchk.obj src/misc/crypt/crypt_cipher_descriptor.obj \
|
||||
src/misc/crypt/crypt_cipher_is_valid.obj src/misc/crypt/crypt_constants.obj \
|
||||
src/misc/crypt/crypt_find_cipher.obj src/misc/crypt/crypt_find_cipher_any.obj \
|
||||
src/misc/crypt/crypt_find_cipher_id.obj src/misc/crypt/crypt_find_hash.obj \
|
||||
src/misc/crypt/crypt_find_hash_any.obj src/misc/crypt/crypt_find_hash_id.obj \
|
||||
src/misc/crypt/crypt_find_hash_oid.obj src/misc/crypt/crypt_find_prng.obj src/misc/crypt/crypt_fsa.obj \
|
||||
src/misc/crypt/crypt_hash_descriptor.obj src/misc/crypt/crypt_hash_is_valid.obj \
|
||||
src/misc/crypt/crypt_inits.obj src/misc/crypt/crypt_ltc_mp_descriptor.obj \
|
||||
src/misc/crypt/crypt_prng_descriptor.obj src/misc/crypt/crypt_prng_is_valid.obj \
|
||||
src/misc/crypt/crypt_prng_rng_descriptor.obj src/misc/crypt/crypt_register_cipher.obj \
|
||||
src/misc/base64/base64_decode.obj src/misc/base64/base64_encode.obj src/misc/burn_stack.obj \
|
||||
src/misc/compare_testvector.obj src/misc/crc32.obj src/misc/crypt/crypt.obj src/misc/crypt/crypt_argchk.obj \
|
||||
src/misc/crypt/crypt_cipher_descriptor.obj src/misc/crypt/crypt_cipher_is_valid.obj \
|
||||
src/misc/crypt/crypt_constants.obj src/misc/crypt/crypt_find_cipher.obj \
|
||||
src/misc/crypt/crypt_find_cipher_any.obj src/misc/crypt/crypt_find_cipher_id.obj \
|
||||
src/misc/crypt/crypt_find_hash.obj src/misc/crypt/crypt_find_hash_any.obj \
|
||||
src/misc/crypt/crypt_find_hash_id.obj src/misc/crypt/crypt_find_hash_oid.obj \
|
||||
src/misc/crypt/crypt_find_prng.obj src/misc/crypt/crypt_fsa.obj src/misc/crypt/crypt_hash_descriptor.obj \
|
||||
src/misc/crypt/crypt_hash_is_valid.obj src/misc/crypt/crypt_inits.obj \
|
||||
src/misc/crypt/crypt_ltc_mp_descriptor.obj src/misc/crypt/crypt_prng_descriptor.obj \
|
||||
src/misc/crypt/crypt_prng_is_valid.obj src/misc/crypt/crypt_prng_rng_descriptor.obj \
|
||||
src/misc/crypt/crypt_register_all_ciphers.obj src/misc/crypt/crypt_register_all_hashes.obj \
|
||||
src/misc/crypt/crypt_register_all_prngs.obj src/misc/crypt/crypt_register_cipher.obj \
|
||||
src/misc/crypt/crypt_register_hash.obj src/misc/crypt/crypt_register_prng.obj src/misc/crypt/crypt_sizes.obj \
|
||||
src/misc/crypt/crypt_unregister_cipher.obj src/misc/crypt/crypt_unregister_hash.obj \
|
||||
src/misc/crypt/crypt_unregister_prng.obj src/misc/error_to_string.obj src/misc/hkdf/hkdf.obj \
|
||||
@ -180,13 +181,12 @@ src/stream/chacha/chacha_keystream.obj src/stream/chacha/chacha_setup.obj src/st
|
||||
src/stream/rc4/rc4.obj src/stream/rc4/rc4_test.obj src/stream/sober128/sober128.obj \
|
||||
src/stream/sober128/sober128_test.obj
|
||||
|
||||
#List of test objects to compile (all goes to tomcrypt_prof.lib)
|
||||
TOBJECTS=testprof/base64_test.obj testprof/cipher_hash_test.obj testprof/der_tests.obj testprof/dh_test.obj \
|
||||
testprof/dsa_test.obj testprof/ecc_test.obj testprof/file_test.obj testprof/katja_test.obj testprof/mac_test.obj \
|
||||
testprof/misc_test.obj testprof/modes_test.obj testprof/multi_test.obj testprof/no_prng.obj \
|
||||
testprof/pkcs_1_eme_test.obj testprof/pkcs_1_emsa_test.obj testprof/pkcs_1_oaep_test.obj \
|
||||
testprof/pkcs_1_pss_test.obj testprof/pkcs_1_test.obj testprof/rotate_test.obj testprof/rsa_test.obj \
|
||||
testprof/store_test.obj testprof/test_driver.obj testprof/x86_prof.obj
|
||||
#List of test objects to compile
|
||||
TOBJECTS=tests/base64_test.obj tests/cipher_hash_test.obj tests/common.obj tests/der_test.obj tests/dh_test.obj \
|
||||
tests/dsa_test.obj tests/ecc_test.obj tests/file_test.obj tests/katja_test.obj tests/mac_test.obj tests/misc_test.obj \
|
||||
tests/modes_test.obj tests/multi_test.obj tests/no_prng.obj tests/pkcs_1_eme_test.obj tests/pkcs_1_emsa_test.obj \
|
||||
tests/pkcs_1_oaep_test.obj tests/pkcs_1_pss_test.obj tests/pkcs_1_test.obj tests/prng_test.obj \
|
||||
tests/rotate_test.obj tests/rsa_test.obj tests/store_test.obj tests/test.obj
|
||||
|
||||
#The following headers will be installed by "make install"
|
||||
HEADERS=src/headers/tomcrypt.h src/headers/tomcrypt_argchk.h src/headers/tomcrypt_cfg.h \
|
||||
@ -213,45 +213,42 @@ src/hashes/sha2/sha256.obj: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c
|
||||
|
||||
#Dependencies on *.h
|
||||
$(OBJECTS): $(HEADERS)
|
||||
$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h
|
||||
$(TOBJECTS): $(HEADERS) tests/tomcrypt_test.h
|
||||
|
||||
.c.obj:
|
||||
$(CC) $(LTC_CFLAGS) /c $< /Fo$@
|
||||
|
||||
#Create tomcrypt_prof.lib
|
||||
$(LIBTEST_S): $(TOBJECTS)
|
||||
lib /out:$(LIBTEST_S) $(TOBJECTS)
|
||||
|
||||
#Create tomcrypt.lib
|
||||
$(LIBMAIN_S): $(OBJECTS)
|
||||
lib /out:$(LIBMAIN_S) $(OBJECTS)
|
||||
|
||||
#Demo tools/utilities
|
||||
hashsum.exe: demos/hashsum.c $(LIBMAIN_S)
|
||||
cl $(LTC_CFLAGS) demos/hashsum.c $(LIBMAIN_S) $(LTC_LDFLAGS)
|
||||
hashsum.exe: demos/hashsum.c tests/common.c $(LIBMAIN_S)
|
||||
cl $(LTC_CFLAGS) demos/hashsum.c tests/common.c $(LIBMAIN_S) $(LTC_LDFLAGS) /Fe$@
|
||||
ltcrypt.exe: demos/ltcrypt.c $(LIBMAIN_S)
|
||||
cl $(LTC_CFLAGS) demos/ltcrypt.c $(LIBMAIN_S) $(LTC_LDFLAGS)
|
||||
cl $(LTC_CFLAGS) demos/ltcrypt.c tests/common.c $(LIBMAIN_S) $(LTC_LDFLAGS) /Fe$@
|
||||
small.exe: demos/small.c $(LIBMAIN_S)
|
||||
cl $(LTC_CFLAGS) demos/small.c $(LIBMAIN_S) $(LTC_LDFLAGS)
|
||||
cl $(LTC_CFLAGS) demos/small.c tests/common.c $(LIBMAIN_S) $(LTC_LDFLAGS) /Fe$@
|
||||
tv_gen.exe: demos/tv_gen.c $(LIBMAIN_S)
|
||||
cl $(LTC_CFLAGS) demos/tv_gen.c $(LIBMAIN_S) $(LTC_LDFLAGS)
|
||||
cl $(LTC_CFLAGS) demos/tv_gen.c tests/common.c $(LIBMAIN_S) $(LTC_LDFLAGS) /Fe$@
|
||||
timing.exe: demos/timing.c $(LIBMAIN_S)
|
||||
cl $(LTC_CFLAGS) demos/timing.c tests/common.c $(LIBMAIN_S) $(LTC_LDFLAGS) /Fe$@
|
||||
|
||||
#Tests + timing tests
|
||||
timing.exe: demos/timing.c $(LIBMAIN_S) $(LIBTEST_S)
|
||||
cl $(LTC_CFLAGS) demos/timing.c $(LIBTEST_S) $(LIBMAIN_S) $(LTC_LDFLAGS)
|
||||
test.exe: demos/test.c $(LIBMAIN_S) $(LIBTEST_S)
|
||||
cl $(LTC_CFLAGS) demos/test.c $(LIBTEST_S) $(LIBMAIN_S) $(LTC_LDFLAGS)
|
||||
#Tests
|
||||
test.exe: $(LIBMAIN_S) $(TOBJECTS)
|
||||
cl $(LTC_CFLAGS) $(TOBJECTS) $(LIBMAIN_S) $(LTC_LDFLAGS) /Fe$@
|
||||
@echo NOTICE: start the tests by launching test.exe
|
||||
|
||||
all: $(LIBMAIN_S) $(LIBTEST_S) hashsum.exe ltcrypt.exe small.exe tv_gen.exe timing.exe test.exe
|
||||
all: $(LIBMAIN_S) hashsum.exe ltcrypt.exe small.exe tv_gen.exe timing.exe test.exe
|
||||
|
||||
test: test.exe
|
||||
|
||||
clean:
|
||||
@cmd /c del /Q *_tv.txt 2>nul
|
||||
@cmd /c del /Q /S *.OBJ *.LIB *.EXE *.DLL 2>nul
|
||||
@-cmd /c del /Q *_tv.txt 2>nul
|
||||
@-cmd /c del /Q /S *.OBJ *.LIB *.EXE *.DLL 2>nul
|
||||
|
||||
#Install the library + headers
|
||||
install: $(LIBMAIN_S) $(LIBTEST_S)
|
||||
install: $(LIBMAIN_S)
|
||||
cmd /c if not exist "$(DESTDIR)\bin" mkdir "$(DESTDIR)\bin"
|
||||
cmd /c if not exist "$(DESTDIR)\lib" mkdir "$(DESTDIR)\lib"
|
||||
cmd /c if not exist "$(DESTDIR)\include" mkdir "$(DESTDIR)\include"
|
||||
|
@ -18,9 +18,6 @@ LTCOMPILE = $(LT) --mode=compile --tag=CC $(CC)
|
||||
INSTALL_CMD = $(LT) --mode=install install
|
||||
|
||||
#Output filenames for various targets.
|
||||
ifndef LIBTEST
|
||||
LIBTEST=libtomcrypt_prof.la
|
||||
endif
|
||||
ifndef LIBNAME
|
||||
LIBNAME=libtomcrypt.la
|
||||
endif
|
||||
@ -39,9 +36,6 @@ src/ciphers/aes/aes_enc.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c
|
||||
$(LIBNAME): $(OBJECTS)
|
||||
$(LT) --mode=link --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) `find ./src -type f -name "*.lo" | LC_ALL=C sort` $(EXTRALIBS) -o $@ -rpath $(LIBPATH) -version-info $(VERSION_LT)
|
||||
|
||||
$(LIBTEST): $(TOBJECTS)
|
||||
$(LT) --mode=link --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) `find ./testprof -type f -name "*.lo" | LC_ALL=C sort` -o $@ -rpath $(LIBPATH) -version-info $(VERSION_LT)
|
||||
|
||||
install: .common_install
|
||||
sed -e 's,^prefix=.*,prefix=$(DESTDIR),' -e 's,^Version:.*,Version: $(VERSION),' libtomcrypt.pc.in > libtomcrypt.pc
|
||||
install -d $(LIBPATH)/pkgconfig
|
||||
@ -49,13 +43,11 @@ install: .common_install
|
||||
|
||||
install_bins: .common_install_bins
|
||||
|
||||
install_test: .common_install_test
|
||||
test: $(LIBNAME) $(TOBJECTS)
|
||||
$(LT) --mode=link --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $(TEST) $(TOBJECTS) $(LIBNAME) $(EXTRALIBS)
|
||||
|
||||
test: $(LIBNAME) $(LIBTEST) $(TESTS)
|
||||
$(LT) --mode=link --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $(TEST) $(TESTS) $(LIBTEST) $(LIBNAME) $(EXTRALIBS)
|
||||
|
||||
timing: $(LIBNAME) $(LIBTEST) $(TIMINGS)
|
||||
$(LT) --mode=link --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $(TIMING) $(TIMINGS) $(LIBTEST) $(LIBNAME) $(EXTRALIBS)
|
||||
timing: $(TIMINGS) $(LIBNAME)
|
||||
$(LT) --mode=link --tag=CC $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $(TIMING) $^ $(EXTRALIBS)
|
||||
|
||||
# build the demos from a template
|
||||
define DEMO_template
|
||||
|
@ -32,13 +32,12 @@ CFLAGS = -O2 -DUSE_LTM -DLTM_DESC -I../libtommath
|
||||
EXTRALIBS = ../libtommath/libtommath.a
|
||||
|
||||
#Compilation flags
|
||||
LTC_CFLAGS = $(CFLAGS) -Isrc/headers -Itestprof -DLTC_SOURCE
|
||||
LTC_CFLAGS = $(CFLAGS) -Isrc/headers -Itests -DLTC_SOURCE
|
||||
LTC_LDFLAGS = $(LDFLAGS) $(EXTRALIBS)
|
||||
VERSION=1.17
|
||||
|
||||
#Libraries to be created (this makefile builds only static libraries)
|
||||
LIBMAIN_S =libtomcrypt.a
|
||||
LIBTEST_S =libtomcrypt_prof.a
|
||||
|
||||
#List of objects to compile (all goes to libtomcrypt.a)
|
||||
OBJECTS=src/ciphers/aes/aes.o src/ciphers/aes/aes_enc.o src/ciphers/anubis.o src/ciphers/blowfish.o \
|
||||
@ -97,17 +96,19 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
|
||||
src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
|
||||
src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
|
||||
src/math/rand_bn.o src/math/rand_prime.o src/math/tfm_desc.o src/misc/adler32.o \
|
||||
src/misc/base64/base64_decode.o src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crc32.o \
|
||||
src/misc/crypt/crypt.o src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
|
||||
src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_constants.o \
|
||||
src/misc/crypt/crypt_find_cipher.o src/misc/crypt/crypt_find_cipher_any.o \
|
||||
src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash.o \
|
||||
src/misc/crypt/crypt_find_hash_any.o src/misc/crypt/crypt_find_hash_id.o \
|
||||
src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
|
||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
|
||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
|
||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
|
||||
src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
|
||||
src/misc/base64/base64_decode.o src/misc/base64/base64_encode.o src/misc/burn_stack.o \
|
||||
src/misc/compare_testvector.o src/misc/crc32.o src/misc/crypt/crypt.o src/misc/crypt/crypt_argchk.o \
|
||||
src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
|
||||
src/misc/crypt/crypt_constants.o src/misc/crypt/crypt_find_cipher.o \
|
||||
src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
|
||||
src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
|
||||
src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
|
||||
src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
|
||||
src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_inits.o \
|
||||
src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
|
||||
src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_prng_rng_descriptor.o \
|
||||
src/misc/crypt/crypt_register_all_ciphers.o src/misc/crypt/crypt_register_all_hashes.o \
|
||||
src/misc/crypt/crypt_register_all_prngs.o src/misc/crypt/crypt_register_cipher.o \
|
||||
src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
|
||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
|
||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
|
||||
@ -193,12 +194,11 @@ src/stream/rc4/rc4.o src/stream/rc4/rc4_test.o src/stream/sober128/sober128.o \
|
||||
src/stream/sober128/sober128_test.o
|
||||
|
||||
#List of test objects to compile (all goes to libtomcrypt_prof.a)
|
||||
TOBJECTS=testprof/base64_test.o testprof/cipher_hash_test.o testprof/der_tests.o testprof/dh_test.o \
|
||||
testprof/dsa_test.o testprof/ecc_test.o testprof/file_test.o testprof/katja_test.o testprof/mac_test.o \
|
||||
testprof/misc_test.o testprof/modes_test.o testprof/multi_test.o testprof/no_prng.o \
|
||||
testprof/pkcs_1_eme_test.o testprof/pkcs_1_emsa_test.o testprof/pkcs_1_oaep_test.o \
|
||||
testprof/pkcs_1_pss_test.o testprof/pkcs_1_test.o testprof/rotate_test.o testprof/rsa_test.o \
|
||||
testprof/store_test.o testprof/test_driver.o testprof/x86_prof.o
|
||||
TOBJECTS=tests/base64_test.o tests/cipher_hash_test.o tests/common.o tests/der_test.o tests/dh_test.o \
|
||||
tests/dsa_test.o tests/ecc_test.o tests/file_test.o tests/katja_test.o tests/mac_test.o tests/misc_test.o \
|
||||
tests/modes_test.o tests/multi_test.o tests/no_prng.o tests/pkcs_1_eme_test.o tests/pkcs_1_emsa_test.o \
|
||||
tests/pkcs_1_oaep_test.o tests/pkcs_1_pss_test.o tests/pkcs_1_test.o tests/prng_test.o \
|
||||
tests/rotate_test.o tests/rsa_test.o tests/store_test.o tests/test.o
|
||||
|
||||
#The following headers will be installed by "make install"
|
||||
HEADERS=src/headers/tomcrypt.h src/headers/tomcrypt_argchk.h src/headers/tomcrypt_cfg.h \
|
||||
@ -225,18 +225,13 @@ src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c
|
||||
|
||||
#Dependencies on *.h
|
||||
$(OBJECTS): $(HEADERS)
|
||||
$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h
|
||||
$(TOBJECTS): $(HEADERS) tests/tomcrypt_test.h
|
||||
|
||||
#This is necessary for compatibility with BSD make (namely on OpenBSD)
|
||||
.SUFFIXES: .o .c
|
||||
.c.o:
|
||||
$(CC) $(LTC_CFLAGS) -c $< -o $@
|
||||
|
||||
#Create libtomcrypt_prof.a
|
||||
$(LIBTEST_S): $(TOBJECTS)
|
||||
$(AR) $(ARFLAGS) $@ $(TOBJECTS)
|
||||
$(RANLIB) $@
|
||||
|
||||
#Create libtomcrypt.a
|
||||
$(LIBMAIN_S): $(OBJECTS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJECTS)
|
||||
@ -244,28 +239,27 @@ $(LIBMAIN_S): $(OBJECTS)
|
||||
|
||||
#Demo tools/utilities
|
||||
hashsum: demos/hashsum.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/hashsum.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
ltcrypt: demos/ltcrypt.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/ltcrypt.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
small: demos/small.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/small.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
tv_gen: demos/tv_gen.o $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
$(CC) demos/tv_gen.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
timing: demos/timing.o $(LIBMAIN_S)
|
||||
$(CC) demos/timing.o $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
|
||||
#Tests + timing tests
|
||||
timing: demos/timing.o $(LIBTEST_S) $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
@echo "NOTICE: start the timing tests by: ./timing"
|
||||
test: demos/test.o $(LIBTEST_S) $(LIBMAIN_S)
|
||||
$(CC) $? $(LTC_LDFLAGS) -o $@
|
||||
#Tests
|
||||
test: $(TOBJECTS) $(LIBMAIN_S)
|
||||
$(CC) $(TOBJECTS) $(LIBMAIN_S) $(LTC_LDFLAGS) -o $@
|
||||
@echo "NOTICE: start the tests by: ./test"
|
||||
|
||||
all: $(LIBMAIN_S) $(LIBTEST_S) hashsum ltcrypt small tv_gen timing test
|
||||
all: $(LIBMAIN_S) hashsum ltcrypt small tv_gen timing test
|
||||
|
||||
#NOTE: this makefile works also on cygwin, thus we need to delete *.exe
|
||||
clean:
|
||||
-@rm -f $(OBJECTS) $(TOBJECTS)
|
||||
-@rm -f $(LIBMAIN_S) $(LIBTEST_S)
|
||||
-@rm -f $(LIBMAIN_S)
|
||||
-@rm -f demos/*.o *_tv.txt
|
||||
-@rm -f test tv_gen hashsum crypt small timing
|
||||
-@rm -f test.exe tv_gen.exe hashsum.exe crypt.exe small.exe timing.exe
|
||||
|
@ -63,10 +63,11 @@ CFLAGS += -Wno-type-limits
|
||||
|
||||
ifdef LTC_DEBUG
|
||||
# compile for DEBUGGING (required for ccmalloc checking!!!)
|
||||
CFLAGS += -g3 -DLTC_NO_ASM
|
||||
ifneq (,$(strip $(LTC_DEBUG)))
|
||||
CFLAGS += -g3 -DLTC_NO_ASM -DLTC_TEST_DBG=$(LTC_DEBUG)
|
||||
CFLAGS += -DLTC_TEST_DBG=$(LTC_DEBUG)
|
||||
else
|
||||
CFLAGS += -g3 -DLTC_NO_ASM -DLTC_TEST_DBG
|
||||
CFLAGS += -DLTC_TEST_DBG
|
||||
endif
|
||||
else
|
||||
|
||||
@ -102,8 +103,8 @@ endif
|
||||
DSOURCES = $(wildcard demos/*.c)
|
||||
DOBJECTS = $(DSOURCES:.c=.o)
|
||||
|
||||
#List of testprof headers
|
||||
THEADERS = $(wildcard testprof/*.h)
|
||||
#List of tests headers
|
||||
THEADERS = $(wildcard tests/*.h)
|
||||
|
||||
TIMING=timing
|
||||
TEST=test
|
||||
@ -113,7 +114,6 @@ UNBROKEN_DEMOS=$(USEFUL_DEMOS) ltcrypt small tv_gen sizes constants
|
||||
DEMOS=$(UNBROKEN_DEMOS) openssl-enc
|
||||
|
||||
TIMINGS=demos/timing.o
|
||||
TESTS=demos/test.o
|
||||
|
||||
#LIBPATH The directory for libtomcrypt to be installed to.
|
||||
#INCPATH The directory to install the header files for libtomcrypt.
|
||||
@ -195,17 +195,19 @@ src/mac/xcbc/xcbc_file.o src/mac/xcbc/xcbc_init.o src/mac/xcbc/xcbc_memory.o \
|
||||
src/mac/xcbc/xcbc_memory_multi.o src/mac/xcbc/xcbc_process.o src/mac/xcbc/xcbc_test.o \
|
||||
src/math/fp/ltc_ecc_fp_mulmod.o src/math/gmp_desc.o src/math/ltm_desc.o src/math/multi.o \
|
||||
src/math/rand_bn.o src/math/rand_prime.o src/math/tfm_desc.o src/misc/adler32.o \
|
||||
src/misc/base64/base64_decode.o src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crc32.o \
|
||||
src/misc/crypt/crypt.o src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
|
||||
src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_constants.o \
|
||||
src/misc/crypt/crypt_find_cipher.o src/misc/crypt/crypt_find_cipher_any.o \
|
||||
src/misc/crypt/crypt_find_cipher_id.o src/misc/crypt/crypt_find_hash.o \
|
||||
src/misc/crypt/crypt_find_hash_any.o src/misc/crypt/crypt_find_hash_id.o \
|
||||
src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o \
|
||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
|
||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
|
||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
|
||||
src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
|
||||
src/misc/base64/base64_decode.o src/misc/base64/base64_encode.o src/misc/burn_stack.o \
|
||||
src/misc/compare_testvector.o src/misc/crc32.o src/misc/crypt/crypt.o src/misc/crypt/crypt_argchk.o \
|
||||
src/misc/crypt/crypt_cipher_descriptor.o src/misc/crypt/crypt_cipher_is_valid.o \
|
||||
src/misc/crypt/crypt_constants.o src/misc/crypt/crypt_find_cipher.o \
|
||||
src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
|
||||
src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
|
||||
src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_hash_oid.o \
|
||||
src/misc/crypt/crypt_find_prng.o src/misc/crypt/crypt_fsa.o src/misc/crypt/crypt_hash_descriptor.o \
|
||||
src/misc/crypt/crypt_hash_is_valid.o src/misc/crypt/crypt_inits.o \
|
||||
src/misc/crypt/crypt_ltc_mp_descriptor.o src/misc/crypt/crypt_prng_descriptor.o \
|
||||
src/misc/crypt/crypt_prng_is_valid.o src/misc/crypt/crypt_prng_rng_descriptor.o \
|
||||
src/misc/crypt/crypt_register_all_ciphers.o src/misc/crypt/crypt_register_all_hashes.o \
|
||||
src/misc/crypt/crypt_register_all_prngs.o src/misc/crypt/crypt_register_cipher.o \
|
||||
src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
|
||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
|
||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
|
||||
@ -291,12 +293,11 @@ src/stream/rc4/rc4.o src/stream/rc4/rc4_test.o src/stream/sober128/sober128.o \
|
||||
src/stream/sober128/sober128_test.o
|
||||
|
||||
# List of test objects to compile (all goes to libtomcrypt_prof.a)
|
||||
TOBJECTS=testprof/base64_test.o testprof/cipher_hash_test.o testprof/der_tests.o testprof/dh_test.o \
|
||||
testprof/dsa_test.o testprof/ecc_test.o testprof/file_test.o testprof/katja_test.o testprof/mac_test.o \
|
||||
testprof/misc_test.o testprof/modes_test.o testprof/multi_test.o testprof/no_prng.o \
|
||||
testprof/pkcs_1_eme_test.o testprof/pkcs_1_emsa_test.o testprof/pkcs_1_oaep_test.o \
|
||||
testprof/pkcs_1_pss_test.o testprof/pkcs_1_test.o testprof/rotate_test.o testprof/rsa_test.o \
|
||||
testprof/store_test.o testprof/test_driver.o testprof/x86_prof.o
|
||||
TOBJECTS=tests/base64_test.o tests/cipher_hash_test.o tests/common.o tests/der_test.o tests/dh_test.o \
|
||||
tests/dsa_test.o tests/ecc_test.o tests/file_test.o tests/katja_test.o tests/mac_test.o tests/misc_test.o \
|
||||
tests/modes_test.o tests/multi_test.o tests/no_prng.o tests/pkcs_1_eme_test.o tests/pkcs_1_emsa_test.o \
|
||||
tests/pkcs_1_oaep_test.o tests/pkcs_1_pss_test.o tests/pkcs_1_test.o tests/prng_test.o \
|
||||
tests/rotate_test.o tests/rsa_test.o tests/store_test.o tests/test.o
|
||||
|
||||
# The following headers will be installed by "make install"
|
||||
HEADERS=src/headers/tomcrypt.h src/headers/tomcrypt_argchk.h src/headers/tomcrypt_cfg.h \
|
||||
@ -318,8 +319,8 @@ src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c
|
||||
#The default rule for make builds the libtomcrypt library.
|
||||
default:library
|
||||
|
||||
$(DOBJECTS): CFLAGS += -Itestprof
|
||||
$(TOBJECTS): CFLAGS += -Itestprof
|
||||
$(DOBJECTS): CFLAGS += -Itests
|
||||
$(TOBJECTS): CFLAGS += -Itests
|
||||
|
||||
#This rule makes the libtomcrypt library.
|
||||
library: $(LIBNAME)
|
||||
@ -354,12 +355,6 @@ install_all: install install_bins install_docs install_test
|
||||
install -d $(BINPATH)
|
||||
$(INSTALL_CMD) -m 775 $(USEFUL_DEMOS) $(BINPATH)
|
||||
|
||||
.common_install_test: $(LIBTEST)
|
||||
install -d $(LIBPATH)
|
||||
install -d $(INCPATH)
|
||||
install -m 644 testprof/tomcrypt_test.h $(INCPATH)
|
||||
$(INSTALL_CMD) -m 644 $(LIBTEST) $(LIBPATH)
|
||||
|
||||
install_docs: doc/crypt.pdf
|
||||
install -d $(DATAPATH)
|
||||
install -m 644 doc/crypt.pdf $(DATAPATH)
|
||||
|
@ -212,6 +212,41 @@ CCM-anubis (16 byte key)
|
||||
31: B8176469E6A0D5797ED6421A871FEECDE48ACF011E394981C43AC917E8FFD5, E9B01383DB1A32E6126BD802A6C6F47E
|
||||
32: AB6A0AA29B687D05735167D78DB697BA2478BD14ECD059AE9D1239E7F2AB48FD, A560A30FD87CF28BA66F5B2638567E4B
|
||||
|
||||
CCM-seed (16 byte key)
|
||||
0: , 960414F81DF9F363AE6234067B946EA6
|
||||
1: 15, 17746EC09B06AF1DE24710D2506629CD
|
||||
2: 892C, 828705A8CF1E51688EC4F1FFAC4C151A
|
||||
3: E411A7, 1AF2DD611D05DAF48118D1E7D810C173
|
||||
4: B9DC8276, 4D335DF8B860AF121904310F5C004212
|
||||
5: 8182C84A25, B713177663D498218908178B3EA3C65E
|
||||
6: 5933E7872324, 52413BB22BABEC9E43F1A98B78B4496E
|
||||
7: A243E381075DEA, 8FF3D2D465748AAF2373D1D8F8EDCFC3
|
||||
8: 57A4E46B9B5C1795, B26653992639D54D5CEBAC7473CD3285
|
||||
9: 4D05D6669D9A0C3079, 6B26FA6D5271D74D444985466D2CF0AA
|
||||
10: 1D35BB653A9F48C3314B, 494E108B0780280DF7CB4BE24CACB5CB
|
||||
11: 9A227951B4565021D29DD4, 3E21A07540744E26424996B0670CB07A
|
||||
12: 3E893574DD3D82CCD83E87E0, 017D51F744FE95E375D0456FA8BB0EC9
|
||||
13: 5DF04297D842B3CEFCF93F5B95, 49CCE7A12C85648BD2A07944623C81AC
|
||||
14: 27F7D25EDE3471AAE1B91BBAEAD0, A6F1DD19DF08160D982184A414247B8B
|
||||
15: 6F8583E5B88B15F89070FB7A49383F, 4C98CC3884A2BD20AC6FA5184FB72670
|
||||
16: 5D8D511AE705860B1A55E2FDAE9581D9, 96EF02C285AFD27D2B26BCAC02EC56A0
|
||||
17: C4508E9E03DFE7C3B89192589CFD171A16, A2A4DC81E900BC5C404389BBD0B4710D
|
||||
18: 3163AE0E74B3DE3779745A82B783D882F092, A89574F7D1C2B90241A702A2C6A2AD86
|
||||
19: 2D9C64EF9D8C2E195AF05BAE747A7BF8EC6C30, 07EEB7667A539164862E472366FFAD68
|
||||
20: 03D145C9133E9108BB7A61D17880B155A56A58E6, 4F8EBC9A3F3C74EEA02099BB5AE6D456
|
||||
21: 41C20EF2D199B6C0FAD9DA02DA0296D37B23059C3A, 062AE92091F7A8CF74A8E9DAFC58BEDE
|
||||
22: 402912121F84EDB82F101195A68EF214F0A8F4DA6DC0, B35C944A4E5BA8AB60A4415B5BDF6E30
|
||||
23: 4D3F14438904F8F4F911CE729B26415F4EF819F80D2254, 2304E0373E136010B9BC6E061660D881
|
||||
24: A855C170C1E2D326D74996939C48A85EDEED2E06F97BE61A, E66F188735CDBD27F6354C260A4796BA
|
||||
25: F882B023A3B25B878073DF739A234256E4174238A30A5B5062, 3C8BEBFA98ABF880891AF2539D3A0FCF
|
||||
26: C66F850279CD23D5243CF15E6084A17C124DDDE840DFD9532954, 003202A7E393626BFF93D48207E7DE39
|
||||
27: BAC89C099A8AF633EFAFA496198DC9398DB3AAB47A8D24E2FE7D62, 32583F94ADE55278F2533ABE934CD535
|
||||
28: B9EB02F63EFB72455CFFA2799A5BFA9E0BFDE240379AA98B4D0532C8, 5D01FD2F100C003EA284A2AF55EE5934
|
||||
29: BAD5BB6B8DF316401B12B2BF36329F1D977E1FD943F594A6F4ED696194, 3D91CE3618998F3E060038D4DCAAD084
|
||||
30: 8964B7FAC865310E56DB3238E03803F3B79D095523D278D609AD34BA8B67, C57D3AA1FF71636CC7497DF3CB4F7B71
|
||||
31: F83C35D61E5C48CC7C402C9C78758D0DC696D2708FBC5294879DBF700BAF75, C69997844AB43312C90E995AD8C91E58
|
||||
32: 03CA8E42B89C0AEEF0B7A364E94E326C537AFC4392AED3E6DA71EE65032A5CDB, E8DCD9120DE61900A194E8B94AEF6B2B
|
||||
|
||||
CCM-camellia (16 byte key)
|
||||
0: , 3B53D5CC8B26A5FFC78D2E974E45A661
|
||||
1: 5B, ED7741D8C258D56A29392A7A65CF147D
|
||||
|
@ -1965,6 +1965,168 @@ Key Size: 16 bytes
|
||||
49: 0133E1745856C44C
|
||||
|
||||
|
||||
Cipher: seed
|
||||
Key Size: 16 bytes
|
||||
0: A6E8D7325BBE0998CF235C1B57E64360
|
||||
1: 83A2EB0094D1CF95E683DE8BA93DE478
|
||||
2: 3DF178E121DA1CDB77ACFB37F9499A3B
|
||||
3: 785A1D88210885D6D2D84C2CB4461D57
|
||||
4: 4F177E4C76F6CA9C989E724A0EC275F4
|
||||
5: 3AC502689139EC1AFA7EDCDB622A6061
|
||||
6: E1B9675AEFFE45A249644E7E0863110D
|
||||
7: C8A4294FF821E88EC5D181E54BBD3919
|
||||
8: 7598C35780522C63B531758F53B7CCCE
|
||||
9: 3E59799FC5A5F99100A3791F6AA284EA
|
||||
10: A8572971F5FC281E7617BCB8D616FAD3
|
||||
11: 3C5DCA82BA53DAC088D34E6C4D069E22
|
||||
12: 0886C2F45E358409230F6FA0F4ADB7BF
|
||||
13: F4BF0388027AFBADEB6AD1AD0AC9339E
|
||||
14: 587F60852DA55F76C486D9A6BA884F8A
|
||||
15: A6F2518AD3B9A68C3FB8847E28B15212
|
||||
16: 6B6DB6C7085FEF6FD2BF32CAA2FEC2E2
|
||||
17: 40FF5FC134BC3911614A4E021254EFDF
|
||||
18: 9B1016CD948F70B8A04D2604D4FF08AD
|
||||
19: FBB86D1B49204838C7D544C8BAAE61F9
|
||||
20: 02EDFBE9A9A4CA2206CF9047FF146949
|
||||
21: 6B9FF89C1E607E494204B28D4391ED35
|
||||
22: BB85B8BAA9A4B74ED66C7485415834A0
|
||||
23: A6F72520E6F0248D88AFDBDA7CBDD6FE
|
||||
24: 4BC1D4E990FC80E9ABF9E0FBC745E2D4
|
||||
25: 0358D44D7A59743AAF6D25CA179FB6FE
|
||||
26: 320924C80B53E406DE45D31AB0E265F3
|
||||
27: B727A4AB9E8455EF11B18F300E22ADED
|
||||
28: DCB6BEF8F35FFA2F2CDADAE161E56D48
|
||||
29: 847A39F0670E930BF7899656908C2B92
|
||||
30: B5223282B9328ACC4C6BF06F15C920EB
|
||||
31: C265081FC225CA4ED28FABBF0BBB0298
|
||||
32: 35F6113CEA7C15DB21223D5AB0E9E558
|
||||
33: 3437EECD2984AADC9F07286CC23FB940
|
||||
34: D0C878AC8C01BB9868B499691373988A
|
||||
35: 684381B5D98E9D1290AF5D633A903F68
|
||||
36: 69652249BD52F49ED11219881059ED38
|
||||
37: 08DD215881D98B1D8234FA1806E634FF
|
||||
38: BFA836EB71C35B3E3CC9BFE9168D1B5F
|
||||
39: 238BDB3340961C47A13F011AAB45FC5A
|
||||
40: F55C630CE6008E7F15EA1686D887DEA4
|
||||
41: B78DED6C49E3167CD7ACF2CCB4E365DC
|
||||
42: 79990527F22373B043039F18E343A8B7
|
||||
43: ACD08505E2759003C016F6E820DDC562
|
||||
44: 8DB7189177EF39A7A969F28B882CFF05
|
||||
45: EC0BEA22AE28469B91AAD4654858367E
|
||||
46: 19A7F32CBCB4CE89163EC6F98FACFF36
|
||||
47: 3747F9C67FA044D52C3893D170DEC4A9
|
||||
48: DE799E6986BB77CA5C24F9A956BC28E4
|
||||
49: AD4CEBB75177F1CBD6FCEBF8457F85D2
|
||||
|
||||
|
||||
Cipher: kasumi
|
||||
Key Size: 16 bytes
|
||||
0: BB6B2E0C88AD7C37
|
||||
1: 5AFA50CBEF3FD5A4
|
||||
2: 1914DFD8DD86C361
|
||||
3: 0976E7F6AEBFFEDF
|
||||
4: DE0EF590AEC61F17
|
||||
5: 089FA192859E6124
|
||||
6: 72E283C82D366B51
|
||||
7: 61DA033662AF0B74
|
||||
8: C4CFA2C3ECA84CEA
|
||||
9: 15757205BAAC8639
|
||||
10: 4349914688A6A850
|
||||
11: 4B1F5E0D5B7ABBDF
|
||||
12: 5482444DC8815041
|
||||
13: A8C198FB1D865A93
|
||||
14: C2641B2501AB6525
|
||||
15: FE492BE02E717496
|
||||
16: 03B3034E3A26006D
|
||||
17: 0CB4B7FBA4582D1B
|
||||
18: A61C750E5DFF1791
|
||||
19: AD5374F2B0860365
|
||||
20: CBC588879F98A820
|
||||
21: 04CA5EABB466C1C1
|
||||
22: F4DF5CEDAE6C0E17
|
||||
23: 6133AAD21D875DBB
|
||||
24: D386BCFA19FAA860
|
||||
25: 68C9ED9206F07F47
|
||||
26: 00A49444A0C176CC
|
||||
27: 4BEA00D55452196A
|
||||
28: A9A3FAC7A2D553A3
|
||||
29: BE61DDF4CFA8EC8E
|
||||
30: B1547D01A23C2632
|
||||
31: 400604E71F3F85AC
|
||||
32: 8F431BCB447A132D
|
||||
33: 0ED503EBD61D4286
|
||||
34: DF7B087B7D315E2C
|
||||
35: 247A7872587F0507
|
||||
36: 7814D6B13A08CA60
|
||||
37: ADE44D69362B8199
|
||||
38: 49FF8C275D50A175
|
||||
39: 5DAC0F53391421C5
|
||||
40: B1C316E682E4F314
|
||||
41: 72FFFEA2DFD85E08
|
||||
42: 0418F02B7A89FC43
|
||||
43: 12826A96C5633C97
|
||||
44: A4726DA149DBFED1
|
||||
45: 5B276374E1EFC6CF
|
||||
46: A91C4E4804D9A103
|
||||
47: 7A2894030C9FE01E
|
||||
48: 0C59C6FA87DF2DCD
|
||||
49: A86C6D3C7EAE644D
|
||||
|
||||
|
||||
Cipher: multi2
|
||||
Key Size: 40 bytes
|
||||
0: A69A64BE9EAF56FC
|
||||
1: A8AB26A19D7804C6
|
||||
2: D5468EF0C9CDF530
|
||||
3: 2D08D23459949175
|
||||
4: EE66EB212BEC593C
|
||||
5: A2D088F95C855F60
|
||||
6: C206004787FEECEE
|
||||
7: E4875B7BE2C819B2
|
||||
8: FBC692536393F8C5
|
||||
9: 886DB391EE3BA443
|
||||
10: F45359B08EFC56FF
|
||||
11: 1113E4F4A177E1DC
|
||||
12: 8A02560CAD0CCF87
|
||||
13: CF57FF05E6BB7A67
|
||||
14: 21F4EDCF8E8A3D9D
|
||||
15: 26A26EEFDF51B7F6
|
||||
16: E9AF9D2EF2A9EE4A
|
||||
17: 6866182BC49D09D7
|
||||
18: 657E0D732BD7B5CF
|
||||
19: EFCC33778BC265AE
|
||||
20: 3556CD607D59C32B
|
||||
21: A7477466892D114F
|
||||
22: E210A7B32E9A2E08
|
||||
23: 9EBC0B60EB1FEA70
|
||||
24: C1E8C3A38E0063B9
|
||||
25: 3C9FC4089F87B0D6
|
||||
26: 100EA58D00F38495
|
||||
27: 3BB3D47D52A81774
|
||||
28: F1FA3DE89274A681
|
||||
29: 18DF1E38CC0C5230
|
||||
30: C3FDCDD9159B0258
|
||||
31: EA6ADFAF7D8D3C87
|
||||
32: FC4C369E7835461A
|
||||
33: 791D1D34EBEF801B
|
||||
34: 3B5A5B64C72B2F77
|
||||
35: 55ECED8C5D0F69FC
|
||||
36: A6DE960F4B81C114
|
||||
37: 3C4EDB0671BFFC57
|
||||
38: C493186F4BF52F5D
|
||||
39: 01B2C607B2329E87
|
||||
40: 109035510A1AEB20
|
||||
41: 0EA4699CA4A161FC
|
||||
42: 182665FBB15EBD34
|
||||
43: 04458216DCB8F55F
|
||||
44: 850BD374C892FC07
|
||||
45: 4C428488381D6FD0
|
||||
46: 56FF4CE0AA4132D9
|
||||
47: 9F95F0A47D70A317
|
||||
48: E12CC913356EFF86
|
||||
49: 7E614927A295C45B
|
||||
|
||||
|
||||
Cipher: camellia
|
||||
Key Size: 16 bytes
|
||||
0: ED18D83F3153160C5A6D01AC3717515C
|
||||
|
@ -459,6 +459,79 @@ EAX-khazad (16 byte key)
|
||||
15: 14DA751E5AF7E01F35B3CE74EE1ACF, 3C76AB64E1724DCE
|
||||
16: A13BBC7E408D2C550634CBC64690B8FE, 3D4BBC0C76536730
|
||||
|
||||
EAX-seed (16 byte key)
|
||||
0: , 3D0715108CEA3BE144350082B1BC4F25
|
||||
1: EF, E56898AEDB0F461980587FFBDB83EE59
|
||||
2: 9552, 9647B7FCEDBB9EF4EDEBCD98831E5BDE
|
||||
3: 25DCD8, 3647D80EF3529C72F16D223D04D7ACAA
|
||||
4: 3D169011, 7A741FA2536E5905FD4ABAB104062D3B
|
||||
5: A92411F6BC, 18A306E5DBF4DBDCE21505F16DA85482
|
||||
6: 9D4661D2859F, 7B2FC34AB3DE45DB4AE8C97BF3B32BA9
|
||||
7: 0E8C26E24B0961, DFF098B44E7D57A71F68FD0D2D2416C7
|
||||
8: 485EE54D5D2684DF, C8FCF501065D23F936A4A530BB028EA0
|
||||
9: 768888B50865A635A2, 8121463B762AC12D19EE21C58A8A1B7B
|
||||
10: 647FF44F0B350385BF27, 883241565540347D491C0E397FF5D663
|
||||
11: FD868A569E2E597EB3B5AC, 4DE96B6810A1FC5F19A085B4F4C8B687
|
||||
12: 342D72063420F3FCFC1EF71F, 88B94C3FFD74F052CC44722B87E1A45D
|
||||
13: C768F88646D47D5201FDF47A1E, A01EB1FBB3AB135F258B87C30A8E1A13
|
||||
14: 44BF87EC9A5F5E20E5D972ECAE4C, 6F1C44EDB3533EFF973B53EAAF84D601
|
||||
15: FDE60E4F25C4B9388BD3D348912B7F, 863871D706A32F92DAD13803CF2008E1
|
||||
16: 69881E58AF690C5EEBC00DABDAAFBCA9, BD3911C5E41B327A10DC7D03435FB8AC
|
||||
17: 41AC0D70E8ECB01CFFFC9352E3800F568E, CCD63A0D20D0FD385EB720B2D60D20EF
|
||||
18: 88301B40FA8B84ECEE7238F17B08EC2A2DA3, AD10D120ABCCB67FD3F12C8D8BD216F7
|
||||
19: CCD0F8187B7455274D80A2387599617582B7C5, 3DAA6952A9AA160863E4F489AF04C6A5
|
||||
20: CB955D3B6044F1712DEDC65451E46B8D9FBE5067, D46FEEFA0A0069115F262877050265E9
|
||||
21: 373B8AD20672BEADE5B742C72306455549B26DB631, 16DC5FE5C7C0D5478FF67AD00463AEF1
|
||||
22: CAB49183077EB4DF3BFBF7FE026BCA8311A6BC067EDB, 8F4497F253167AB81A70A05218734C1F
|
||||
23: C2F860DA7EC7801FE30FF8C362EFA11E9392E029E24407, 1612D514BF9F365EB0E5CA13E974670D
|
||||
24: F0084F22D7AE598FF5DFEF76CCC0728325BB5D3DF5467B2F, 1DE5CD767D2B731DE4C9B4E303A7E771
|
||||
25: F5E907AC398B2C7BE124ACCAD1FEB001BC3EC7C77C21E94110, D8C7D50EFB0CCE2926DA9E796EA46E17
|
||||
26: D65A41B86D24C573D21EE416F2F853E8FF7A0788120102E8BABB, 3EEDB65BCF0E32C24B797D972913F943
|
||||
27: 3B39B9994248DD1FB3EFD68820D19E8436F66FF0E6D82F40E50AFF, 7892720F9AA0ABC34E05FD982396C13A
|
||||
28: 9B924A2F620E5160B8F6C8DD313F39D6DC22B7E0596C8D0BFCA14907, E417D1FE5569975E8698C4D80684A613
|
||||
29: 01068AA5F6FBFFDE1A8290CB315426F8CFD2438C09FD5982BE45EB21CC, A7DB568F037E8A4DB2D73CB2DF2BABA4
|
||||
30: D39210874C4B7BEB63966BDC89AC7279B67C118618E9C44C1C563A10F74B, FB64939029B8E5DC1318EBE3FDAFC9F6
|
||||
31: 8338B7BCA36C104C4B7EEBFF582FEAF879894FD6F00434859AD94E644BEC60, 93DECCE7AD61E69A2BD6621FEE2953D9
|
||||
32: 21DC38BE252ECCA74963965660C98B5D9B5C2411945D8AAF9EF93732748A6162, 2BBE555F1D3C94BC6F1665A6DEDB536C
|
||||
|
||||
EAX-kasumi (16 byte key)
|
||||
0: , 9E0C41B26B960E81
|
||||
1: 03, 26B904336B9E0BDA
|
||||
2: 9EB8, 18E90B52DB587A8B
|
||||
3: F8E4F4, 9842D0A42ACC7717
|
||||
4: B5688382, 2134820AF25CFFF5
|
||||
5: 582E9402B2, 9C0F60D5B2D4BEA8
|
||||
6: 836A3CEA4965, 6EB7565E0FF7FFCA
|
||||
7: 00DD66F0AB54AE, 0CAFA81DFB52F835
|
||||
8: F5824156469E77DA, 44AEED7DA55C7C2F
|
||||
9: FCED54C15FAE6EB601, 95D7A3592D5F3B0E
|
||||
10: 0630750CAF71D334562C, D8F7432F9AAEC624
|
||||
11: 25E3C5FAFE86F59D30BEDE, 42E3F6C3B8F73F64
|
||||
12: B98480D54E604E4CFB988EFB, 2BCA65A62CE3E363
|
||||
13: F07F1F98A2411749EA11FD87F2, EC7C07D37B7CC07C
|
||||
14: 19A6D648AD698ADED0AF37001479, F88417372E600717
|
||||
15: 17CE88FC64ED98233BBAB20AA4DA45, 4959410987AE317B
|
||||
16: 61EE83703D8CA5D652F8E1E83C86D58F, 57EC73A828C20B68
|
||||
|
||||
EAX-multi2 (40 byte key)
|
||||
0: , E3EB492A2A560816
|
||||
1: C6, E0A176A66E269255
|
||||
2: 1D00, 472E25EF8B4ED450
|
||||
3: 1DFE5A, BEDB3404162C7122
|
||||
4: 915B77D4, BABBB74A3EE61755
|
||||
5: 3C966136E8, 603664C04EF42178
|
||||
6: E4A4925C9F75, 41B77B32F28613DB
|
||||
7: 365BC4FEF0B1B0, BB09E42F396F3832
|
||||
8: FFCE6DA57D7FE9D1, C11BA7A7B580032C
|
||||
9: 0413506EE42819574C, 9B5C6A8111BE7B29
|
||||
10: 531319C06A4B68AE226C, 77BC1DF09414D212
|
||||
11: 85C0454EB3B9CDEDD32EF9, 39576F2268A59EF6
|
||||
12: 8FB1732015FD006D2FFA8D9C, F8F51511ECA4E0A7
|
||||
13: 1654F11C940FCBA529D2384A0D, 871B4541612C7CCE
|
||||
14: F119DC9F998D92B4C45185CFA2D1, B50D3A61F3CE76B0
|
||||
15: 05B051F7DA81609FAC41BF0A19C45A, DF1265F3F69625F5
|
||||
16: A313136E4E7F1314E7ED504B48324047, A9D1C5527D6EF7D7
|
||||
|
||||
EAX-camellia (16 byte key)
|
||||
0: , 9E8CDB7237166EF9FD0605A0AD3E4070
|
||||
1: 8A, 23F462AC7E22EB9078DAC34CB1CFFB08
|
||||
|
@ -212,6 +212,41 @@ GCM-anubis (16 byte key)
|
||||
31: 72DFB9E91A78EAFE758B4542206A4A957B4523A58428398C11BCF2AEAE1938, 307D0B876130E82804C1167E03B69B2F
|
||||
32: 7275C6EBDC2680DFCB73326A987D2FBCE83E40A9AEFE6351CFDA7251A6FE10A6, 895E6EEAA9BD88594903325A063CA45F
|
||||
|
||||
GCM-seed (16 byte key)
|
||||
0: , C11F22F20140505084483597E4370F43
|
||||
1: E1, D39B9E55EF1C94F1E15397E083346491
|
||||
2: D46C, 1303648548ECD8B3992C803A648E3BEF
|
||||
3: CBBF1C, C965567985BCF2BCD4C9CF66B2168BD6
|
||||
4: 30544838, 88D10DE290E82F2EFDBF50AD062A13FB
|
||||
5: 544DCAFBCB, 52AE6D0576B4D65D82088179EE8E5121
|
||||
6: 26F91824D36D, 7EFF9AED81561EFD2FD4CCAA8CA3E49C
|
||||
7: ABAF75A310B8B2, C3E0E6FE9EF8B91325E7952205C3B215
|
||||
8: 460EB25BAF346FEC, 78293B6E454C7A820B0D6ED86399CC70
|
||||
9: CCE2D164E8BA0B80E2, 0DB9D3A14CDC8F8CBAE68D092D769697
|
||||
10: 1C700418306E0FB9A09B, 5ACFC32C1CC06D63DA8F8139909FBB10
|
||||
11: 8A306163BC711A92C1ED0C, 0518DED52A4D698C43709B17F8E6409F
|
||||
12: 7FAC8AE98C5D035703D3257D, EBD479B656C24E4E256CC207D26DCB2F
|
||||
13: 26DDDDAEAF072E292D9D3A8917, D1AE629015A78A35580B96B524C35A5C
|
||||
14: DA8D19951BC8EC2657142DB6239F, 56753850A747FCA0445BF881EFB466D3
|
||||
15: EB82C127979C395018BC346B46C4C8, EFEBDA26F5A1F53BE6A2DECD5DAC0D88
|
||||
16: AE6050FAB41D6EDCE402ED3FA5F56AE9, 2A8922AF8AC424433B13C96EF64721FE
|
||||
17: 47D7E682FF60C6F8B4DC1D43CCA75B7CDE, F7CEC551D1855914534CBF4B0F90AB36
|
||||
18: 7DCD5194A227EC2AD352F14C4BC2958067D0, DA444BF98069E6BC209C9AE8C669E892
|
||||
19: 3F9E6101EFFF05D547C881F463FFB43B0CC131, 0FCD327A4C3D9FB679E192C887CD0642
|
||||
20: 70BE93EA6FB611EA7656A70B42AA444403DCD945, 75FA8421BF145219B6973657F9FAB726
|
||||
21: 39A97F1B32D664E53734F506515BEFB3674E2F265C, FC47392114426ABEB42E9B7BD15ED237
|
||||
22: 4D54574772CC127C2E87186E30D6BBD050231601B80E, 48E3BFD70F52434C8D92D412018345DE
|
||||
23: 6C757A980FAC2BA8257750293EB63E52A9F7EE10C96005, 4057EB8AF43227A23A85651C002BB795
|
||||
24: 817FDC2FB49084CB3E0F306154ED9252C3FE1C39DF481DF7, 9F510141E2E1716F4738D9979C440C04
|
||||
25: A55CECDEE410C0ED7140BDCEDDF57652D5400793996CB376AA, 0897B814408133BCD6F6392489BDDE4C
|
||||
26: BD5E9C3A051AC1FA975649EF4B8E2B6E8C317586643597548E8B, 316C16B9643C1704503CBAB5D01215DE
|
||||
27: 4AE2A8FBDA0E92A7C32F95FE5DC63AAD97CE8D07133F0787E1C2E0, B518CE779929E704846376C043D481EC
|
||||
28: 3AB6AB78B1C3978951A17A5DC6FEE1F2DA096770246DC040F72FD070, E459B8B8CC525428FB851D9B7616084A
|
||||
29: ECD99B0E203AD3E722ADD6A38159C4A2C9C4A4B1A4448EE55091D382E8, 49C80A40C5BC637BB27B69BC2AD0B9A3
|
||||
30: 4EEFF7BF368A278B1C8524F0C805C37F84F6D54785D79BA378A6B9B2999D, 491F2F02B7CDC02A627BD052A007EE56
|
||||
31: 3490DA4EA01B23E86382D3F7BFF3239190F4E19BC4A9BAEA8AEF893F382062, 8431CE0772CBF6867F4F40E45031D9F7
|
||||
32: 590E5508063DC675310C74227B886E68E2C61825C5E9A08231810D11EA695481, B96C6391C22F3961B307578D47120C52
|
||||
|
||||
GCM-camellia (16 byte key)
|
||||
0: , 477650012AA6284033E1B85321EEF770
|
||||
1: E1, 2E95EDCCAF3264B5178CD6ED0F2EDEEA
|
||||
|
@ -1,29 +1,29 @@
|
||||
blake2b-160: 684b540eb245ebba2cd66b7814fe6d787868a5bb *testprof/test.key
|
||||
blake2b-256: 3aaa08120aa0174c105fd1f3412e3da30c3bbb9073569b0b8ae458b34de7780e *testprof/test.key
|
||||
blake2b-384: c33f39ab19099d5dea6789479e23447857803a3f45361ea58dd69c7b8037c8697544b6a741e236215adcb8b38fa0cfc4 *testprof/test.key
|
||||
blake2b-512: a2daabae6996e3bbfb76c5d277fb881107037c756173f510d83a78f669cf0b70a5088b971e30ca2168381568ea3d30b80a7b500944a5e2e3294f25aed4c3a5f1 *testprof/test.key
|
||||
blake2s-128: 7e1f9b6de11a3c597308f9d8aacd7321 *testprof/test.key
|
||||
blake2s-160: 3d1c9ae1a0afe8a6ef8b61d5380de7b061cd353c *testprof/test.key
|
||||
blake2s-224: 95dacd83d0421b2d69a52d92ee54143bb97c91a61450d917a88d4388 *testprof/test.key
|
||||
blake2s-256: 92ac6dc88b9ce4a75b2a54783435a37919303f713396db0e9ccd976d8c55f1cf *testprof/test.key
|
||||
chc_hash: d50da1ea9b53c0b891c8bcb0a4c6e5e0 *testprof/test.key
|
||||
md2: 0b327a17a102580ccde8081c18f137c7 *testprof/test.key
|
||||
md4: 6df7b3c1f7fbcbf6b8246dc0046e9d6b *testprof/test.key
|
||||
md5: 48fd9ed11c633069c3cf721611696a73 *testprof/test.key
|
||||
rmd128: a78170e11d56605eb0f5e05e6a218e61 *testprof/test.key
|
||||
rmd160: 56236b14cd15958c58136a295fa2b07c5edee009 *testprof/test.key
|
||||
rmd256: a0a658b25b8841f20be8151eb5e2c1229f085dd5cf7aa8bef4c8e07ea5738913 *testprof/test.key
|
||||
rmd320: 2ec15ca947f29dd8cef4782aeaeb4541ac00dc29e1649c4f5f4578ef0287091e513f9da423ce7319 *testprof/test.key
|
||||
sha1: c17a11eef02d7a2ad7250bc2ee22bdf37ed21f0f *testprof/test.key
|
||||
sha224: b226daa069512c849d55866470c23543d87e1fb768171efdcc6ab59a *testprof/test.key
|
||||
sha256: 76ec7faebdc42a4de35ca70024c2d273e9f7856ca61612e89f5f66350ba8cf5f *testprof/test.key
|
||||
sha3-224: 09525d6410c462e00e72ccd4304290bc59ff2b1b8e5322dbc197e169 *testprof/test.key
|
||||
sha3-256: b9016fc9976545ad0183775d88f20df5295d40b31db00d85f6916333260b8ae2 *testprof/test.key
|
||||
sha3-384: 5452977763b602df4185bbe7cce193346b09ee20d4a45a780fd44237e335ceaa71b9da06242621e159d796db9043c9be *testprof/test.key
|
||||
sha3-512: 1fadf63073c8613d38d5c944e2e3f7e086d94d93dceb2eec1e9693fd44158f3127c90cbaa8a13035cc9ff9b3572c9dce836bea15c92e8a78b036ec382caceb0f *testprof/test.key
|
||||
sha384: 7cc080c662524617e56d5a49f1c185909e9b1858a86684161ddd97fc5426f693b53f59d779de16da25dcb1259df879e5 *testprof/test.key
|
||||
sha512: f90afe4d254716a9770fd2c4f29ca544f2975f961cbd7fa207117383e4e48f7a2e1ade4aac333a2cb8c227dd6af2fff4d87c31c2a3916ae24d507c7c94c21818 *testprof/test.key
|
||||
sha512-224: 64ec566b5c2de736eab1b4e8542dc110f736819ea7f8f48e3712fbad *testprof/test.key
|
||||
sha512-256: db880bce4beb7246510febb961c7595aab57a15de6f90cd079f145e476b5d773 *testprof/test.key
|
||||
tiger: 97d713850e7affac30a642572c1ee7b18793d5b9e0ef5932 *testprof/test.key
|
||||
whirlpool: d7d41c755e0f28313f254cb198e0bfa42f56670595d97b80dceec754825d69938a9c11e5bf16e9a3809a62a09bddf021f3dbff4302ceec7ba46c88b41772b711 *testprof/test.key
|
||||
blake2b-160: 684b540eb245ebba2cd66b7814fe6d787868a5bb *tests/test.key
|
||||
blake2b-256: 3aaa08120aa0174c105fd1f3412e3da30c3bbb9073569b0b8ae458b34de7780e *tests/test.key
|
||||
blake2b-384: c33f39ab19099d5dea6789479e23447857803a3f45361ea58dd69c7b8037c8697544b6a741e236215adcb8b38fa0cfc4 *tests/test.key
|
||||
blake2b-512: a2daabae6996e3bbfb76c5d277fb881107037c756173f510d83a78f669cf0b70a5088b971e30ca2168381568ea3d30b80a7b500944a5e2e3294f25aed4c3a5f1 *tests/test.key
|
||||
blake2s-128: 7e1f9b6de11a3c597308f9d8aacd7321 *tests/test.key
|
||||
blake2s-160: 3d1c9ae1a0afe8a6ef8b61d5380de7b061cd353c *tests/test.key
|
||||
blake2s-224: 95dacd83d0421b2d69a52d92ee54143bb97c91a61450d917a88d4388 *tests/test.key
|
||||
blake2s-256: 92ac6dc88b9ce4a75b2a54783435a37919303f713396db0e9ccd976d8c55f1cf *tests/test.key
|
||||
chc_hash: d50da1ea9b53c0b891c8bcb0a4c6e5e0 *tests/test.key
|
||||
md2: 0b327a17a102580ccde8081c18f137c7 *tests/test.key
|
||||
md4: 6df7b3c1f7fbcbf6b8246dc0046e9d6b *tests/test.key
|
||||
md5: 48fd9ed11c633069c3cf721611696a73 *tests/test.key
|
||||
rmd128: a78170e11d56605eb0f5e05e6a218e61 *tests/test.key
|
||||
rmd160: 56236b14cd15958c58136a295fa2b07c5edee009 *tests/test.key
|
||||
rmd256: a0a658b25b8841f20be8151eb5e2c1229f085dd5cf7aa8bef4c8e07ea5738913 *tests/test.key
|
||||
rmd320: 2ec15ca947f29dd8cef4782aeaeb4541ac00dc29e1649c4f5f4578ef0287091e513f9da423ce7319 *tests/test.key
|
||||
sha1: c17a11eef02d7a2ad7250bc2ee22bdf37ed21f0f *tests/test.key
|
||||
sha224: b226daa069512c849d55866470c23543d87e1fb768171efdcc6ab59a *tests/test.key
|
||||
sha256: 76ec7faebdc42a4de35ca70024c2d273e9f7856ca61612e89f5f66350ba8cf5f *tests/test.key
|
||||
sha3-224: 09525d6410c462e00e72ccd4304290bc59ff2b1b8e5322dbc197e169 *tests/test.key
|
||||
sha3-256: b9016fc9976545ad0183775d88f20df5295d40b31db00d85f6916333260b8ae2 *tests/test.key
|
||||
sha3-384: 5452977763b602df4185bbe7cce193346b09ee20d4a45a780fd44237e335ceaa71b9da06242621e159d796db9043c9be *tests/test.key
|
||||
sha3-512: 1fadf63073c8613d38d5c944e2e3f7e086d94d93dceb2eec1e9693fd44158f3127c90cbaa8a13035cc9ff9b3572c9dce836bea15c92e8a78b036ec382caceb0f *tests/test.key
|
||||
sha384: 7cc080c662524617e56d5a49f1c185909e9b1858a86684161ddd97fc5426f693b53f59d779de16da25dcb1259df879e5 *tests/test.key
|
||||
sha512: f90afe4d254716a9770fd2c4f29ca544f2975f961cbd7fa207117383e4e48f7a2e1ade4aac333a2cb8c227dd6af2fff4d87c31c2a3916ae24d507c7c94c21818 *tests/test.key
|
||||
sha512-224: 64ec566b5c2de736eab1b4e8542dc110f736819ea7f8f48e3712fbad *tests/test.key
|
||||
sha512-256: db880bce4beb7246510febb961c7595aab57a15de6f90cd079f145e476b5d773 *tests/test.key
|
||||
tiger: 97d713850e7affac30a642572c1ee7b18793d5b9e0ef5932 *tests/test.key
|
||||
whirlpool: d7d41c755e0f28313f254cb198e0bfa42f56670595d97b80dceec754825d69938a9c11e5bf16e9a3809a62a09bddf021f3dbff4302ceec7ba46c88b41772b711 *tests/test.key
|
||||
|
@ -459,6 +459,79 @@ OCB-khazad (16 byte key)
|
||||
15: B5F13633767C37E2A5BE44B95AC80D, C66A029513179FAF
|
||||
16: BBAB31F93B165465FE5E2133810E46C2, 146A3AA6A6A68E2A
|
||||
|
||||
OCB-seed (16 byte key)
|
||||
0: , 31FC3BE15BE66DE898D8E64F043EF5F2
|
||||
1: 13, 71D7F7D74329C74E68209EBCEC6ED76B
|
||||
2: 65DE, 63484B2DB036CE460F25E5F42FB996D9
|
||||
3: A6F3A8, 779A84F1B325BC7746DD61C982C0C84A
|
||||
4: CD93DE8A, 78B2B22BF20F341225D239AD89BC0400
|
||||
5: 39D1DC6410, 6BD9D8849627A1C866C8882686F59F8E
|
||||
6: 1A90FE8478E0, D99148D2185D130069D1007F759F1952
|
||||
7: 7B021158285E6F, D64304C2FCB0C4207E1172D9F5EDFA54
|
||||
8: 3938321C337EB440, 7535C124E443A1AAC16FF84A8A2D4E73
|
||||
9: 69D89353ACD77C251A, 8BE9575D98A8F6BBA1BCF49F0D133A57
|
||||
10: 4FA9D0AA53C795D8B4A6, D424622976F53C3F862D9C09780D134B
|
||||
11: 10E2F16190079B783912FC, 3354E1E8AC4D661B82C1BE44A094E9C0
|
||||
12: 87769AA867DF8624E1C6CC9C, 537FCA01A65D7783E7DF1D337D6F71E9
|
||||
13: 0547E2F6A8017FF31D24EC9F20, 2ECC8DD05C36CCCB1262FFBE6A810E79
|
||||
14: 6B234F55551F86F2478D6A7E910C, 91863300122086508F0259054125736E
|
||||
15: AAF361AFF276F996740A110F1868F8, 9DCF980FB47D0533D168490887E1718F
|
||||
16: 114A274873A4E60CD175DCC60823DE3F, 9C5F32D0D32F82FFE776025BACFFBF20
|
||||
17: B13F7DC743D559613F563315D68EE30AF2, 9FDA482FEFFFE96F8F748A7B0DA24D71
|
||||
18: 79A2D1D9667777680DB25BB68105378B7981, CC45BA5C13450BCDEACEDD602729A337
|
||||
19: 683E53C85E7000019CD5B8C78FB66E3D4EE0C9, AA4533EBB37F197D1402143CCB0887F0
|
||||
20: 546D9B5CF8FB4BC20CE200C67ACBEB79530AEEA8, 5E9C1CF09C360A0F0C386BD93A9C91F5
|
||||
21: 8CB773A96DA7E4A83FA214BC94117CE042CC2620DD, 058229EBA77FF300E0448C29D37C839A
|
||||
22: B13348E2E498E2A02B08CD94B5A66786334B0A415C4B, C9E19F610CC82B0242E8546272D20E3D
|
||||
23: 53BD3612B86412C39B98C322AA0E6352A1A3A66A992EC2, 3880B204A156302679F07932103DD531
|
||||
24: 30E2B86833BE1A5187E65F4EFC24D1F753EA2B5D89C87F06, 99FCBA36AB397837A7F9F53C0EF7DBC6
|
||||
25: 03D03F968292C26A26CA833F5F186ACE9BC5D2B6678C4DC220, 3F34D2FBDFBD688A03C29E49B02DDF04
|
||||
26: D443389FE849AF4A74DBDFA2936C8D7DC0C69721C2B3375DFA24, 10198F7477ECF631207AACEC364638A2
|
||||
27: BAF661D4BA70F9E310CD930F36DE90CCDD9DB3473B8A5747A0B5A8, B080FEBEC0497EB16D978E3B8DFFDB77
|
||||
28: 5FE274B3A042BC903879B600C0DF31EB66A260D8ECAE09E45DFA4650, EB35B008EBB5098CFA03B010E1B4AD4F
|
||||
29: B124A2D8B0187DD409C7CAA44764C587052FB9B4750CA0DB0174D120CB, 2C48CC7B2D61D68B311F294AE6D6292B
|
||||
30: 8488F0C46151994F7798F70F55C7DA1D242B58CFF49BBFF458D5E574EAD0, 94C2D7BB27BBE184AC75213C1147DA71
|
||||
31: 84050C6EBBD37CFCB7DAAC665A15FE459E420FC32CB7677089B236E6EC06F4, 5AC1CDFB43DC955D727FDED9847D9CCE
|
||||
32: 3EF03B96631A35B492DD1DC49D7862AA4D0DBDC9161D46711FA5360C1B4E76C7, 567869D045CF62531A10C6B9C3E4CE29
|
||||
|
||||
OCB-kasumi (16 byte key)
|
||||
0: , 8A6AB01A47834615
|
||||
1: 23, 5184BF3E82D10C7F
|
||||
2: FDDB, EA45B282D973729D
|
||||
3: 8E3693, 432EFEDC2F238A6C
|
||||
4: 2409AE69, 7899D1928D55C08B
|
||||
5: CA037E6EF1, CA831CE963C9AD95
|
||||
6: BC530A4140A2, EA77571BFFF105A1
|
||||
7: 98B672C2D201EF, 607822313DBC9796
|
||||
8: 26F9AB69E145B531, 7951CE4DC8C47F98
|
||||
9: 30BFC33675F27F7EEB, D17DC60BF79939D2
|
||||
10: F5F816B636D91279AC1C, E2C7B48991DEEF2F
|
||||
11: 705C47FABE7905757C0ED2, AADB2A403B861D55
|
||||
12: 50DEB9C57870B744152ADF08, CB6126DAB93504D1
|
||||
13: 767CB16AA8380C8F25A28A2039, F2C271CC48E067E6
|
||||
14: 3A67656FD8B6ABA8BE7F3BE6C123, 462B6736DF6DC3B1
|
||||
15: 21FB98C62DF932E70D05EB915BA8CF, AEFB635A4E0B6C60
|
||||
16: EA8305ADB368267AB86F3ADDE5EE1719, 97E72E1B174A04F7
|
||||
|
||||
OCB-multi2 (40 byte key)
|
||||
0: , AF7F5567D2CFBAA8
|
||||
1: 15, 66BDF680986FAD17
|
||||
2: C94C, D35B49ADC2B24181
|
||||
3: A0516B, DBA6331562F87FE7
|
||||
4: 49C24A69, 6B88C358FF40AD0F
|
||||
5: E1839EFAB4, 08B6C2F97518E402
|
||||
6: 71CF3D6DC458, 7CA89CC9D23CF4CE
|
||||
7: 02AC7B36DCD0CC, 00331F043D5FB756
|
||||
8: 216F3088BE2553AA, 8A58C76BF8EBC046
|
||||
9: DA0CC0753327707AE3, 8716B1FB7196CB14
|
||||
10: 12B88569BDAAACA144AE, 71A031364BF44ECD
|
||||
11: 35B7F2ECD911F86DA2040C, 7649CD32D29AA258
|
||||
12: BF20840BA08B0C85BEAC80B6, C8BD34015F1E3578
|
||||
13: 2A3F508352AA5673BD5A880093, 9987F70EF92CE4E6
|
||||
14: 5DC44D52A234D9A1ABA4C9BF8301, 728D3D9BC56140E7
|
||||
15: 5FCB0AF77D9BA605056BA9178B15FC, A59675797C1307E2
|
||||
16: 09BB95F7F998572CC38719BC4047BA3A, 5F4DA28D281C7FE9
|
||||
|
||||
OCB-camellia (16 byte key)
|
||||
0: , 3F877FAB2796D87C990AE311F952ABD1
|
||||
1: 00, DD1FC339F770744F39B1A41A3A82CAEA
|
||||
|
@ -459,6 +459,79 @@ OCB-khazad (16 byte key)
|
||||
15: D870479780CC5B3B13A7A39029A56F, 003D3FCD31D497B5
|
||||
16: A47BF1218AC86A60F6002CE004AF5E50, B4EC27091D5DCD58
|
||||
|
||||
OCB-seed (16 byte key)
|
||||
0: , D80D16D2D0FB2BD9EBA4912468B893D7
|
||||
1: 12, 8776140CB818C1CBFD2CFCD8BDFC9FFA
|
||||
2: F8A1, 597381977898AC43194C302216113CEB
|
||||
3: B35B5E, BC327275E7A552C4E0AC0FCB8403A6C4
|
||||
4: 19F57542, 4E49DE569547B619E4187239D9B755C2
|
||||
5: EAD2D99E86, 53DCC5FAB4DE25541A22AF0309C9FE78
|
||||
6: 4902A8FF9AF9, 950D9A28DFBDAECE5F14D47E6B7A8B8B
|
||||
7: 45FE502602EA4E, 69CD243A3CF17FE51ABBFA2CDE510BCC
|
||||
8: D54F2EDE48207CFB, 775EE6140AACF9D56787071F08F36F67
|
||||
9: FEDBBFD9FAABC80186, B37B2C643D62A205BD009BB55D50B918
|
||||
10: 3541A86C889AFEB783B7, FE41A36AC076F417B6A3870DB712CC1F
|
||||
11: 62EB71A2EAFDDE1A050AFC, A953ECF1F0B53438E869F0CFB84CB142
|
||||
12: 77AFE377460D6A51208194DB, 5CC2A9D8499F1B25D78937DAFB1DED10
|
||||
13: A34FCDD7CA45DFAA2178CDC7E8, A14A119115143EE2B4719282C9E2356C
|
||||
14: A61FA4E9550280C8AAC87EF7A204, A87DDD9631C87ED0792C067E8D7F1D9B
|
||||
15: EE82AF5C51896AED298B0C12E00ECF, 9051873090B013508F93677D3A080E96
|
||||
16: 5D532646FAD510E984959C4E14F853D7, 275D8DF932818030F1269804DE06A73B
|
||||
17: 1D77F8916DF479DDCE3F49A1D9DEFA40FB, 99611A067F45F140AFDB6FB7E9C23DF2
|
||||
18: 5857267B77E7B8D7732509AEAC0AA80BDB2C, 3159BF09910493977A33268C7F7DBC01
|
||||
19: 1CF64E54D48811F02DAAE472846E65235DC8B7, 78F88A35E2D93A0746058D1B37762A27
|
||||
20: 8CC20A5FEFE9AAE81742DE70453F62A961188DB7, EDA9E9208EC38152E53AFD62ABC77F0B
|
||||
21: 1D6CCEEEC72CC7369C33F5CD83ED0DCD6F5613D562, 9FEFD274F3F906B11DD87CC2C0F9D0A2
|
||||
22: 20A9C1EAD88F005DB8F69C8BE005D8A010B261FF2EAD, A341F754932DCBC6DAFE4231918A9CF1
|
||||
23: DCEC1BB28E8D77D69B5148FB02E02C281B68BA6E9768B0, 6AAB2EEB1D25D2DF7CEEFA6054E295DA
|
||||
24: 7C4F7165943DB1EFA5731F5C75931F4391F0C40D5731BC54, 3FBFF88733ACE5289D9FB9CD24C44C3F
|
||||
25: F5E2C8A9B3A02E0BB86F9E969B0EDA5F554B0C8902BB6F4643, DFB22569019686B2EE92ABA9EE6610B0
|
||||
26: 42B7D0E9613AFAD6E8093E4F638BC96E22413F15A84202188C31, 002F0F602F596236A8F239E81CE47FC0
|
||||
27: 88B89B7756BD3BE09467998FABD12BCE87E5FE994ADE9B30844AE6, 05E0E8AFA55C3B571A849CE4C9F1F477
|
||||
28: 10452565D15D1D829FC54F61960C6A749AFB91086E388269CF6B588A, DD88B0C63E040DF8878B3C919AA95218
|
||||
29: E68619409B86082C744496FC3F645CE1134E84192D2CBCE1CFEEB12612, 83258C337EF21302724CE051A03195D6
|
||||
30: 840277319319EF1DDF6A57682B6695550157F5B76756BF81BFFB3394AFC0, 183FA85F8E91F8972DA23108FA066F20
|
||||
31: C74A4B01328B809397C07F4FC16131FBEE6396293181C327ADB50EF39CC936, D6C5CF79D47995D7CDB5745F601D859F
|
||||
32: FF3FEE866339B01DD2C1EC0C0E569A458A77DD014AF0CC9C0A8DC52A52133940, BF1AF01F2CB34CBAF1EAB96FBCCB5404
|
||||
|
||||
OCB-kasumi (16 byte key)
|
||||
0: , 7B4CE3A5B7284F8B
|
||||
1: F8, 80584D787B7AE753
|
||||
2: D37A, 7BD7B52BE65B995C
|
||||
3: 2D07BF, 6E6E16FDFE808D21
|
||||
4: 9F1A8E7F, 810CDE98B80F2CF2
|
||||
5: C6A7842512, CB6E9709AD7E8545
|
||||
6: 056553F25EE5, 24A74A113D68E373
|
||||
7: C3E0215DEABD43, 80B9F0ABDC207E04
|
||||
8: 38DA7B24B04DDF91, AEEB273DCAE4F743
|
||||
9: 34169FBF64966E0EB8, 1D10D18FC0DF5372
|
||||
10: 5B3A510F1AE97BFCE1EA, 5B1342A77724DBF7
|
||||
11: 39D1B5067E584E59BB6603, 38EDA20D46B2563D
|
||||
12: AC2DD02E2406D7D8175EB308, AE7DCB1AE6188975
|
||||
13: B0623EDBC20FEBEDF9B4AB70E6, E218732D221A04A4
|
||||
14: 82F57A435A92E28B56F4EF5E7EA8, CC5842752D089C26
|
||||
15: F2D54E3B9022AB32F668AD5A20D050, D811DF3DE76089FF
|
||||
16: 1CAC13A538AFC64D9747226AC23F072C, 2DF49C64213B35B9
|
||||
|
||||
OCB-multi2 (40 byte key)
|
||||
0: , 70A2AD75028C8B3E
|
||||
1: 3E, 76BE76B249142049
|
||||
2: 5C21, E31CDBD0ED6B864D
|
||||
3: 62BC9F, F1124FC4C9C82617
|
||||
4: BB5AC85A, 97035E20D4FFEC81
|
||||
5: 500D9D05E3, 86D5EC5AD1D55434
|
||||
6: 5179B8442E46, 432EAB80B938A00E
|
||||
7: 361000D13C364B, 5ADB3F9FD65EC776
|
||||
8: 5C5BD790B927CBE4, F6ED8E9D330FD37E
|
||||
9: 2020DD735C5D7B4739, F98DEFD6A8368E1F
|
||||
10: 008A8548790A3582C2AC, 041C4E2FA196390C
|
||||
11: E6409403D3E2E4385EE54E, 25AE9113A0E7A3EF
|
||||
12: E23E598908C755FCF9D51E39, 21BF8C9F319FB44F
|
||||
13: C1F13F46FF04717C7E54FFBDC7, E7D8CDF40A1D78A5
|
||||
14: 27721EB66D4F6362308B96DD9895, A374C96FCA94C809
|
||||
15: 1A393F94CB9ACD3BB93D8766C63569, 45A090303B71D35D
|
||||
16: BCC0498FB13CEE8A615FF6409EDF1707, 9589A4CBC481A455
|
||||
|
||||
OCB-camellia (16 byte key)
|
||||
0: , 6972CC27A9711EAE6654851AB8E0C53F
|
||||
1: A2, 208D783961FD532E14376B4EE904FE52
|
||||
|
@ -459,6 +459,79 @@ OMAC-khazad (16 byte key)
|
||||
15: BCAB623CAB7AAA23
|
||||
16: 9BCEAB857596E478
|
||||
|
||||
OMAC-seed (16 byte key)
|
||||
0: F184C3569AE39C95609E878E8E69D276
|
||||
1: 6B94C6CEB7347C7E478D33FD1892032B
|
||||
2: 9FA405B299D5887181C5F09A27AF9F76
|
||||
3: 7457B824FA672F0D939B3CD161A3D229
|
||||
4: EF164E3F30058EA7BA10B1D7ABD945F8
|
||||
5: 22FAD3E42EB96A6E6A66FA73FC96A9E4
|
||||
6: 9BE414C3CD92860A67AFB7C45D0E0EEE
|
||||
7: 40DA2A768F6593E45214CB7F054A9BAA
|
||||
8: 9AFBBEEC8EFAFA7A22752F3BEE055811
|
||||
9: 45EBA2A3EE9276A90FE7FC705086F59B
|
||||
10: 9FE7E1DE176065440B45B1F8F012B8E7
|
||||
11: 5D45CE9EFB14AE973C6567E804492D4A
|
||||
12: BB37B25C98998B0CBDF7AA2BF86FBF3B
|
||||
13: D68EA4AD5B7C3E243872F5BCF7F24EE2
|
||||
14: E880AEA09E328C58ED99928C7BB97DEE
|
||||
15: 4A9EBD30EAB684544D79A066545B100A
|
||||
16: CEFD858C3179B39BADA7EA0F6D3AB150
|
||||
17: BD3336CB8C5AC6D327B310C2093FD087
|
||||
18: ACB4B352003B45FE5E872647ACD2C945
|
||||
19: 74FF04F0ED7ACBDFC2B8EDB0193312BF
|
||||
20: 950B9587B448A73F0566B6E5D30BD85E
|
||||
21: A1CEB1E515BEE6C0C2253415CEDB7F54
|
||||
22: 5E3B9B8F983B882D48853403152BBD09
|
||||
23: E7BB12680BFDC81851D08870862F5F70
|
||||
24: C89D50E7BC1692A3EE29585F4C2861DB
|
||||
25: 1ACBB14354F3A1E002BBD065930F56B8
|
||||
26: AECF4E3972E26A862DC9A0D0F78F4A75
|
||||
27: 4E8663B1FD460CC7B6CA7D6D880209C8
|
||||
28: 0350DFE2A107BB68BAD09A9461EE5E64
|
||||
29: 89B70BBAF6E7F4E7E37F40D122588B0A
|
||||
30: EB0B22BCD7D61272372502B7EADA68A7
|
||||
31: CC4FB973D094008F4B90D687CD91B4C9
|
||||
32: C7162431A53216C22D47FA511B0A619E
|
||||
|
||||
OMAC-kasumi (16 byte key)
|
||||
0: AF4289889D9AD5A1
|
||||
1: C58E7863B4E8CE54
|
||||
2: 2927047C455329BD
|
||||
3: 62905068423B826C
|
||||
4: 0BC0C92B5162FA20
|
||||
5: 03E6D71DE770BB3A
|
||||
6: 6D48AB1CE5EC49FB
|
||||
7: 338597E9545657E8
|
||||
8: 418BAF4EFB83DD50
|
||||
9: A47BA8181D187753
|
||||
10: 76FAA6B0FF3B9D4D
|
||||
11: C540C8A06345FAAE
|
||||
12: 67E454776D871265
|
||||
13: D4E0ABD317993766
|
||||
14: BD328F89D3C1FEA5
|
||||
15: 580E74CB054A9F7D
|
||||
16: 121002BF94F18D90
|
||||
|
||||
OMAC-multi2 (40 byte key)
|
||||
0: 3A06523F10C9F2C5
|
||||
1: 310F665F3A12E82A
|
||||
2: 459FB6A9AC69FE27
|
||||
3: DEB259E248440826
|
||||
4: 6598F16BC1BFB8C8
|
||||
5: B37DFDF8DD61D479
|
||||
6: 0CE3BD7843FC83C4
|
||||
7: 3BB7880A7E8D6C9E
|
||||
8: 74BAA5B4EEFCFDB5
|
||||
9: B71CC55A72D4BB4F
|
||||
10: BEF0C7D0781B368B
|
||||
11: 0CA0D02961398164
|
||||
12: CF3848FA94C45657
|
||||
13: 57EA86B185A210D3
|
||||
14: 05887EB7679F4B62
|
||||
15: F6A007FF4A175F82
|
||||
16: 57E61B59AC9F3240
|
||||
|
||||
OMAC-camellia (16 byte key)
|
||||
0: B5664C5148FFB45297703BCC46C19E4E
|
||||
1: 126EC31A554E8B3B635DE4617092ECE8
|
||||
|
@ -459,6 +459,79 @@ PMAC-khazad (16 byte key)
|
||||
15: 93098DA8A180AA35
|
||||
16: BACE2F4DA8A89E32
|
||||
|
||||
PMAC-seed (16 byte key)
|
||||
0: 58844BC0C53AACF808587A7C35C37DE2
|
||||
1: 481E3E0831DF5AED135C71BBBD075F4A
|
||||
2: 11355F9D42E7BAD967DF90E9088D45A7
|
||||
3: 5E3F82EF0B3CA70DCB614C1016DDB052
|
||||
4: 35E283B0E6C538ED5F2DF4E004324865
|
||||
5: 56467B8BA87BDE89DF4A64DC9B9409CF
|
||||
6: 9315AAAE6CA0868FDCBC397B7DC2DF84
|
||||
7: A265D861DCE6C9B80CCFF92463DB27D3
|
||||
8: 196A0813E4EB49F47A1C3713950B194E
|
||||
9: 261372868D259E609BE5080F282B361A
|
||||
10: DFDC55CDF60A0CB6A33BC6F4B5E5A481
|
||||
11: 0BD99E075BC93386CDB40C2AAF8E8918
|
||||
12: CA1B80D0088D7267C9AFB037DCD8FA56
|
||||
13: 8EDBC9F77D4DAB3DFABEAB0891622F1C
|
||||
14: D1A8F869C961739ABFE7F401FA41D6F6
|
||||
15: 653041670E0BAD5D1FE77A19D9439CEE
|
||||
16: 440EF361908A528B2A3ED7C50C1A47AB
|
||||
17: DCE2613438A5DC42AC8F5CE753DDF01D
|
||||
18: F9E313156CA5345CECB1A5F963E9B201
|
||||
19: 34D72FB89BA3C41E1D0597531849C6C9
|
||||
20: 7ED20B28067BA27E37606387D641B75F
|
||||
21: 933A2E06DA91C208297305FFF4F7795B
|
||||
22: CC455E1FB196CF5B233921AA6A048B81
|
||||
23: 613AC1EE5B8D0C3123A18BED9A352980
|
||||
24: 00A2BBEEB98DB190A694B67EF85A65A4
|
||||
25: 1A7D50E6051D85CA81D9DD7DE81BF02E
|
||||
26: A7F948B36D7AF08FB405A1B8C8C6AC6D
|
||||
27: 967DC3981E7C718B562A93E5292B872F
|
||||
28: 2674544D8D3E3F750590992C0AFB36AF
|
||||
29: 193A2CC794CB285B4CB87197EE3550ED
|
||||
30: 312AAC97C92279428FB1AA0882DB7088
|
||||
31: 3B9CBA2FF7FF4113BB2DC0DF6BCADDD0
|
||||
32: 45C5C71122C70F4337F5EC74BA6B446D
|
||||
|
||||
PMAC-kasumi (16 byte key)
|
||||
0: 52DF2D9A9EB4816A
|
||||
1: 201C1024E6D2AF23
|
||||
2: 04E7B341BFC96D1A
|
||||
3: CC11D07594C50F31
|
||||
4: EE27EAEED00E2F97
|
||||
5: 51DB73EC42ADB789
|
||||
6: 097A5F01A90BFE7F
|
||||
7: 7FD121FD6B504A9D
|
||||
8: 8A09BC5C1E7FA48C
|
||||
9: B7A88328D7D84C9E
|
||||
10: 1D34173FA9F1DFCD
|
||||
11: 129AC84C0429E80E
|
||||
12: 81D236AC427123E4
|
||||
13: 72D4EFEDD56F6253
|
||||
14: ACFC8D6AF30F8B64
|
||||
15: C7F75094394C1765
|
||||
16: D95208BCB48FAA38
|
||||
|
||||
PMAC-multi2 (40 byte key)
|
||||
0: 4799ECD07D95FF68
|
||||
1: 5B94DBFD53C531D7
|
||||
2: DF09EDE792536619
|
||||
3: 01FB72E4EE79DFEF
|
||||
4: 4159642D6ED0D4D8
|
||||
5: B6909A449A0A85BB
|
||||
6: 20B167D3AA349DEA
|
||||
7: E550AAB246D99D92
|
||||
8: 5E1042397C86B08C
|
||||
9: 3789D96B64C85AC0
|
||||
10: 72C0921EF5B5DEDE
|
||||
11: 5923493300FA910E
|
||||
12: B589609B09B4D12F
|
||||
13: 5EA42FE501CD696D
|
||||
14: 4413763D2689108B
|
||||
15: 07207040BAFC8E6D
|
||||
16: 4E80F408AA6F1DD9
|
||||
|
||||
PMAC-camellia (16 byte key)
|
||||
0: 33C03F6AA205F3816A17DA92BEE0BAD2
|
||||
1: AD1EC293DD032511579235B2F29CC909
|
||||
|
10
run.sh
10
run.sh
@ -22,6 +22,16 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f testok.txt
|
||||
bash build.sh " $1" "$2" "$3 LTC_DEBUG=1" "$4" "$5"
|
||||
if [ -a testok.txt ] && [ -f testok.txt ]; then
|
||||
echo
|
||||
else
|
||||
echo
|
||||
echo "Test failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f testok.txt
|
||||
bash build.sh " $1" "$2" "$3" "$4" "$5"
|
||||
if [ -a testok.txt ] && [ -f testok.txt ]; then
|
||||
|
@ -35,8 +35,7 @@
|
||||
#define __LTC_SAFER_TAB_C__
|
||||
#include "safer_tab.c"
|
||||
|
||||
const struct ltc_cipher_descriptor
|
||||
safer_k64_desc = {
|
||||
const struct ltc_cipher_descriptor safer_k64_desc = {
|
||||
"safer-k64",
|
||||
8, 8, 8, 8, LTC_SAFER_K64_DEFAULT_NOF_ROUNDS,
|
||||
&safer_k64_setup,
|
||||
|
@ -378,7 +378,9 @@ int ccm_memory(int cipher,
|
||||
}
|
||||
|
||||
#ifdef LTC_CLEAN_STACK
|
||||
#ifdef LTC_FAST
|
||||
fastMask = 0;
|
||||
#endif
|
||||
mask = 0;
|
||||
zeromem(skey, sizeof(*skey));
|
||||
zeromem(PAD, sizeof(PAD));
|
||||
|
@ -165,27 +165,10 @@ int ccm_test(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (XMEMCMP(buf, tests[x].ct, tests[x].ptlen)) {
|
||||
#if defined(LTC_TEST_DBG)
|
||||
printf("\n%d: x=%lu y=%lu\n", __LINE__, x, y);
|
||||
print_hex("ct is ", buf, tests[x].ptlen);
|
||||
print_hex("ct should", tests[x].ct, tests[x].ptlen);
|
||||
#endif
|
||||
if (compare_testvector(buf, tests[x].ptlen, tests[x].ct, tests[x].ptlen, "CCM encrypt data", x)) {
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
if (tests[x].taglen != taglen) {
|
||||
#if defined(LTC_TEST_DBG)
|
||||
printf("\n%d: x=%lu y=%lu\n", __LINE__, x, y);
|
||||
printf("taglen %lu (is) %lu (should)\n", taglen, tests[x].taglen);
|
||||
#endif
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
if (XMEMCMP(tag, tests[x].tag, tests[x].taglen)) {
|
||||
#if defined(LTC_TEST_DBG)
|
||||
printf("\n%d: x=%lu y=%lu\n", __LINE__, x, y);
|
||||
print_hex("tag is ", tag, tests[x].taglen);
|
||||
print_hex("tag should", tests[x].tag, tests[x].taglen);
|
||||
#endif
|
||||
if (compare_testvector(tag, taglen, tests[x].tag, tests[x].taglen, "CCM encrypt tag", x)) {
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
|
||||
@ -220,12 +203,8 @@ int ccm_test(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (XMEMCMP(buf2, tests[x].pt, tests[x].ptlen)) {
|
||||
#if defined(LTC_TEST_DBG)
|
||||
printf("\n%d: x=%lu y=%lu\n", __LINE__, x, y);
|
||||
print_hex("pt is ", buf2, tests[x].ptlen);
|
||||
print_hex("pt should", tests[x].pt, tests[x].ptlen);
|
||||
#endif
|
||||
|
||||
if (compare_testvector(buf2, tests[x].ptlen, tests[x].pt, tests[x].ptlen, "CCM decrypt data", x)) {
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
if (y == 0) {
|
||||
@ -243,27 +222,12 @@ int ccm_test(void)
|
||||
tag3, &taglen, 1 )) != CRYPT_ERROR) {
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
if (XMEMCMP(buf2, zero, tests[x].ptlen)) {
|
||||
#if defined(LTC_CCM_TEST_DBG)
|
||||
printf("\n%d: x=%lu y=%lu\n", __LINE__, x, y);
|
||||
print_hex("pt is ", buf2, tests[x].ptlen);
|
||||
print_hex("pt should", zero, tests[x].ptlen);
|
||||
#endif
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
if (compare_testvector(buf2, tests[x].ptlen, zero, tests[x].ptlen, "CCM decrypt wrong tag", x)) {
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
} else {
|
||||
/* FIXME: Only check the tag if ccm_memory was not called: ccm_memory already
|
||||
validates the tag. ccm_process and ccm_done should somehow do the same,
|
||||
although with current setup it is impossible to keep the plaintext hidden
|
||||
if the tag is incorrect.
|
||||
*/
|
||||
if (XMEMCMP(tag2, tests[x].tag, tests[x].taglen)) {
|
||||
#if defined(LTC_TEST_DBG)
|
||||
printf("\n%d: x=%lu y=%lu\n", __LINE__, x, y);
|
||||
print_hex("tag is ", tag2, tests[x].taglen);
|
||||
print_hex("tag should", tests[x].tag, tests[x].taglen);
|
||||
#endif
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
if (compare_testvector(tag2, taglen, tests[x].tag, tests[x].taglen, "CCM decrypt tag", x)) {
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -933,6 +933,7 @@ int find_cipher_any(const char *name, int blocklen, int keylen);
|
||||
int find_cipher_id(unsigned char ID);
|
||||
int register_cipher(const struct ltc_cipher_descriptor *cipher);
|
||||
int unregister_cipher(const struct ltc_cipher_descriptor *cipher);
|
||||
int register_all_ciphers(void);
|
||||
int cipher_is_valid(int idx);
|
||||
|
||||
LTC_MUTEX_PROTO(ltc_cipher_mutex)
|
||||
|
@ -461,6 +461,7 @@ int find_hash_oid(const unsigned long *ID, unsigned long IDlen);
|
||||
int find_hash_any(const char *name, int digestlen);
|
||||
int register_hash(const struct ltc_hash_descriptor *hash);
|
||||
int unregister_hash(const struct ltc_hash_descriptor *hash);
|
||||
int register_all_hashes(void);
|
||||
int hash_is_valid(int idx);
|
||||
|
||||
LTC_MUTEX_PROTO(ltc_hash_mutex)
|
||||
|
@ -99,14 +99,7 @@ void crc32_finish(crc32_state *ctx, void *hash, unsigned long size);
|
||||
int crc32_test(void);
|
||||
#endif
|
||||
|
||||
/* yeah it's not exactly in misc in the library, but in testprof/x86_prof.c */
|
||||
#if defined(LTC_TEST) && defined(LTC_TEST_DBG)
|
||||
void print_hex(const char* what, const void* v, const unsigned long l);
|
||||
int compare_testvector(const void* is, const unsigned long is_len, const void* should, const unsigned long should_len, const char* what, int which);
|
||||
#else
|
||||
#define compare_testvector(is, is_len, should, should_len, what, which) \
|
||||
((((is_len) != (should_len)) || (XMEMCMP((is), (should), (is_len)) != 0)) ? 1 : 0)
|
||||
#endif
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
|
@ -199,6 +199,7 @@ extern const struct ltc_prng_descriptor sober128_desc;
|
||||
int find_prng(const char *name);
|
||||
int register_prng(const struct ltc_prng_descriptor *prng);
|
||||
int unregister_prng(const struct ltc_prng_descriptor *prng);
|
||||
int register_all_prngs(void);
|
||||
int prng_is_valid(int idx);
|
||||
LTC_MUTEX_PROTO(ltc_prng_mutex)
|
||||
|
||||
|
@ -609,20 +609,8 @@ int hmac_test(void)
|
||||
return err;
|
||||
}
|
||||
|
||||
if(XMEMCMP(digest, cases[i].digest, (size_t)hash_descriptor[hash].hashsize) != 0) {
|
||||
if(compare_testvector(digest, outlen, cases[i].digest, (size_t)hash_descriptor[hash].hashsize, cases[i].num, i)) {
|
||||
failed++;
|
||||
#ifdef LTC_TEST_DBG
|
||||
{
|
||||
printf("\nHMAC-%s test %s: Failed\n", cases[i].algo, cases[i].num);
|
||||
print_hex("is", digest, hash_descriptor[hash].hashsize);
|
||||
print_hex("should", cases[i].digest, hash_descriptor[hash].hashsize);
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
#if LTC_TEST_DBG > 1
|
||||
} else {
|
||||
printf("HMAC-%s test %s: Passed\n", cases[i].algo, cases[i].num);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
77
src/misc/compare_testvector.c
Normal file
77
src/misc/compare_testvector.c
Normal file
@ -0,0 +1,77 @@
|
||||
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
||||
*
|
||||
* LibTomCrypt is a library that provides various cryptographic
|
||||
* algorithms in a highly modular and flexible manner.
|
||||
*
|
||||
* The library is free for all purposes without any express
|
||||
* guarantee it works.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "tomcrypt.h"
|
||||
|
||||
/**
|
||||
@file compare_testvecotr.c
|
||||
Function to compare two testvectors and print a (detailed) error-message if required, Steffen Jaeckel
|
||||
*/
|
||||
|
||||
#if defined(LTC_TEST) && defined(LTC_TEST_DBG)
|
||||
static void _print_hex(const char* what, const void* v, const unsigned long l)
|
||||
{
|
||||
const unsigned char* p = v;
|
||||
unsigned long x, y = 0, z;
|
||||
fprintf(stderr, "%s contents: \n", what);
|
||||
for (x = 0; x < l; ) {
|
||||
fprintf(stderr, "%02X ", p[x]);
|
||||
if (!(++x % 16) || x == l) {
|
||||
if((x % 16) != 0) {
|
||||
z = 16 - (x % 16);
|
||||
if(z >= 8)
|
||||
fprintf(stderr, " ");
|
||||
for (; z != 0; --z) {
|
||||
fprintf(stderr, " ");
|
||||
}
|
||||
}
|
||||
fprintf(stderr, " | ");
|
||||
for(; y < x; y++) {
|
||||
if((y % 8) == 0)
|
||||
fprintf(stderr, " ");
|
||||
if(isgraph(p[y]))
|
||||
fprintf(stderr, "%c", p[y]);
|
||||
else
|
||||
fprintf(stderr, ".");
|
||||
}
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
else if((x % 8) == 0) {
|
||||
fprintf(stderr, " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
int compare_testvector(const void* is, const unsigned long is_len, const void* should, const unsigned long should_len, const char* what, int which)
|
||||
{
|
||||
int res = 0;
|
||||
if(is_len != should_len)
|
||||
res = is_len > should_len ? -1 : 1;
|
||||
else
|
||||
res = XMEMCMP(is, should, MAX(is_len, should_len));
|
||||
|
||||
#if defined(LTC_TEST) && defined(LTC_TEST_DBG)
|
||||
if (res != 0) {
|
||||
fprintf(stderr, "Testvector #%i of %s failed:\n", which, what);
|
||||
_print_hex("SHOULD", should, should_len);
|
||||
_print_hex("IS ", is, is_len);
|
||||
}
|
||||
#else
|
||||
LTC_UNUSED_PARAM(which);
|
||||
LTC_UNUSED_PARAM(what);
|
||||
#endif
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
@ -26,10 +26,10 @@ int find_cipher_any(const char *name, int blocklen, int keylen)
|
||||
{
|
||||
int x;
|
||||
|
||||
LTC_ARGCHK(name != NULL);
|
||||
|
||||
x = find_cipher(name);
|
||||
if (x != -1) return x;
|
||||
if(name != NULL) {
|
||||
x = find_cipher(name);
|
||||
if (x != -1) return x;
|
||||
}
|
||||
|
||||
LTC_MUTEX_LOCK(<c_cipher_mutex);
|
||||
for (x = 0; x < TAB_SIZE; x++) {
|
||||
|
@ -19,24 +19,25 @@
|
||||
|
||||
|
||||
#ifdef LTM_DESC
|
||||
void init_LTM(void) {
|
||||
void init_LTM(void)
|
||||
{
|
||||
ltc_mp = ltm_desc;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef TFM_DESC
|
||||
void init_TFM(void) {
|
||||
void init_TFM(void)
|
||||
{
|
||||
ltc_mp = tfm_desc;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* *** use of GMP is untested ***
|
||||
#ifdef GMP_DESC
|
||||
void init_GMP(void) {
|
||||
void init_GMP(void)
|
||||
{
|
||||
ltc_mp = gmp_desc;
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
|
||||
|
||||
/* $Source$ */
|
||||
|
98
src/misc/crypt/crypt_register_all_ciphers.c
Normal file
98
src/misc/crypt/crypt_register_all_ciphers.c
Normal file
@ -0,0 +1,98 @@
|
||||
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
||||
*
|
||||
* LibTomCrypt is a library that provides various cryptographic
|
||||
* algorithms in a highly modular and flexible manner.
|
||||
*
|
||||
* The library is free for all purposes without any express
|
||||
* guarantee it works.
|
||||
*/
|
||||
|
||||
#include "tomcrypt.h"
|
||||
|
||||
/**
|
||||
@file crypt_register_all_ciphers.c
|
||||
|
||||
Steffen Jaeckel
|
||||
*/
|
||||
|
||||
#define REGISTER_CIPHER(h) do {\
|
||||
LTC_ARGCHK((err = register_cipher(h) == -1 ? CRYPT_ERROR : CRYPT_OK) == CRYPT_OK); \
|
||||
} while(0)
|
||||
|
||||
int register_all_ciphers(void)
|
||||
{
|
||||
int err = CRYPT_NOP;
|
||||
|
||||
#ifdef LTC_RIJNDAEL
|
||||
#ifdef ENCRYPT_ONLY
|
||||
/* alternative would be
|
||||
* register_cipher(&rijndael_enc_desc);
|
||||
*/
|
||||
REGISTER_CIPHER(&aes_enc_desc);
|
||||
#else
|
||||
/* alternative would be
|
||||
* register_cipher(&rijndael_desc);
|
||||
*/
|
||||
REGISTER_CIPHER(&aes_desc);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef LTC_BLOWFISH
|
||||
REGISTER_CIPHER(&blowfish_desc);
|
||||
#endif
|
||||
#ifdef LTC_XTEA
|
||||
REGISTER_CIPHER(&xtea_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC5
|
||||
REGISTER_CIPHER(&rc5_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC6
|
||||
REGISTER_CIPHER(&rc6_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFERP
|
||||
REGISTER_CIPHER(&saferp_desc);
|
||||
#endif
|
||||
#ifdef LTC_TWOFISH
|
||||
REGISTER_CIPHER(&twofish_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFER
|
||||
REGISTER_CIPHER(&safer_k64_desc);
|
||||
REGISTER_CIPHER(&safer_sk64_desc);
|
||||
REGISTER_CIPHER(&safer_k128_desc);
|
||||
REGISTER_CIPHER(&safer_sk128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC2
|
||||
REGISTER_CIPHER(&rc2_desc);
|
||||
#endif
|
||||
#ifdef LTC_DES
|
||||
REGISTER_CIPHER(&des_desc);
|
||||
REGISTER_CIPHER(&des3_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAST5
|
||||
REGISTER_CIPHER(&cast5_desc);
|
||||
#endif
|
||||
#ifdef LTC_NOEKEON
|
||||
REGISTER_CIPHER(&noekeon_desc);
|
||||
#endif
|
||||
#ifdef LTC_SKIPJACK
|
||||
REGISTER_CIPHER(&skipjack_desc);
|
||||
#endif
|
||||
#ifdef LTC_ANUBIS
|
||||
REGISTER_CIPHER(&anubis_desc);
|
||||
#endif
|
||||
#ifdef LTC_KHAZAD
|
||||
REGISTER_CIPHER(&khazad_desc);
|
||||
#endif
|
||||
#ifdef LTC_KSEED
|
||||
REGISTER_CIPHER(&kseed_desc);
|
||||
#endif
|
||||
#ifdef LTC_KASUMI
|
||||
REGISTER_CIPHER(&kasumi_desc);
|
||||
#endif
|
||||
#ifdef LTC_MULTI2
|
||||
REGISTER_CIPHER(&multi2_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAMELLIA
|
||||
REGISTER_CIPHER(&camellia_desc);
|
||||
#endif
|
||||
return err;
|
||||
}
|
96
src/misc/crypt/crypt_register_all_hashes.c
Normal file
96
src/misc/crypt/crypt_register_all_hashes.c
Normal file
@ -0,0 +1,96 @@
|
||||
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
||||
*
|
||||
* LibTomCrypt is a library that provides various cryptographic
|
||||
* algorithms in a highly modular and flexible manner.
|
||||
*
|
||||
* The library is free for all purposes without any express
|
||||
* guarantee it works.
|
||||
*/
|
||||
|
||||
#include "tomcrypt.h"
|
||||
|
||||
/**
|
||||
@file crypt_register_all_hashes.c
|
||||
|
||||
Steffen Jaeckel
|
||||
*/
|
||||
|
||||
#define REGISTER_HASH(h) do {\
|
||||
LTC_ARGCHK((err = register_hash(h) == -1 ? CRYPT_ERROR : CRYPT_OK) == CRYPT_OK); \
|
||||
} while(0)
|
||||
|
||||
int register_all_hashes(void)
|
||||
{
|
||||
int err = CRYPT_NOP;
|
||||
#ifdef LTC_TIGER
|
||||
REGISTER_HASH(&tiger_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD2
|
||||
REGISTER_HASH(&md2_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD4
|
||||
REGISTER_HASH(&md4_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD5
|
||||
REGISTER_HASH(&md5_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA1
|
||||
REGISTER_HASH(&sha1_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA224
|
||||
REGISTER_HASH(&sha224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA256
|
||||
REGISTER_HASH(&sha256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA384
|
||||
REGISTER_HASH(&sha384_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512
|
||||
REGISTER_HASH(&sha512_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_224
|
||||
REGISTER_HASH(&sha512_224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_256
|
||||
REGISTER_HASH(&sha512_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA3
|
||||
REGISTER_HASH(&sha3_224_desc);
|
||||
REGISTER_HASH(&sha3_256_desc);
|
||||
REGISTER_HASH(&sha3_384_desc);
|
||||
REGISTER_HASH(&sha3_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD128
|
||||
REGISTER_HASH(&rmd128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD160
|
||||
REGISTER_HASH(&rmd160_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD256
|
||||
REGISTER_HASH(&rmd256_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD320
|
||||
REGISTER_HASH(&rmd320_desc);
|
||||
#endif
|
||||
#ifdef LTC_WHIRLPOOL
|
||||
REGISTER_HASH(&whirlpool_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2S
|
||||
REGISTER_HASH(&blake2s_128_desc);
|
||||
REGISTER_HASH(&blake2s_160_desc);
|
||||
REGISTER_HASH(&blake2s_224_desc);
|
||||
REGISTER_HASH(&blake2s_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2S
|
||||
REGISTER_HASH(&blake2b_160_desc);
|
||||
REGISTER_HASH(&blake2b_256_desc);
|
||||
REGISTER_HASH(&blake2b_384_desc);
|
||||
REGISTER_HASH(&blake2b_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_CHC_HASH
|
||||
REGISTER_HASH(&chc_desc);
|
||||
LTC_ARGCHK((err = chc_register(find_cipher_any("aes", 8, 16))) == CRYPT_OK);
|
||||
#endif
|
||||
return err;
|
||||
}
|
45
src/misc/crypt/crypt_register_all_prngs.c
Normal file
45
src/misc/crypt/crypt_register_all_prngs.c
Normal file
@ -0,0 +1,45 @@
|
||||
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
||||
*
|
||||
* LibTomCrypt is a library that provides various cryptographic
|
||||
* algorithms in a highly modular and flexible manner.
|
||||
*
|
||||
* The library is free for all purposes without any express
|
||||
* guarantee it works.
|
||||
*/
|
||||
|
||||
#include "tomcrypt.h"
|
||||
|
||||
/**
|
||||
@file crypt_register_all_prngs.c
|
||||
|
||||
Steffen Jaeckel
|
||||
*/
|
||||
|
||||
#define REGISTER_PRNG(h) do {\
|
||||
LTC_ARGCHK((err = register_prng(h) == -1 ? CRYPT_ERROR : CRYPT_OK) == CRYPT_OK); \
|
||||
} while(0)
|
||||
|
||||
int register_all_prngs(void)
|
||||
{
|
||||
int err = CRYPT_NOP;
|
||||
#ifdef LTC_YARROW
|
||||
REGISTER_PRNG(&yarrow_desc);
|
||||
#endif
|
||||
#ifdef LTC_FORTUNA
|
||||
REGISTER_PRNG(&fortuna_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC4
|
||||
REGISTER_PRNG(&rc4_desc);
|
||||
#endif
|
||||
#ifdef LTC_CHACHA20_PRNG
|
||||
REGISTER_PRNG(&chacha20_prng_desc);
|
||||
#endif
|
||||
#ifdef LTC_SOBER128
|
||||
REGISTER_PRNG(&sober128_desc);
|
||||
#endif
|
||||
#ifdef LTC_SPRNG
|
||||
REGISTER_PRNG(&sprng_desc);
|
||||
#endif
|
||||
|
||||
return err;
|
||||
}
|
@ -161,7 +161,9 @@ int pkcs_5_test (void)
|
||||
int hash = find_hash("sha1");
|
||||
if (hash == -1)
|
||||
{
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("PKCS#5 test failed: 'sha1' hash not found\n");
|
||||
#endif
|
||||
return CRYPT_ERROR;
|
||||
}
|
||||
|
||||
@ -173,27 +175,14 @@ int pkcs_5_test (void)
|
||||
(unsigned char*)cases_5_2[i].S, cases_5_2[i].S_len,
|
||||
cases_5_2[i].c, hash,
|
||||
DK, &dkLen)) != CRYPT_OK) {
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("\nPKCS#5_2 test #%d: Failed/1\n", i);
|
||||
printf("err=%d\n", err);
|
||||
++failed;
|
||||
}
|
||||
else if (dkLen != cases_5_2[i].dkLen) {
|
||||
printf("\nPKCS#5_2 test #%d: Failed/2\n", i);
|
||||
printf("len is %d\n", (int)dkLen);
|
||||
printf("len should %d\n", (int)cases_5_2[i].dkLen);
|
||||
++failed;
|
||||
}
|
||||
else if(XMEMCMP(DK, cases_5_2[i].DK, (size_t)cases_5_2[i].dkLen) != 0) {
|
||||
printf("\nPKCS#5_2 test #%d: Failed/3\n", i);
|
||||
#ifdef LTC_TEST_DBG
|
||||
print_hex("is", DK, cases_5_2[i].dkLen);
|
||||
print_hex("should", cases_5_2[i].DK, cases_5_2[i].dkLen);
|
||||
#endif
|
||||
++failed;
|
||||
#ifdef LTC_TEST_DBG
|
||||
} else {
|
||||
printf("PKCS#5_2 test #%d: Passed\n", i);
|
||||
#endif
|
||||
}
|
||||
else if (compare_testvector(DK, dkLen, cases_5_2[i].DK, cases_5_2[i].dkLen, "PKCS#5_2", i)) {
|
||||
++failed;
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,24 +193,15 @@ int pkcs_5_test (void)
|
||||
(unsigned char*)cases_5_1[i].S,
|
||||
cases_5_1[i].c, hash,
|
||||
DK, &dkLen)) != CRYPT_OK) {
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("\nPKCS#5_1 test #%d: Failed/1\n", i);
|
||||
printf("err=%d\n", err);
|
||||
++failed;
|
||||
}
|
||||
else if (dkLen != cases_5_1[i].dkLen) {
|
||||
printf("\nPKCS#5_1 test #%d: Failed/2\n", i);
|
||||
printf("len is %d\n", (int)dkLen);
|
||||
printf("len should %d\n", (int)cases_5_1[i].dkLen);
|
||||
++failed;
|
||||
}
|
||||
else if (XMEMCMP(DK, cases_5_1[i].DK, (size_t)cases_5_1[i].dkLen) != 0) {
|
||||
printf("\nPKCS#5_1 test #%d: Failed/3\n", i);
|
||||
#ifdef LTC_TEST_DBG
|
||||
print_hex("is", DK, cases_5_1[i].dkLen);
|
||||
print_hex("should", cases_5_1[i].DK, cases_5_1[i].dkLen);
|
||||
#endif
|
||||
++failed;
|
||||
}
|
||||
else if (compare_testvector(DK, dkLen, cases_5_1[i].DK, cases_5_1[i].dkLen, "PKCS#5_1", i)) {
|
||||
++failed;
|
||||
}
|
||||
}
|
||||
|
||||
/* testing alg 1_openssl */
|
||||
@ -231,24 +211,15 @@ int pkcs_5_test (void)
|
||||
(unsigned char*)cases_5_1o[i].S,
|
||||
cases_5_1o[i].c, hash,
|
||||
DK, &dkLen)) != CRYPT_OK) {
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("\nPKCS#5_1o test #%d: Failed/1\n", i);
|
||||
printf("err=%d\n", err);
|
||||
++failed;
|
||||
}
|
||||
else if (dkLen != cases_5_1o[i].dkLen) {
|
||||
printf("\nPKCS#5_1o test #%d: Failed/2\n", i);
|
||||
printf("len is %d\n", (int)dkLen);
|
||||
printf("len should %d\n", (int)cases_5_1o[i].dkLen);
|
||||
++failed;
|
||||
}
|
||||
else if (XMEMCMP(DK, cases_5_1o[i].DK, (size_t)cases_5_1o[i].dkLen) != 0) {
|
||||
printf("\nPKCS#5_1o test #%d: Failed/3\n", i);
|
||||
#ifdef LTC_TEST_DBG
|
||||
print_hex("is", DK, cases_5_1o[i].dkLen);
|
||||
print_hex("should", cases_5_1o[i].DK, cases_5_1o[i].dkLen);
|
||||
#endif
|
||||
++failed;
|
||||
}
|
||||
else if (compare_testvector(DK, dkLen, cases_5_1o[i].DK, cases_5_1o[i].dkLen, "PKCS#5_1o", i)) {
|
||||
++failed;
|
||||
}
|
||||
}
|
||||
|
||||
return (failed != 0) ? CRYPT_FAIL_TESTVECTOR : CRYPT_OK;
|
||||
|
@ -262,15 +262,7 @@ int xts_test(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (XMEMCMP(OUT, tests[i].CTX, tests[i].PTLEN)) {
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("\nTestcase #%d with original length %lu and half of it "
|
||||
"%lu\n",
|
||||
i, tests[i].PTLEN, len);
|
||||
printf("\nencrypt\n");
|
||||
print_hex("should", tests[i].CTX, tests[i].PTLEN);
|
||||
print_hex("is", OUT, tests[i].PTLEN);
|
||||
#endif
|
||||
if (compare_testvector(OUT, tests[i].PTLEN, tests[i].CTX, tests[i].PTLEN, "XTS encrypt", i)) {
|
||||
xts_done(&xts);
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
@ -295,12 +287,7 @@ int xts_test(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (XMEMCMP(OUT, tests[i].PTX, tests[i].PTLEN)) {
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("\ndecrypt\n");
|
||||
print_hex("should", tests[i].PTX, tests[i].PTLEN);
|
||||
print_hex("is", OUT, tests[i].PTLEN);
|
||||
#endif
|
||||
if (compare_testvector(OUT, tests[i].PTLEN, tests[i].PTX, tests[i].PTLEN, "XTS decrypt", i)) {
|
||||
xts_done(&xts);
|
||||
return CRYPT_FAIL_TESTVECTOR;
|
||||
}
|
||||
|
@ -1,18 +0,0 @@
|
||||
#include <tomcrypt_test.h>
|
||||
|
||||
void run_cmd(int res, int line, char *file, char *cmd, const char *algorithm)
|
||||
{
|
||||
if (res != CRYPT_OK) {
|
||||
fprintf(stderr, "%s (%d)%s%s\n%s:%d:%s\n",
|
||||
error_to_string(res), res,
|
||||
(algorithm ? " - " : ""), (algorithm ? algorithm : ""),
|
||||
file, line, cmd);
|
||||
if (res != CRYPT_NOP) {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
@ -1,130 +0,0 @@
|
||||
|
||||
#ifndef __TEST_H_
|
||||
#define __TEST_H_
|
||||
|
||||
#include <tomcrypt.h>
|
||||
|
||||
#ifdef USE_LTM
|
||||
/* Use libtommath as MPI provider */
|
||||
#elif defined(USE_TFM)
|
||||
/* Use tomsfastmath as MPI provider */
|
||||
#elif defined(USE_GMP)
|
||||
/* Use GNU Multiple Precision Arithmetic Library as MPI provider */
|
||||
#else
|
||||
/* The user must define his own MPI provider! */
|
||||
#ifndef EXT_MATH_LIB
|
||||
/*
|
||||
* Yes, you're right, you could also name your instance of the MPI provider
|
||||
* "EXT_MATH_LIB" and you wouldn't need to define it, but most users won't do
|
||||
* this and so it's treated as an error and you have to comment out the
|
||||
* following statement :)
|
||||
*/
|
||||
#error EXT_MATH_LIB is required to be defined
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* enable stack testing */
|
||||
/* #define STACK_TEST */
|
||||
|
||||
/* stack testing, define this if stack usage goes downwards [e.g. x86] */
|
||||
#define STACK_DOWN
|
||||
|
||||
typedef struct {
|
||||
char *name, *prov, *req;
|
||||
int (*entry)(void);
|
||||
} test_entry;
|
||||
|
||||
extern prng_state yarrow_prng;
|
||||
|
||||
void run_cmd(int res, int line, char *file, char *cmd, const char *algorithm);
|
||||
|
||||
#ifdef LTC_VERBOSE
|
||||
#define DO(x) do { fprintf(stderr, "%s:\n", #x); run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
|
||||
#define DOX(x, str) do { fprintf(stderr, "%s - %s:\n", #x, (str)); run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
|
||||
#else
|
||||
#define DO(x) do { run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
|
||||
#define DOX(x, str) do { run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
|
||||
#endif
|
||||
|
||||
/* TESTS */
|
||||
int cipher_hash_test(void);
|
||||
int modes_test(void);
|
||||
int mac_test(void);
|
||||
int pkcs_1_test(void);
|
||||
int pkcs_1_pss_test(void);
|
||||
int pkcs_1_oaep_test(void);
|
||||
int pkcs_1_emsa_test(void);
|
||||
int pkcs_1_eme_test(void);
|
||||
int store_test(void);
|
||||
int rotate_test(void);
|
||||
int rsa_test(void);
|
||||
int dh_test(void);
|
||||
int katja_test(void);
|
||||
int ecc_tests(void);
|
||||
int dsa_test(void);
|
||||
int der_tests(void);
|
||||
int misc_test(void);
|
||||
int base64_test(void);
|
||||
int file_test(void);
|
||||
int multi_test(void);
|
||||
|
||||
/* timing */
|
||||
#define KTIMES 25
|
||||
#define TIMES 100000
|
||||
|
||||
extern struct list {
|
||||
int id;
|
||||
ulong64 spd1, spd2, avg;
|
||||
} results[];
|
||||
|
||||
extern int no_results;
|
||||
|
||||
#ifdef LTC_PKCS_1
|
||||
extern const struct ltc_prng_descriptor no_prng_desc;
|
||||
#endif
|
||||
|
||||
void print_hex(const char* what, const void* v, const unsigned long l);
|
||||
#ifndef compare_testvector
|
||||
int compare_testvector(const void* is, const unsigned long is_len, const void* should, const unsigned long should_len, const char* what, int which);
|
||||
#endif
|
||||
int sorter(const void *a, const void *b);
|
||||
void tally_results(int type);
|
||||
ulong64 rdtsc (void);
|
||||
ulong64 epoch_usec(void);
|
||||
|
||||
void t_start(void);
|
||||
ulong64 t_read(void);
|
||||
void init_timer(void);
|
||||
|
||||
/* register default algs */
|
||||
void reg_algs(void);
|
||||
int time_keysched(void);
|
||||
int time_cipher(void);
|
||||
int time_cipher2(void);
|
||||
int time_cipher3(void);
|
||||
int time_cipher4(void);
|
||||
int time_hash(void);
|
||||
void time_mult(void);
|
||||
void time_sqr(void);
|
||||
void time_prng(void);
|
||||
void time_rsa(void);
|
||||
void time_dsa(void);
|
||||
void time_katja(void);
|
||||
void time_ecc(void);
|
||||
void time_macs_(unsigned long MAC_SIZE);
|
||||
void time_macs(void);
|
||||
void time_encmacs(void);
|
||||
|
||||
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define PRI64 "I64d"
|
||||
#else
|
||||
#define PRI64 "ll"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
1781
testprof/x86_prof.c
1781
testprof/x86_prof.c
File diff suppressed because it is too large
Load Diff
64
tests/common.c
Normal file
64
tests/common.c
Normal file
@ -0,0 +1,64 @@
|
||||
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
||||
*
|
||||
* LibTomCrypt is a library that provides various cryptographic
|
||||
* algorithms in a highly modular and flexible manner.
|
||||
*
|
||||
* The library is free for all purposes without any express
|
||||
* guarantee it works.
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
/**
|
||||
@file common.c
|
||||
|
||||
Steffen Jaeckel
|
||||
*/
|
||||
|
||||
void run_cmd(int res, int line, char *file, char *cmd, const char *algorithm)
|
||||
{
|
||||
if (res != CRYPT_OK) {
|
||||
fprintf(stderr, "%s (%d)%s%s\n%s:%d:%s\n",
|
||||
error_to_string(res), res,
|
||||
(algorithm ? " - " : ""), (algorithm ? algorithm : ""),
|
||||
file, line, cmd);
|
||||
if (res != CRYPT_NOP) {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void print_hex(const char* what, const void* v, const unsigned long l)
|
||||
{
|
||||
const unsigned char* p = v;
|
||||
unsigned long x, y = 0, z;
|
||||
fprintf(stderr, "%s contents: \n", what);
|
||||
for (x = 0; x < l; ) {
|
||||
fprintf(stderr, "%02X ", p[x]);
|
||||
if (!(++x % 16) || x == l) {
|
||||
if((x % 16) != 0) {
|
||||
z = 16 - (x % 16);
|
||||
if(z >= 8)
|
||||
fprintf(stderr, " ");
|
||||
for (; z != 0; --z) {
|
||||
fprintf(stderr, " ");
|
||||
}
|
||||
}
|
||||
fprintf(stderr, " | ");
|
||||
for(; y < x; y++) {
|
||||
if((y % 8) == 0)
|
||||
fprintf(stderr, " ");
|
||||
if(isgraph(p[y]))
|
||||
fprintf(stderr, "%c", p[y]);
|
||||
else
|
||||
fprintf(stderr, ".");
|
||||
}
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
else if((x % 8) == 0) {
|
||||
fprintf(stderr, " ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prng_state yarrow_prng;
|
20
tests/common.h
Normal file
20
tests/common.h
Normal file
@ -0,0 +1,20 @@
|
||||
#ifndef DEMOS_COMMON_H_
|
||||
#define DEMOS_COMMON_H_
|
||||
|
||||
#include <tomcrypt.h>
|
||||
|
||||
extern prng_state yarrow_prng;
|
||||
|
||||
#ifdef LTC_VERBOSE
|
||||
#define DO(x) do { fprintf(stderr, "%s:\n", #x); run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
|
||||
#define DOX(x, str) do { fprintf(stderr, "%s - %s:\n", #x, (str)); run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
|
||||
#else
|
||||
#define DO(x) do { run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
|
||||
#define DOX(x, str) do { run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
|
||||
#endif
|
||||
|
||||
void run_cmd(int res, int line, char *file, char *cmd, const char *algorithm);
|
||||
|
||||
void print_hex(const char* what, const void* v, const unsigned long l);
|
||||
|
||||
#endif /* DEMOS_COMMON_H_ */
|
@ -5,7 +5,7 @@
|
||||
|
||||
#ifndef LTC_DER
|
||||
|
||||
int der_tests(void)
|
||||
int der_test(void)
|
||||
{
|
||||
return CRYPT_NOP;
|
||||
}
|
||||
@ -1086,7 +1086,7 @@ static int der_choice_test(void)
|
||||
}
|
||||
|
||||
|
||||
int der_tests(void)
|
||||
int der_test(void)
|
||||
{
|
||||
unsigned long x, y, z, zz, oid[2][32];
|
||||
unsigned char buf[3][2048];
|
@ -11,7 +11,7 @@ int file_test(void)
|
||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F };
|
||||
unsigned char buf[200];
|
||||
unsigned long len;
|
||||
char *fname = "testprof/test.key";
|
||||
char *fname = "tests/test.key";
|
||||
FILE *in;
|
||||
int err, isha256, iaes;
|
||||
|
45
tests/prng_test.c
Normal file
45
tests/prng_test.c
Normal file
@ -0,0 +1,45 @@
|
||||
#include <tomcrypt_test.h>
|
||||
|
||||
#ifdef LTC_PRNG_ENABLE_LTC_RNG
|
||||
|
||||
static unsigned long my_test_rng_read;
|
||||
|
||||
static unsigned long my_test_rng(unsigned char *buf, unsigned long len,
|
||||
void (*callback)(void))
|
||||
{
|
||||
unsigned long n;
|
||||
LTC_UNUSED_PARAM(callback);
|
||||
for (n = 0; n < len; ++n) {
|
||||
buf[n] = 4;
|
||||
}
|
||||
my_test_rng_read += n;
|
||||
return n;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int prng_test(void)
|
||||
{
|
||||
int err = CRYPT_NOP;
|
||||
#ifdef LTC_PRNG_ENABLE_LTC_RNG
|
||||
unsigned long before;
|
||||
|
||||
unsigned long (*previous)(unsigned char *, unsigned long , void (*)(void)) = ltc_rng;
|
||||
ltc_rng = my_test_rng;
|
||||
|
||||
before = my_test_rng_read;
|
||||
|
||||
if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT_OK) {
|
||||
fprintf(stderr, "rng_make_prng with 'my_test_rng' failed: %s\n", error_to_string(err));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (before == my_test_rng_read) {
|
||||
fprintf(stderr, "somehow there was no read from the ltc_rng! %lu == %lu\n", before, my_test_rng_read);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ltc_rng = previous;
|
||||
#endif
|
||||
return err;
|
||||
}
|
@ -274,29 +274,15 @@ int rsa_test(void)
|
||||
|
||||
len = mp_unsigned_bin_size(key.N);
|
||||
mp_to_unsigned_bin(key.N, tmp);
|
||||
fprintf(stderr, "N == \n");
|
||||
for (cnt = 0; cnt < len; ) {
|
||||
fprintf(stderr, "%02x ", tmp[cnt]);
|
||||
if (!(++cnt & 15)) fprintf(stderr, "\n");
|
||||
}
|
||||
print_hex("N", tmp, len);
|
||||
|
||||
len = mp_unsigned_bin_size(key.p);
|
||||
mp_to_unsigned_bin(key.p, tmp);
|
||||
fprintf(stderr, "p == \n");
|
||||
for (cnt = 0; cnt < len; ) {
|
||||
fprintf(stderr, "%02x ", tmp[cnt]);
|
||||
if (!(++cnt & 15)) fprintf(stderr, "\n");
|
||||
}
|
||||
print_hex("p", tmp, len);
|
||||
|
||||
len = mp_unsigned_bin_size(key.q);
|
||||
mp_to_unsigned_bin(key.q, tmp);
|
||||
fprintf(stderr, "\nq == \n");
|
||||
for (cnt = 0; cnt < len; ) {
|
||||
fprintf(stderr, "%02x ", tmp[cnt]);
|
||||
if (!(++cnt & 15)) fprintf(stderr, "\n");
|
||||
}
|
||||
fprintf(stderr, "\n");
|
||||
|
||||
print_hex("q", tmp, len);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -539,14 +525,8 @@ for (cnt = 0; cnt < len; ) {
|
||||
/* (3) */
|
||||
DO(ltc_mp.rsa_me(p2, len2, p3, &len3, PK_PUBLIC, &key));
|
||||
/* (4) */
|
||||
#ifdef LTC_TEST_DBG
|
||||
cnt = rsa_get_size(&key);
|
||||
printf("\nBefore:");
|
||||
for (cnt = 0; cnt < len3; ++cnt) {
|
||||
if (cnt%32 == 0)
|
||||
printf("\n%3lu:", cnt);
|
||||
printf(" %02x", p3[cnt]);
|
||||
}
|
||||
#if defined(LTC_TEST_DBG) && LTC_TEST_DBG > 1
|
||||
print_hex("Original signature", p3, len3);
|
||||
#endif
|
||||
/* (4.1) */
|
||||
for (cnt = 0; cnt < len3; ++cnt) {
|
||||
@ -563,14 +543,8 @@ for (cnt = 0; cnt < len; ) {
|
||||
for (cnt = cnt + len3-cnt2+i; cnt < len; ++cnt) {
|
||||
p3[cnt] = 0;
|
||||
}
|
||||
#ifdef LTC_TEST_DBG
|
||||
printf("\nAfter:");
|
||||
for (cnt = 0; cnt < len3; ++cnt) {
|
||||
if (cnt%32 == 0)
|
||||
printf("\n%3lu:", cnt);
|
||||
printf(" %02x", p3[cnt]);
|
||||
}
|
||||
printf("\n");
|
||||
#if defined(LTC_TEST_DBG) && LTC_TEST_DBG > 1
|
||||
print_hex("Forged signature", p3, len3);
|
||||
#endif
|
||||
|
||||
len2 = sizeof(out);
|
321
tests/test.c
Normal file
321
tests/test.c
Normal file
@ -0,0 +1,321 @@
|
||||
#include <tomcrypt_test.h>
|
||||
|
||||
#ifndef GIT_VERSION
|
||||
#define GIT_VERSION "Undefined version"
|
||||
#endif
|
||||
|
||||
#define LTC_TEST_FN(f) { f, #f }
|
||||
|
||||
static const struct {
|
||||
int (*fn)(void);
|
||||
const char* name;
|
||||
} test_functions[] =
|
||||
{
|
||||
LTC_TEST_FN(store_test),
|
||||
LTC_TEST_FN(rotate_test),
|
||||
LTC_TEST_FN(misc_test),
|
||||
LTC_TEST_FN(cipher_hash_test),
|
||||
LTC_TEST_FN(mac_test),
|
||||
LTC_TEST_FN(modes_test),
|
||||
LTC_TEST_FN(der_test),
|
||||
LTC_TEST_FN(pkcs_1_test),
|
||||
LTC_TEST_FN(pkcs_1_pss_test),
|
||||
LTC_TEST_FN(pkcs_1_oaep_test),
|
||||
LTC_TEST_FN(pkcs_1_emsa_test),
|
||||
LTC_TEST_FN(pkcs_1_eme_test),
|
||||
LTC_TEST_FN(rsa_test),
|
||||
LTC_TEST_FN(dh_test),
|
||||
LTC_TEST_FN(ecc_tests),
|
||||
LTC_TEST_FN(dsa_test),
|
||||
LTC_TEST_FN(katja_test),
|
||||
LTC_TEST_FN(file_test),
|
||||
LTC_TEST_FN(multi_test),
|
||||
LTC_TEST_FN(prng_test),
|
||||
};
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <windows.h> /* GetSystemTimeAsFileTime */
|
||||
#else
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
/* microseconds since 1970 (UNIX epoch) */
|
||||
static ulong64 epoch_usec(void)
|
||||
{
|
||||
#if defined(LTC_NO_TEST_TIMING)
|
||||
return 0;
|
||||
#elif defined(_WIN32)
|
||||
FILETIME CurrentTime;
|
||||
ulong64 cur_time;
|
||||
ULARGE_INTEGER ul;
|
||||
GetSystemTimeAsFileTime(&CurrentTime);
|
||||
ul.LowPart = CurrentTime.dwLowDateTime;
|
||||
ul.HighPart = CurrentTime.dwHighDateTime;
|
||||
cur_time = ul.QuadPart;
|
||||
cur_time -= CONST64(116444736000000000); /* subtract epoch in microseconds */
|
||||
cur_time /= 10; /* nanoseconds > microseconds */
|
||||
return cur_time;
|
||||
#else
|
||||
struct timeval tv;
|
||||
struct timezone tz;
|
||||
gettimeofday(&tv, &tz);
|
||||
return (ulong64)(tv.tv_sec) * 1000000 + (ulong64)(tv.tv_usec); /* get microseconds */
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* unregister ciphers, hashes & prngs
|
||||
*/
|
||||
static void _unregister_all(void)
|
||||
{
|
||||
#ifdef LTC_RIJNDAEL
|
||||
unregister_cipher(&aes_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLOWFISH
|
||||
unregister_cipher(&blowfish_desc);
|
||||
#endif
|
||||
#ifdef LTC_XTEA
|
||||
unregister_cipher(&xtea_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC5
|
||||
unregister_cipher(&rc5_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC6
|
||||
unregister_cipher(&rc6_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFERP
|
||||
unregister_cipher(&saferp_desc);
|
||||
#endif
|
||||
#ifdef LTC_TWOFISH
|
||||
unregister_cipher(&twofish_desc);
|
||||
#endif
|
||||
#ifdef LTC_SAFER
|
||||
unregister_cipher(&safer_k64_desc);
|
||||
unregister_cipher(&safer_sk64_desc);
|
||||
unregister_cipher(&safer_k128_desc);
|
||||
unregister_cipher(&safer_sk128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC2
|
||||
unregister_cipher(&rc2_desc);
|
||||
#endif
|
||||
#ifdef LTC_DES
|
||||
unregister_cipher(&des_desc);
|
||||
unregister_cipher(&des3_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAST5
|
||||
unregister_cipher(&cast5_desc);
|
||||
#endif
|
||||
#ifdef LTC_NOEKEON
|
||||
unregister_cipher(&noekeon_desc);
|
||||
#endif
|
||||
#ifdef LTC_SKIPJACK
|
||||
unregister_cipher(&skipjack_desc);
|
||||
#endif
|
||||
#ifdef LTC_KHAZAD
|
||||
unregister_cipher(&khazad_desc);
|
||||
#endif
|
||||
#ifdef LTC_ANUBIS
|
||||
unregister_cipher(&anubis_desc);
|
||||
#endif
|
||||
#ifdef LTC_KSEED
|
||||
unregister_cipher(&kseed_desc);
|
||||
#endif
|
||||
#ifdef LTC_KASUMI
|
||||
unregister_cipher(&kasumi_desc);
|
||||
#endif
|
||||
#ifdef LTC_MULTI2
|
||||
unregister_cipher(&multi2_desc);
|
||||
#endif
|
||||
#ifdef LTC_CAMELLIA
|
||||
unregister_cipher(&camellia_desc);
|
||||
#endif
|
||||
|
||||
#ifdef LTC_TIGER
|
||||
unregister_hash(&tiger_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD2
|
||||
unregister_hash(&md2_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD4
|
||||
unregister_hash(&md4_desc);
|
||||
#endif
|
||||
#ifdef LTC_MD5
|
||||
unregister_hash(&md5_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA1
|
||||
unregister_hash(&sha1_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA224
|
||||
unregister_hash(&sha224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA256
|
||||
unregister_hash(&sha256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA384
|
||||
unregister_hash(&sha384_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512
|
||||
unregister_hash(&sha512_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_224
|
||||
unregister_hash(&sha512_224_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA512_256
|
||||
unregister_hash(&sha512_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_SHA3
|
||||
unregister_hash(&sha3_224_desc);
|
||||
unregister_hash(&sha3_256_desc);
|
||||
unregister_hash(&sha3_384_desc);
|
||||
unregister_hash(&sha3_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD128
|
||||
unregister_hash(&rmd128_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD160
|
||||
unregister_hash(&rmd160_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD256
|
||||
unregister_hash(&rmd256_desc);
|
||||
#endif
|
||||
#ifdef LTC_RIPEMD320
|
||||
unregister_hash(&rmd320_desc);
|
||||
#endif
|
||||
#ifdef LTC_WHIRLPOOL
|
||||
unregister_hash(&whirlpool_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2S
|
||||
unregister_hash(&blake2s_128_desc);
|
||||
unregister_hash(&blake2s_160_desc);
|
||||
unregister_hash(&blake2s_224_desc);
|
||||
unregister_hash(&blake2s_256_desc);
|
||||
#endif
|
||||
#ifdef LTC_BLAKE2B
|
||||
unregister_hash(&blake2b_160_desc);
|
||||
unregister_hash(&blake2b_256_desc);
|
||||
unregister_hash(&blake2b_384_desc);
|
||||
unregister_hash(&blake2b_512_desc);
|
||||
#endif
|
||||
#ifdef LTC_CHC_HASH
|
||||
unregister_hash(&chc_desc);
|
||||
#endif
|
||||
|
||||
unregister_prng(&yarrow_desc);
|
||||
#ifdef LTC_FORTUNA
|
||||
unregister_prng(&fortuna_desc);
|
||||
#endif
|
||||
#ifdef LTC_RC4
|
||||
unregister_prng(&rc4_desc);
|
||||
#endif
|
||||
#ifdef LTC_CHACHA20_PRNG
|
||||
unregister_prng(&chacha20_prng_desc);
|
||||
#endif
|
||||
#ifdef LTC_SOBER128
|
||||
unregister_prng(&sober128_desc);
|
||||
#endif
|
||||
} /* _cleanup() */
|
||||
|
||||
static void register_algs(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
atexit(_unregister_all);
|
||||
|
||||
#ifndef LTC_YARROW
|
||||
#error This demo requires Yarrow.
|
||||
#endif
|
||||
register_all_ciphers();
|
||||
register_all_hashes();
|
||||
register_all_prngs();
|
||||
|
||||
if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT_OK) {
|
||||
fprintf(stderr, "rng_make_prng failed: %s\n", error_to_string(err));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (strcmp("CRYPT_OK", error_to_string(err))) {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int x, pass = 0, fail = 0, nop = 0;
|
||||
size_t fn_len, i, dots;
|
||||
char *single_test = NULL;
|
||||
ulong64 ts;
|
||||
long delta, dur = 0;
|
||||
register_algs();
|
||||
|
||||
printf("build == %s\n%s\n", GIT_VERSION, crypt_build_settings);
|
||||
|
||||
#ifdef USE_LTM
|
||||
ltc_mp = ltm_desc;
|
||||
printf("math provider = libtommath\n");
|
||||
#elif defined(USE_TFM)
|
||||
ltc_mp = tfm_desc;
|
||||
printf("math provider = tomsfastmath\n");
|
||||
#elif defined(USE_GMP)
|
||||
ltc_mp = gmp_desc;
|
||||
printf("math provider = gnump\n");
|
||||
#else
|
||||
extern ltc_math_descriptor EXT_MATH_LIB;
|
||||
ltc_mp = EXT_MATH_LIB;
|
||||
printf("math provider = EXT_MATH_LIB\n");
|
||||
#endif
|
||||
printf("MP_DIGIT_BIT = %d\n", MP_DIGIT_BIT);
|
||||
|
||||
fn_len = 0;
|
||||
for (i = 0; i < sizeof(test_functions)/sizeof(test_functions[0]); ++i) {
|
||||
size_t len = strlen(test_functions[i].name);
|
||||
if (fn_len < len) fn_len = len;
|
||||
}
|
||||
|
||||
fn_len = fn_len + (4 - (fn_len % 4));
|
||||
|
||||
/* single test name from commandline */
|
||||
if (argc > 1) single_test = argv[1];
|
||||
|
||||
for (i = 0; i < sizeof(test_functions)/sizeof(test_functions[0]); ++i) {
|
||||
if (single_test && strcmp(test_functions[i].name, single_test)) {
|
||||
continue;
|
||||
}
|
||||
dots = fn_len - strlen(test_functions[i].name);
|
||||
|
||||
printf("\n%s", test_functions[i].name);
|
||||
while(dots--) printf(".");
|
||||
fflush(stdout);
|
||||
|
||||
ts = epoch_usec();
|
||||
x = test_functions[i].fn();
|
||||
delta = (long)(epoch_usec() - ts);
|
||||
dur += delta;
|
||||
|
||||
if (x == CRYPT_OK) {
|
||||
printf("passed %10.3fms", (double)(delta)/1000);
|
||||
pass++;
|
||||
}
|
||||
else if (x == CRYPT_NOP) {
|
||||
printf("nop");
|
||||
nop++;
|
||||
}
|
||||
else {
|
||||
printf("failed %10.3fms", (double)(delta)/1000);
|
||||
fail++;
|
||||
}
|
||||
}
|
||||
|
||||
if (fail > 0 || fail+pass+nop == 0) {
|
||||
printf("\n\nFAILURE: passed=%d failed=%d nop=%d duration=%.1fsec\n", pass, fail, nop, (double)(dur)/(1000*1000));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
else {
|
||||
printf("\n\nSUCCESS: passed=%d failed=%d nop=%d duration=%.1fsec\n", pass, fail, nop, (double)(dur)/(1000*1000));
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
64
tests/tomcrypt_test.h
Normal file
64
tests/tomcrypt_test.h
Normal file
@ -0,0 +1,64 @@
|
||||
|
||||
#ifndef __TEST_H_
|
||||
#define __TEST_H_
|
||||
|
||||
#include <tomcrypt.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#ifdef USE_LTM
|
||||
/* Use libtommath as MPI provider */
|
||||
#elif defined(USE_TFM)
|
||||
/* Use tomsfastmath as MPI provider */
|
||||
#elif defined(USE_GMP)
|
||||
/* Use GNU Multiple Precision Arithmetic Library as MPI provider */
|
||||
#else
|
||||
/* The user must define his own MPI provider! */
|
||||
#ifndef EXT_MATH_LIB
|
||||
/*
|
||||
* Yes, you're right, you could also name your instance of the MPI provider
|
||||
* "EXT_MATH_LIB" and you wouldn't need to define it, but most users won't do
|
||||
* this and so it's treated as an error and you have to comment out the
|
||||
* following statement :)
|
||||
*/
|
||||
#error EXT_MATH_LIB is required to be defined
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
char *name, *prov, *req;
|
||||
int (*entry)(void);
|
||||
} test_entry;
|
||||
|
||||
/* TESTS */
|
||||
int cipher_hash_test(void);
|
||||
int modes_test(void);
|
||||
int mac_test(void);
|
||||
int pkcs_1_test(void);
|
||||
int pkcs_1_pss_test(void);
|
||||
int pkcs_1_oaep_test(void);
|
||||
int pkcs_1_emsa_test(void);
|
||||
int pkcs_1_eme_test(void);
|
||||
int store_test(void);
|
||||
int rotate_test(void);
|
||||
int rsa_test(void);
|
||||
int dh_test(void);
|
||||
int katja_test(void);
|
||||
int ecc_tests(void);
|
||||
int dsa_test(void);
|
||||
int der_test(void);
|
||||
int misc_test(void);
|
||||
int base64_test(void);
|
||||
int file_test(void);
|
||||
int multi_test(void);
|
||||
int prng_test(void);
|
||||
|
||||
#ifdef LTC_PKCS_1
|
||||
extern const struct ltc_prng_descriptor no_prng_desc;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* $Source$ */
|
||||
/* $Revision$ */
|
||||
/* $Date$ */
|
Loading…
Reference in New Issue
Block a user