static int int_dh_param_copy(DH *to, const DH *from, int is_x942) { if (is_x942 == -1) is_x942 = ! !from->q; if (!int_dh_bn_cpy(&to->p, from->p)) return 0; if (!int_dh_bn_cpy(&to->g, from->g)) return 0; if (is_x942) { if (!int_dh_bn_cpy(&to->q, from->q)) return 0; if (!int_dh_bn_cpy(&to->j, from->j)) return 0; if (to->seed) { OPENSSL_free(to->seed); to->seed = NULL; to->seedlen = 0; } if (from->seed) { to->seed = BUF_memdup(from->seed, from->seedlen); if (!to->seed) return 0; to->seedlen = from->seedlen; } } else to->length = from->length; return 1; }
static int int_dh_param_copy(DH *to, const DH *from, int is_x942) { if (is_x942 == -1) { is_x942 = !!from->q; } if (!int_dh_bn_cpy(&to->p, from->p) || !int_dh_bn_cpy(&to->g, from->g)) { return 0; } if (!is_x942) { return 1; } if (!int_dh_bn_cpy(&to->q, from->q) || !int_dh_bn_cpy(&to->j, from->j)) { return 0; } OPENSSL_free(to->seed); to->seed = NULL; to->seedlen = 0; if (from->seed) { to->seed = BUF_memdup(from->seed, from->seedlen); if (!to->seed) { return 0; } to->seedlen = from->seedlen; } return 1; }