我有以下功能:
BIGNUM * multiplyWithInt(BIGNUM *bn, int val){
//Logic Here
}
我尝试做的是计算乘法bn*val
。根据文档(从命令man bn
给出)乘法如下:
int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);
正如你可以看到我需要以某种方式TOI转换整数val
到OpenSSL的BIGNUM。我该怎么办呢?一种方法是将其转换为unsigned char *
字节数组,并使用BN_bin2bn
功能,但将是给我所需的功能?
你要找的功能是BN_set_word
。此分配一个unsigned long
值到BIGNUM
。
BIGNUM *bn_val = BN_new();
BN_set_word(bn_val , val);
然后,您可以通过bn_val
和bn
到BN_mul
。