ftu/debugprint.c

47 lines
1.4 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include "debugprint.h"
#include "blst/blst.h"
#include "base64.h"
void print_bytes(const char* label, void *toprint, int length, char separator){
printf("%s", label);
for(int i=0;i<length;i++){
printf("%.2x", ((byte *) toprint)[i]);
if(separator != '\0') printf("%c", separator);
}
printf("\n");
}
void print_base64(void *toprint, int input_len){
int buffer_size;
char* output;
buffer_size = (((input_len + 2) / 3) * 4) + 1;
output = malloc(buffer_size); //create a buffer large enough for the base64'd input, including with padding if need be
if(output == NULL) return;
base64_encode_oneshot(toprint, input_len, output);
printf("%s\n", output);
free(output);
}
void debug_print_bytes(__attribute__((unused)) const char* label, __attribute__((unused)) void *toprint, __attribute__((unused)) int length){
#ifdef INSECURE_CTM_DEBUG_PRINT
print_bytes(label, toprint, length, ' ');
#endif
}
void print_scalar(const char* label, blst_scalar *toprint){
byte temp_buffer[32];
blst_bendian_from_scalar(temp_buffer, toprint);
debug_print_bytes(label, temp_buffer, 32);
}
void debug_print_scalar(__attribute__((unused)) const char* label, __attribute__((unused)) blst_scalar *toprint){
#ifdef INSECURE_CTM_DEBUG_PRINT
print_scalar(label, toprint);
#endif
}