Я пытаюсь использовать функции BN_ * в OpenSSL. В частности, у меня есть следующий код:
#import <openssl/bn.h>
BIGNUM * num = BN_new();
BN_set_word(num, 42);
char * buffer = malloc((BN_num_bytes(num)+1) * sizeof(char));
buffer[BN_num_bytes(num)] = '\0';
int len = BN_bn2bin(num, buffer);
printf("42 in binary is %s\n", buffer);
Однако, когда я делаю это, я не получаю строку из нулей и единиц. Вместо этого он печатает "42 in binary is *"
. Насколько я могу судить, и из очень ограниченного числа примеров, доступных в сети, с которыми я сравнивал это, я правильно реализовал.
Есть идеи, почему это не работает?