[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.12.2.2 and 1.13

version 1.12.2.2, 2006/11/08 00:44:05 version 1.13, 2006/03/25 00:05:41
Line 37 
Line 37 
  * Second step: test primes' safety (processor intensive)   * Second step: test primes' safety (processor intensive)
  */   */
   
 #include <sys/types.h>  #include "includes.h"
   
 #include <openssl/bn.h>  
   
 #include <stdio.h>  
 #include <stdlib.h>  
 #include <string.h>  
 #include <stdarg.h>  
 #include <time.h>  
   
 #include "xmalloc.h"  #include "xmalloc.h"
 #include "log.h"  #include "log.h"
   
   #include <openssl/bn.h>
   
 /*  /*
  * File output defines   * File output defines
  */   */
Line 325 
Line 318 
   
         /* validation check: count the number of primes tried */          /* validation check: count the number of primes tried */
         largetries = 0;          largetries = 0;
         if ((q = BN_new()) == NULL)          q = BN_new();
                 fatal("BN_new failed");  
   
         /*          /*
          * Generate random starting point for subprime search, or use           * Generate random starting point for subprime search, or use
          * specified parameter.           * specified parameter.
          */           */
         if ((largebase = BN_new()) == NULL)          largebase = BN_new();
                 fatal("BN_new failed");          if (start == NULL)
         if (start == NULL) {                  BN_rand(largebase, power, 1, 1);
                 if (BN_rand(largebase, power, 1, 1) == 0)          else
                         fatal("BN_rand failed");                  BN_copy(largebase, start);
         } else {  
                 if (BN_copy(largebase, start) == NULL)  
                         fatal("BN_copy: failed");  
         }  
   
         /* ensure odd */          /* ensure odd */
         if (BN_set_bit(largebase, 0) == 0)          BN_set_bit(largebase, 0);
                 fatal("BN_set_bit: failed");  
   
         time(&time_start);          time(&time_start);
   
Line 428 
Line 415 
                         continue; /* Definitely composite, skip */                          continue; /* Definitely composite, skip */
   
                 debug2("test q = largebase+%u", 2 * j);                  debug2("test q = largebase+%u", 2 * j);
                 if (BN_set_word(q, 2 * j) == 0)                  BN_set_word(q, 2 * j);
                         fatal("BN_set_word failed");                  BN_add(q, q, largebase);
                 if (BN_add(q, q, largebase) == 0)  
                         fatal("BN_add failed");  
                 if (qfileout(out, QTYPE_SOPHIE_GERMAIN, QTEST_SIEVE,                  if (qfileout(out, QTYPE_SOPHIE_GERMAIN, QTEST_SIEVE,
                     largetries, (power - 1) /* MSB */, (0), q) == -1) {                      largetries, (power - 1) /* MSB */, (0), q) == -1) {
                         ret = -1;                          ret = -1;
Line 476 
Line 461 
   
         time(&time_start);          time(&time_start);
   
         if ((p = BN_new()) == NULL)          p = BN_new();
                 fatal("BN_new failed");          q = BN_new();
         if ((q = BN_new()) == NULL)          ctx = BN_CTX_new();
                 fatal("BN_new failed");  
         if ((ctx = BN_CTX_new()) == NULL)  
                 fatal("BN_CTX_new failed");  
   
         debug2("%.24s Final %u Miller-Rabin trials (%x generator)",          debug2("%.24s Final %u Miller-Rabin trials (%x generator)",
             ctime(&time_start), trials, generator_wanted);              ctime(&time_start), trials, generator_wanted);
Line 529 
Line 511 
                 case QTYPE_SOPHIE_GERMAIN:                  case QTYPE_SOPHIE_GERMAIN:
                         debug2("%10u: (%u) Sophie-Germain", count_in, in_type);                          debug2("%10u: (%u) Sophie-Germain", count_in, in_type);
                         a = q;                          a = q;
                         if (BN_hex2bn(&a, cp) == 0)                          BN_hex2bn(&a, cp);
                                 fatal("BN_hex2bn failed");  
                         /* p = 2*q + 1 */                          /* p = 2*q + 1 */
                         if (BN_lshift(p, q, 1) == 0)                          BN_lshift(p, q, 1);
                                 fatal("BN_lshift failed");                          BN_add_word(p, 1);
                         if (BN_add_word(p, 1) == 0)  
                                 fatal("BN_add_word failed");  
                         in_size += 1;                          in_size += 1;
                         generator_known = 0;                          generator_known = 0;
                         break;                          break;
Line 546 
Line 525 
                 case QTYPE_UNKNOWN:                  case QTYPE_UNKNOWN:
                         debug2("%10u: (%u)", count_in, in_type);                          debug2("%10u: (%u)", count_in, in_type);
                         a = p;                          a = p;
                         if (BN_hex2bn(&a, cp) == 0)                          BN_hex2bn(&a, cp);
                                 fatal("BN_hex2bn failed");  
                         /* q = (p-1) / 2 */                          /* q = (p-1) / 2 */
                         if (BN_rshift(q, p, 1) == 0)                          BN_rshift(q, p, 1);
                                 fatal("BN_rshift failed");  
                         break;                          break;
                 default:                  default:
                         debug2("Unknown prime type");                          debug2("Unknown prime type");

Legend:
Removed from v.1.12.2.2  
changed lines
  Added in v.1.13