Lines Matching defs:dhg
54 parse_prime(int linenum, char *line, struct dhgroup *dhg)
61 dhg->p = dhg->g = NULL;
103 (dhg->size = (int)strtonum(strsize, 0, 64*1024, &errstr)) == 0 ||
109 dhg->size++;
120 if ((dhg->g = BN_new()) == NULL ||
121 (dhg->p = BN_new()) == NULL) {
125 if (BN_hex2bn(&dhg->g, gen) == 0) {
129 if (BN_hex2bn(&dhg->p, prime) == 0) {
133 if (BN_num_bits(dhg->p) != dhg->size) {
135 linenum, BN_num_bits(dhg->p), dhg->size - 1);
138 if (BN_cmp(dhg->g, BN_value_one()) <= 0) {
145 BN_clear_free(dhg->g);
146 BN_clear_free(dhg->p);
147 dhg->g = dhg->p = NULL;
158 struct dhgroup dhg;
170 if (!parse_prime(linenum, line, &dhg))
172 BN_clear_free(dhg.g);
173 BN_clear_free(dhg.p);
175 if (dhg.size > max || dhg.size < min)
178 if ((dhg.size > wantbits && dhg.size < best) ||
179 (dhg.size > best && best < wantbits)) {
180 best = dhg.size;
183 if (dhg.size == best)
203 if (!parse_prime(linenum, line, &dhg))
205 if ((dhg.size > max || dhg.size < min) ||
206 dhg.size != best ||
208 BN_clear_free(dhg.g);
209 BN_clear_free(dhg.p);
223 return (dh_new_group(dhg.g, dhg.p));