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

version» Context lines:

pike.git/lib/modules/Crypto.pmod/DSA.pmod:377:    256) % n);    }       protected Gmp.mpz random_exponent()    {    return [object(Gmp.mpz)](random_number([object(Gmp.mpz)](q - 1)) + 1);    }       //! Sign the message @[h]. Returns the signature as two @[Gmp.mpz]    //! objects. -  array(Gmp.mpz) raw_sign(Gmp.mpz h, void|Gmp.mpz k) +  array(Gmp.mpz) raw_sign(Gmp.mpz h, Gmp.mpz k = random_exponent())    { -  if(!k) k = random_exponent(); -  +     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)    {    if ((r > q) || (s > q)) {