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

version» Context lines:

pike.git/lib/modules/Crypto.pmod/DSA.pmod:165:    }    }    }   }      protected Gmp.mpz find_generator(Gmp.mpz p, Gmp.mpz q)   {    Gmp.mpz e = [object(Gmp.mpz)]((p - 1) / q);    Gmp.mpz g;    -  do -  { +  do {    /* A random number in { 2, 3, ... p - 2 } */    g = ([object(Gmp.mpz)](random_number( [object(Gmp.mpz)](p-3) ) + 2))    /* Exponentiate to get an element of order 1 or q */    ->powm(e, p); -  } -  while (g == 1); +  } while (g == 1);       return g;   }      // Generate key parameters (p, q and g) using the NIST DSA prime pair   // generation algorithm. @[bits] must be multiple of 64.   protected void generate_parameters(int bits)   {    if (!bits || bits % 64)    error( "Unsupported key size.\n" );
pike.git/lib/modules/Crypto.pmod/DSA.pmod:336:      //! Makes a DSA hash of the messge @[msg].   Gmp.mpz hash(string(8bit) msg, .Hash h)   {    string(8bit) digest = h->hash(msg)[..q->size()/8-1];    return [object(Gmp.mpz)](Gmp.mpz(digest, 256) % q);   }      protected Gmp.mpz random_number(Gmp.mpz n)   { -  return [object(Gmp.mpz)](Gmp.mpz(random( [int(0..)](q->size() + 10 / 8)), 256) % n); +  return [object(Gmp.mpz)](Gmp.mpz(random( [int(0..)](q->size() + 10 / 8)), +  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)