ecurve_sub

extern int  ecurve_sub(_MIPT_ epoint *,epoint *);

函数功能:减法运算。

参数_MIPD_:可能为空,非空为miracl *类型。

参数pepoint类型数据。

参数paepoint类型数据。

1. 源码分析

int ecurve_sub(_MIPD_ epoint *p,epoint *pa)
{
    int r;
#ifdef MR_OS_THREADS
    miracl *mr_mip=get_mip();
#endif
    if (mr_mip->ERNUM) return MR_OVER;

    MR_IN(104)

    if (p==pa)
    {
        epoint_set(_MIPP_ NULL,NULL,0,pa);
        MR_OUT
        return MR_OVER;
    } 
    if (p->marker==MR_EPOINT_INFINITY) 
    {
        MR_OUT
        return MR_ADD;
    }

    epoint_negate(_MIPP_ p); // 更新坐标
    r=ecurve_add(_MIPP_ p,pa); // pa=pa+p
    epoint_negate(_MIPP_ p);

    MR_OUT
    return r;
}

ecurve_add完成椭圆曲线上的两个点相加,pa=pa+p

epoint_negate做两个数的减法运算,更新p的坐标。

© phdlisl all right reserved,powered by GitbookUpdate in 2025-10-11

results matching ""

    No results matching ""