mr_esize_a()
mr_esize_a定义在miracl.h
#define mr_esize_a(n) (((sizeof(epoint)+mr_big_reserve(2,(n)))-1)/MR_SL+1)*MR_SL
函数功能:返回字节数。计算得到的字节数 ((sizeof(epoint)+mr_big_reserve)-1)/sizeof(long)+1)*sizeof(long)
参数n:整数。
1. 源码分析
与实现mr_esize_a相关的定义和函数如下。
/* Elliptic Curve epoint structure. Uses projective (X,Y,Z) co-ordinates */
typedef struct {
int marker;
big X;
big Y;
#ifndef MR_AFFINE_ONLY
big Z;
#endif
} epoint;
#ifdef MR_FP
typedef mr_utype mr_small;
#ifdef mr_dltype
typedef mr_dltype mr_large;
#endif
struct bigtype{
mr_lentype len;
mr_small *w;
};
#define MR_SL sizeof(long)
mr_big_reserve计算得到(n)*mr_size(m)+sizeof(long)个字节。