SM2算法第二十八篇:Openssl有关大数运算函数介绍(全面)

Openssl有关大数运算函数介绍(全面)
摘要由CSDN通过智能技术生成

1.初始化函数

 

BIGNUM *BN_new(void);    新生成一个BIGNUM结构

 

void BN_free(BIGNUM *a);   释放一个BIGNUM结构,释放完后a=NULL;

 

void BN_init(BIGNUM *);    初始化所有项均为0,一般为BN_ init(&c)

 

void BN_clear(BIGNUM *a);  将a中所有项均赋值为0,但是内存并没有释放

 

void BN_clear_free(BIGNUM *a); 相当与将BN_free和BN_clear综合,要不就赋值0,要不就释放空间。

 

2.上下文情景函数,存储计算中的中间过程

BN_CTX *BN_CTX_new(void);申请一个新的上下文结构

 

void BN_CTX_init(BN_CTX *c);将所有的项赋值为0,一般BN_CTX_init(&c)

 

  void BN_CTX_free(BN_CTX *c);释放上下文结构,释放完后c=NULL;

 

3.复制以及交换函数

  BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b);将b复制给a,正确返回a,错误返回NULL

 

  BIGNUM *BN_dup(const BIGNUM *a);新建一个BIGNUM结构,将a复制给新建结构返回,错误返回NULL

 

  BIGNUM *BN_swap(BIGNUM *a, BIGNUM *b);交换a,b

 

4.取位函数

 

 int BN_num_bytes(const BIGNUM *a);返回a的位数,大量使用

 

 int BN_num_bits(const BIGNUM *a);

 

 int BN_num_bits_word(BN_ULONG w);他返回有意义比特的位数,例如0x00000432 为11。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值