我正在尝试在 OpenSSL 中使用 BN_* 函数。具体来说,我有以下代码:
#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);
但是,当我这样做时,我没有得到一串 1 和 0。相反,它打印"42 in binary is *"
. 据我所知,从我比较过的网络上非常有限的例子来看,我已经正确地实现了这一点。
任何想法为什么它不起作用?