2017-05-05 07:52:39 -04:00
|
|
|
/* 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
|
|
|
|
*/
|
|
|
|
|
2017-05-24 15:06:40 -04:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-05-05 07:52:39 -04:00
|
|
|
|
|
|
|
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;
|