home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 1210.KEYGEN.H < prev    next >
Text File  |  1991-05-25  |  1KB  |  40 lines

  1. /*    keygen.h - C include file for RSA key generation routines
  2.  
  3.     (c) Copyright 1986 by Philip Zimmermann.  All rights reserved.
  4.     The author assumes no liability for damages resulting from the use 
  5.     of this software, even if the damage results from defects in this 
  6.     software.  No warranty is expressed or implied.  
  7.  
  8.     NOTE:  This assumes previous inclusion of "rsalib.h"
  9. */
  10.  
  11. extern word16 primetable[]; /* table of small primes, zero-terminated.*/
  12.  
  13. boolean primetest(unitptr p);
  14.     /* Returns TRUE iff p is a prime. */
  15.  
  16. int nextprime(unitptr p);
  17.     /* Find next higher prime starting at p, returning result in p. */
  18.  
  19. void randombits(unitptr p,short nbits);
  20.     /* Make a random unit array p with nbits of precision. */
  21.  
  22. int randomprime(unitptr p,short nbits);
  23.     /* Makes a "random" prime p with nbits significant bits of precision. */
  24.  
  25. void gcd(unitptr result,unitptr a,unitptr n);
  26.     /* Computes greatest common divisor via Euclid's algorithm. */
  27.  
  28. void inv(unitptr x,unitptr a,unitptr n);
  29.     /* Euclid's algorithm extended to compute multiplicative inverse.
  30.        Computes x such that a*x mod n = 1, where 0<a<n */
  31.  
  32. void derivekeys(unitptr n,unitptr e,unitptr d,
  33.     unitptr p,unitptr q,unitptr u,short ebits);
  34.     /* Given primes p and q, derive key components n, e, d, and u. */
  35.  
  36. int keygen(unitptr n,unitptr e,unitptr d,
  37.     unitptr p,unitptr q,unitptr u,short keybits,short ebits);
  38.     /* Generate key components p, q, n, e, d, and u. */
  39.  
  40.