move compare_testvector()
implementation to the library
This commit is contained in:
parent
e1a1145802
commit
b78c5551f7
@ -99,7 +99,6 @@ void crc32_finish(crc32_state *ctx, void *hash, unsigned long size);
|
|||||||
int crc32_test(void);
|
int crc32_test(void);
|
||||||
#endif
|
#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)
|
#if defined(LTC_TEST) && defined(LTC_TEST_DBG)
|
||||||
void print_hex(const char* what, const void* v, const unsigned long l);
|
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);
|
int compare_testvector(const void* is, const unsigned long is_len, const void* should, const unsigned long should_len, const char* what, int which);
|
||||||
|
74
src/misc/compare_testvector.c
Normal file
74
src/misc/compare_testvector.c
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef compare_testvector
|
||||||
|
|
||||||
|
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, " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 (res != 0) {
|
||||||
|
fprintf(stderr, "Testvector #%i of %s failed:\n", which, what);
|
||||||
|
_print_hex("SHOULD", should, should_len);
|
||||||
|
_print_hex("IS ", is, is_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* $Source$ */
|
||||||
|
/* $Revision$ */
|
||||||
|
/* $Date$ */
|
@ -61,25 +61,6 @@ 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)
|
|
||||||
{
|
|
||||||
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 (res != 0) {
|
|
||||||
fprintf(stderr, "Testvector #%i of %s failed:\n", which, what);
|
|
||||||
print_hex("SHOULD", should, should_len);
|
|
||||||
print_hex("IS ", is, is_len);
|
|
||||||
}
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
prng_state yarrow_prng;
|
prng_state yarrow_prng;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -22,9 +22,6 @@ extern prng_state yarrow_prng;
|
|||||||
void run_cmd(int res, int line, char *file, char *cmd, const char *algorithm);
|
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);
|
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
|
|
||||||
|
|
||||||
void register_algs(void);
|
void register_algs(void);
|
||||||
void setup_math(void);
|
void setup_math(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user