generic.c (95633) | generic.c (189092) |
---|---|
1/* 2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 3 * unrestricted use provided that this legend is included on all tape 4 * media and as a part of the software program in whole or part. Users 5 * may copy or modify Sun RPC without charge, but are not authorized 6 * to license or distribute it to anyone else except as part of a product or 7 * program developed by the user or with the express written consent of 8 * Sun Microsystems, Inc. --- 25 unchanged lines hidden (view full) --- 34#endif 35#endif 36 37/* 38 * Copyright (C) 1986, Sun Microsystems, Inc. 39 */ 40 41#include <sys/cdefs.h> | 1/* 2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 3 * unrestricted use provided that this legend is included on all tape 4 * media and as a part of the software program in whole or part. Users 5 * may copy or modify Sun RPC without charge, but are not authorized 6 * to license or distribute it to anyone else except as part of a product or 7 * program developed by the user or with the express written consent of 8 * Sun Microsystems, Inc. --- 25 unchanged lines hidden (view full) --- 34#endif 35#endif 36 37/* 38 * Copyright (C) 1986, Sun Microsystems, Inc. 39 */ 40 41#include <sys/cdefs.h> |
42__FBSDID("$FreeBSD: head/usr.bin/newkey/generic.c 95633 2002-04-28 12:09:33Z markm $"); | 42__FBSDID("$FreeBSD: head/usr.bin/newkey/generic.c 189092 2009-02-26 21:43:15Z ed $"); |
43 44#include <sys/file.h> 45 46#include <rpc/rpc.h> 47#include <rpc/key_prot.h> 48 49#include <mp.h> 50#include <stdio.h> --- 23 unchanged lines hidden (view full) --- 74void 75genkeys(char *public, char *secret, char *pass) 76{ 77 unsigned int i; 78 79# define BASEBITS (8*sizeof (short) - 1) 80# define BASE (1 << BASEBITS) 81 | 43 44#include <sys/file.h> 45 46#include <rpc/rpc.h> 47#include <rpc/key_prot.h> 48 49#include <mp.h> 50#include <stdio.h> --- 23 unchanged lines hidden (view full) --- 74void 75genkeys(char *public, char *secret, char *pass) 76{ 77 unsigned int i; 78 79# define BASEBITS (8*sizeof (short) - 1) 80# define BASE (1 << BASEBITS) 81 |
82 MINT *pk = itom(0); 83 MINT *sk = itom(0); | 82 MINT *pk = mp_itom(0); 83 MINT *sk = mp_itom(0); |
84 MINT *tmp; | 84 MINT *tmp; |
85 MINT *base = itom(BASE); 86 MINT *root = itom(PROOT); 87 MINT *modulus = xtom(HEXMODULUS); | 85 MINT *base = mp_itom(BASE); 86 MINT *root = mp_itom(PROOT); 87 MINT *modulus = mp_xtom(HEXMODULUS); |
88 short r; 89 unsigned short seed[KEYSIZE/BASEBITS + 1]; 90 char *xkey; 91 92 getseed((char *)seed, sizeof (seed), (u_char *)pass); 93 for (i = 0; i < KEYSIZE/BASEBITS + 1; i++) { 94 r = seed[i] % BASE; | 88 short r; 89 unsigned short seed[KEYSIZE/BASEBITS + 1]; 90 char *xkey; 91 92 getseed((char *)seed, sizeof (seed), (u_char *)pass); 93 for (i = 0; i < KEYSIZE/BASEBITS + 1; i++) { 94 r = seed[i] % BASE; |
95 tmp = itom(r); 96 mult(sk, base, sk); 97 madd(sk, tmp, sk); 98 mfree(tmp); | 95 tmp = mp_itom(r); 96 mp_mult(sk, base, sk); 97 mp_madd(sk, tmp, sk); 98 mp_mfree(tmp); |
99 } | 99 } |
100 tmp = itom(0); 101 mdiv(sk, modulus, tmp, sk); 102 mfree(tmp); 103 pow(root, sk, modulus, pk); 104 xkey = mtox(sk); | 100 tmp = mp_itom(0); 101 mp_mdiv(sk, modulus, tmp, sk); 102 mp_mfree(tmp); 103 mp_pow(root, sk, modulus, pk); 104 xkey = mp_mtox(sk); |
105 adjust(secret, xkey); | 105 adjust(secret, xkey); |
106 xkey = mtox(pk); | 106 xkey = mp_mtox(pk); |
107 adjust(public, xkey); | 107 adjust(public, xkey); |
108 mfree(sk); 109 mfree(base); 110 mfree(pk); 111 mfree(root); 112 mfree(modulus); | 108 mp_mfree(sk); 109 mp_mfree(base); 110 mp_mfree(pk); 111 mp_mfree(root); 112 mp_mfree(modulus); |
113} 114 115/* 116 * Adjust the input key so that it is 0-filled on the left 117 */ 118static void 119adjust(char keyout[HEXKEYBYTES+1], char *keyin) 120{ --- 12 unchanged lines hidden --- | 113} 114 115/* 116 * Adjust the input key so that it is 0-filled on the left 117 */ 118static void 119adjust(char keyout[HEXKEYBYTES+1], char *keyin) 120{ --- 12 unchanged lines hidden --- |