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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user