1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/*------------------------------------------------------------------
* test_timingsafe_bcmp
* File 'timingsafe_bcmp.c'
* Lines executed:61.11% of 18
*
*------------------------------------------------------------------
*/
#include "test_private.h"
#include "safe_mem_lib.h"
#define LEN (1024)
static uint8_t mem1[LEN];
static uint8_t mem2[LEN];
int test_timingsafe_bcmp(void);
int test_timingsafe_bcmp(void) {
int ind;
#ifdef HAVE_BCMP
int std_ind;
#endif
int len;
errno_t rc = 0;
int errs = 0;
/*--------------------------------------------------*/
/* no short cut */
ind = timingsafe_bcmp(mem1, mem1, LEN);
INDZERO();
/*--------------------------------------------------*/
len = 1;
memset(mem1, 55, len);
memset(mem2, 55, len);
ind = timingsafe_bcmp(mem1, mem2, len);
INDZERO();
#ifdef HAVE_BCMP
std_ind = bcmp(mem1, mem2, len);
if (ind != std_ind) {
debug_printf("%s %u Ind=%d Std=%d \n", __FUNCTION__, __LINE__, ind,
std_ind);
errs++;
}
#endif
/*--------------------------------------------------*/
len = 2;
memset(mem1, 55, LEN);
memset(mem2, 55, LEN);
ind = timingsafe_bcmp(&mem1[1], &mem2[1], len);
INDZERO();
#ifdef HAVE_BCMP
std_ind = bcmp(mem1, mem2, len);
if (ind != std_ind) {
debug_printf("%s %u Ind=%d Std=%d \n", __FUNCTION__, __LINE__, ind,
std_ind);
errs++;
}
#endif
/*--------------------------------------------------*/
len = 32;
memset(mem1, 55, len);
memset(mem2, 55, len);
ind = timingsafe_bcmp(mem1, mem2, len);
INDZERO();
#ifdef HAVE_BCMP
std_ind = bcmp(mem1, mem2, len);
if (ind != std_ind) {
debug_printf("%s %u Ind=%d Std=%d \n", __FUNCTION__, __LINE__, ind,
std_ind);
errs++;
}
#endif
/*--------------------------------------------------*/
len = 32;
memset(mem1, 55, len);
memset(mem2, 55, len);
memset(&mem2[(len / 2)], 35, len);
ind = timingsafe_bcmp(mem1, mem2, len);
if (!ind) {
debug_printf("%s %u Ind=%d\n", __FUNCTION__, __LINE__, ind);
errs++;
}
/*--------------------------------------------------*/
len = 32;
memset(mem1, 55, len);
memset(mem2, 55, len);
memset(&mem2[(len / 2)], 65, len);
ind = timingsafe_bcmp(mem1, mem2, len);
if (!ind) {
debug_printf("%s %u Ind=%d\n", __FUNCTION__, __LINE__, ind);
errs++;
}
/*--------------------------------------------------*/
len = 3;
memset(mem1, 55, len);
memset(mem2, 55, len);
ind = timingsafe_bcmp(mem1, mem2, len);
if (ind != 0) {
debug_printf("%s %u Ind=%d \n", __FUNCTION__, __LINE__, ind);
errs++;
}
/*--------------------------------------------------*/
return (errs);
}
#ifndef __KERNEL__
int main(void) { return (test_timingsafe_bcmp()); }
#endif
|