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 *"
ます。私が知る限り、これを比較したウェブ上で入手可能な非常に限られた数の例から、私はこれを正しく実装しました。
それが機能しない理由はありますか?