Встроенные (внешние) простые числа для групп RFC3526 и RFC2409, для этой страницы руководства (также должны быть в вашей системе под этими именами, если 1.1.0+) -- они фактически находятся в коде до версии 1.0.0, но без префикса BN_
(хотя и в заголовке bn.h
) и ранее недокументированы.(В 1.1.0+ старые имена дополнительно # define'd, если установлена совместимость.)
AFAICS, вы должны добавить генератор самостоятельно, что-то вроде:
DH *dh = DH_new(); BIGNUM *two = BN_new();
if( !dh || !two ) /* error */;
BN_set_word(two,2);
// corrected AGAIN!
DH_set0_pqg (dh, BN_dup(BN_get_rfc3526_prime_2048(NULL)), NULL, two);
// added: below 1.1.0 many API structs were not opaque, just
dh->p = BN_dup(/*not BN_*/ get_rfc3526_prime_2048(NULL));
dh->g = two;
// leave q as unspecified
Примечание RFC5114 modpпараметры доступны предварительно в форме DH*
, но только в версии 1.1.0+.