将BigNum与纯整数相乘

时间:2019-02-03 19:38:22

标签: c openssl bignum

我具有以下功能:

BIGNUM * multiplyWithInt(BIGNUM *bn, int val){
  //Logic Here
}

我想做的是计算乘法bn*val。对于根据文档的乘法(从命令man bn给定)如下:

int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx);

如您所见,我需要以某种方式将整数val转换为openssl的BIGNUM。我该怎么做?一种方法是将其转换为unsigned char *字节数组,并使用BN_bin2bn函数,但这会给我所需的功能吗?

1 个答案:

答案 0 :(得分:1)

您要寻找的功能是BN_set_word。这样会将unsigned long的值分配给BIGNUM

BIGNUM *bn_val = BN_new();
BN_set_word(bn_val , val);

然后您可以将bn_valbn传递到BN_mul