test.c (487B)
1 #include <stdlib.h> 2 #include <sys/random.h> 3 4 #include "hex.h" 5 6 int randomData(void *buf, size_t l) { 7 ssize_t r; 8 9 r = getrandom(buf, l, 0); 10 if (r != l) { 11 return 1; 12 } 13 return 0; 14 } 15 16 int randomDataHex(void *buf, ssize_t l) { 17 ssize_t lr; 18 int r; 19 char *rbuf; 20 21 lr = l / 2; 22 rbuf = calloc(sizeof(char), lr); 23 r = randomData(rbuf, lr); 24 if (r) { 25 free(rbuf); 26 return r; 27 } 28 r = toHex(rbuf, lr, (unsigned char*)buf, &l); 29 if (r) { 30 free(rbuf); 31 return 3; 32 } 33 free(rbuf); 34 return 0; 35 }