将 BigNum 与普通整数相乘
Multiply a BigNum with an plain integer
我有以下功能:
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
函数,但这会给我所需的功能吗?
您要找的函数是BN_set_word
。这会将 unsigned long
值分配给 BIGNUM
.
BIGNUM *bn_val = BN_new();
BN_set_word(bn_val , val);
然后您可以将 bn_val
和 bn
传递给 BN_mul
。
我有以下功能:
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
函数,但这会给我所需的功能吗?
您要找的函数是BN_set_word
。这会将 unsigned long
值分配给 BIGNUM
.
BIGNUM *bn_val = BN_new();
BN_set_word(bn_val , val);
然后您可以将 bn_val
和 bn
传递给 BN_mul
。