存储OpenSSL BIGNUM操作结果

存储OpenSSL BIGNUM操作结果,openssl,bignum,Openssl,Bignum,BIGNUMs上的OpenSSL函数将存储结果的变量作为第一个参数,如 int BN_add(BIGNUM*r,const BIGNUM*a,const BIGNUM*b),它计算r=a+b; 在下面的语句中使用a安全吗,还是应该声明一个新变量来保存结果 BN_add(a, a, b); 它是安全的,您可以在crypto/bn/bntest.c中查找示例。在那里您可以找到如下代码: BN_add(&c, &c, &b); BN_sub(&c, &

BIGNUM
s上的OpenSSL函数将存储结果的变量作为第一个参数,如
int BN_add(BIGNUM*r,const BIGNUM*a,const BIGNUM*b)
,它计算
r=a+b
; 在下面的语句中使用
a
安全吗,还是应该声明一个新变量来保存结果

BN_add(a, a, b);

它是安全的,您可以在
crypto/bn/bntest.c
中查找示例。在那里您可以找到如下代码:

    BN_add(&c, &c, &b);
    BN_sub(&c, &c, &a);
此外,根据:

BN_add()将a和b相加,并将结果放入r(r=a+b)。r可能是 与a或b相同的BIGNUM