Example #1
0
def mult_prod_str(
    G, key, elements
):  #not actually used in commit_str, but could be potentially useful. Be careful that it was potentially causing segmentation fault.
    #G,key=ck
    bvec = _FFI.new("EC_POINT * []", len(elements))
    for i in xrange(len(elements)):
        bvec[i] = key[i].pt
    evec = _FFI.new("BIGNUM * []", len(elements))
    for i in xrange(len(elements)):
        evec[i] = Bn.from_decimal(str(elements[i])).bn
    comm = EcPt(G)
    _C.EC_POINTs_mul(G.ecg, comm.pt, _FFI.NULL, len(elements), bvec, evec,
                     _FFI.NULL)

    return comm
Example #2
0
def mult_prod(G, key, elements):
    #G,key=ck

    bvec = _FFI.new("EC_POINT * []", len(elements))
    for i in xrange(len(elements)):
        bvec[i] = key[i].pt
    evec = _FFI.new("BIGNUM * []", len(elements))
    for i in xrange(len(elements)):
        try:
            evec[i] = elements[i].bn
        except AttributeError:
            #does this even work properly?
            evec[i] = Bn(elements[i]).bn

    comm = EcPt(G)
    _C.EC_POINTs_mul(G.ecg, comm.pt, _FFI.NULL, len(elements), bvec, evec,
                     _FFI.NULL)
    return comm