pike.git / lib / modules / Crypto.pmod / DSA.pmod

version» Context lines:

pike.git/lib/modules/Crypto.pmod/DSA.pmod:390:       Gmp.mpz r = [object(Gmp.mpz)](g->powm(k, p) % q);    Gmp.mpz s = [object(Gmp.mpz)]((k->invert(q) * (h + [object(Gmp.mpz)](x*r))) % q);       return ({ r, s });    }       //! Verify the signature @[r],@[s] against the message @[h].    int(0..1) raw_verify(Gmp.mpz h, Gmp.mpz r, Gmp.mpz s)    { -  Gmp.mpz w; +  object(Gmp.mpz)|zero w;    if (catch    {    w = s->invert(q);    })    /* Non-invertible */    return 0;       /* The inner %q's are redundant, as g^q == y^q == 1 (mod p) */    return r == (g->powm( [object(Gmp.mpz)](w * h % q), p) *    y->powm( [object(Gmp.mpz)](w * r % q), p) % p) % q;