[BACK]Return to moduli.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/moduli.c between version 1.37 and 1.38

version 1.37, 2019/11/15 06:00:20 version 1.38, 2022/05/01 23:20:30
Line 178 
Line 178 
  ** Sieve p's and q's with small factors   ** Sieve p's and q's with small factors
  */   */
 static void  static void
 sieve_large(u_int32_t s)  sieve_large(u_int32_t s32)
 {  {
         u_int32_t r, u;          u_int64_t r, u, s = s32;
   
         debug3("sieve_large %u", s);          debug3("sieve_large %u", s32);
         largetries++;          largetries++;
         /* r = largebase mod s */          /* r = largebase mod s */
         r = BN_mod_word(largebase, s);          r = BN_mod_word(largebase, s32);
         if (r == 0)          if (r == 0)
                 u = 0; /* s divides into largebase exactly */                  u = 0; /* s divides into largebase exactly */
         else          else
                 u = s - r; /* largebase+u is first entry divisible by s */                  u = s - r; /* largebase+u is first entry divisible by s */
   
         if (u < largebits * 2) {          if (u < largebits * 2ULL) {
                 /*                  /*
                  * The sieve omits p's and q's divisible by 2, so ensure that                   * The sieve omits p's and q's divisible by 2, so ensure that
                  * largebase+u is odd. Then, step through the sieve in                   * largebase+u is odd. Then, step through the sieve in
Line 212 
Line 212 
         else          else
                 u = s - r; /* p+u is first entry divisible by s */                  u = s - r; /* p+u is first entry divisible by s */
   
         if (u < largebits * 4) {          if (u < largebits * 4ULL) {
                 /*                  /*
                  * The sieve omits p's divisible by 4, so ensure that                   * The sieve omits p's divisible by 4, so ensure that
                  * largebase+u is not. Then, step through the sieve in                   * largebase+u is not. Then, step through the sieve in

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38