Lines Matching defs:dhg
49 parse_prime(int linenum, char *line, struct dhgroup *dhg)
56 dhg->p = dhg->g = NULL;
98 (dhg->size = (int)strtonum(strsize, 0, 64*1024, &errstr)) == 0 ||
104 dhg->size++;
115 if ((dhg->g = BN_new()) == NULL ||
116 (dhg->p = BN_new()) == NULL) {
120 if (BN_hex2bn(&dhg->g, gen) == 0) {
124 if (BN_hex2bn(&dhg->p, prime) == 0) {
128 if (BN_num_bits(dhg->p) != dhg->size) {
130 linenum, BN_num_bits(dhg->p), dhg->size - 1);
133 if (BN_cmp(dhg->g, BN_value_one()) <= 0) {
140 BN_clear_free(dhg->g);
141 BN_clear_free(dhg->p);
142 dhg->g = dhg->p = NULL;
153 struct dhgroup dhg;
165 if (!parse_prime(linenum, line, &dhg))
167 BN_clear_free(dhg.g);
168 BN_clear_free(dhg.p);
170 if (dhg.size > max || dhg.size < min)
173 if ((dhg.size > wantbits && dhg.size < best) ||
174 (dhg.size > best && best < wantbits)) {
175 best = dhg.size;
178 if (dhg.size == best)
197 if (!parse_prime(linenum, line, &dhg))
199 if ((dhg.size > max || dhg.size < min) ||
200 dhg.size != best ||
202 BN_clear_free(dhg.g);
203 BN_clear_free(dhg.p);
217 return (dh_new_group(dhg.g, dhg.p));