comparison gendss.c @ 118:5312ca05ed48 private-rez

propagate of 717950f4061f1123659ee87c7c168805af920ab7 and 839f98f136788cc1466e4641bf796f96040a085d from branch 'matt.dbclient.authpam' to 'matt.dbclient.rez'
author Matt Johnston <matt@ucc.asn.au>
date Sun, 12 Sep 2004 04:56:50 +0000
parents 6571b480fa04
children c9483550701b
comparison
equal deleted inserted replaced
57:3b2a5a1c4347 118:5312ca05ed48
29 #include "random.h" 29 #include "random.h"
30 #include "buffer.h" 30 #include "buffer.h"
31 #include "gendss.h" 31 #include "gendss.h"
32 #include "dss.h" 32 #include "dss.h"
33 33
34 #define PSIZE 128 /* 1024 bit*/
35 #define QSIZE 20 /* 160 bit */ 34 #define QSIZE 20 /* 160 bit */
35
36 /* This is just a test */
36 37
37 #ifdef DROPBEAR_DSS 38 #ifdef DROPBEAR_DSS
38 39
39 static void getq(dss_key *key); 40 static void getq(dss_key *key);
40 static void getp(dss_key *key, unsigned int size); 41 static void getp(dss_key *key, unsigned int size);
88 } 89 }
89 } 90 }
90 91
91 static void getp(dss_key *key, unsigned int size) { 92 static void getp(dss_key *key, unsigned int size) {
92 93
93 mp_int tempX, tempC, tempP, temp2q; 94 DEF_MP_INT(tempX);
95 DEF_MP_INT(tempC);
96 DEF_MP_INT(tempP);
97 DEF_MP_INT(temp2q);
94 int result; 98 int result;
95 unsigned char *buf; 99 unsigned char *buf;
96 100
97 m_mp_init_multi(&tempX, &tempC, &tempP, &temp2q, NULL); 101 m_mp_init_multi(&tempX, &tempC, &tempP, &temp2q, NULL);
98 102
146 m_free(buf); 150 m_free(buf);
147 } 151 }
148 152
149 static void getg(dss_key * key) { 153 static void getg(dss_key * key) {
150 154
151 char printbuf[1000]; 155 DEF_MP_INT(div);
152 mp_int div, h, val; 156 DEF_MP_INT(h);
157 DEF_MP_INT(val);
153 158
154 m_mp_init_multi(&div, &h, &val, NULL); 159 m_mp_init_multi(&div, &h, &val, NULL);
155 160
156 /* get div=(p-1)/q */ 161 /* get div=(p-1)/q */
157 if (mp_sub_d(key->p, 1, &val) != MP_OKAY) { 162 if (mp_sub_d(key->p, 1, &val) != MP_OKAY) {
177 exit(1); 182 exit(1);
178 } 183 }
179 184
180 } while (mp_cmp_d(key->g, 1) != MP_GT); 185 } while (mp_cmp_d(key->g, 1) != MP_GT);
181 186
182 mp_toradix(key->g, printbuf, 10);
183
184 mp_clear_multi(&div, &h, &val, NULL); 187 mp_clear_multi(&div, &h, &val, NULL);
185 } 188 }
186 189
187 static void getx(dss_key *key) { 190 static void getx(dss_key *key) {
188 191
189 mp_int val; 192 DEF_MP_INT(val);
190 char buf[QSIZE]; 193 char buf[QSIZE];
191 194
192 m_mp_init(&val); 195 m_mp_init(&val);
193 196
194 do { 197 do {