Как получить открытый ключ из структуры DH

83
14 июня 2021, 01:40

Пытаюсь испробовать в действии алгоритм Диффи-Хеллмана. Взял код отсюда:

DH *privkey;
int codes;
int secret_size;
/* Generate the parameters to be used */
if(NULL == (privkey = DH_new())) handleErrors();
if(1 != DH_generate_parameters_ex(privkey, 2048, DH_GENERATOR_2, NULL)) handleErrors();
if(1 != DH_check(privkey, &codes)) handleErrors();
if(codes != 0)
{
    /* Problems have been found with the generated parameters */
    /* Handle these here - we'll just abort for this example */
    printf("DH_check failed\n");
    abort();
}
/* Generate the public and private key pair */
if(1 != DH_generate_key(privkey)) handleErrors();

Далее написано "отправьте открытый ключ второму участнику обмена". Но при попытке получить privkey->pub_key Visual Studio выдаёт "использование указателя на тип неполного класса не допускается".

Вопрос: как мне "вытащить" открытый ключ из структуры DH?

Answer 1

Открытый ключ можно получить следующим образом:

const BIGNUM * pubKey = BN_new();
DH_get0_key(privkey, &pubKey, nullptr);

Если вместо nullptr подставить ещё один указатель, подобный pubKey, по этому адресу будет записано значение закрытого ключа.

READ ALSO
c++ lambda expression пр компиляции

c++ lambda expression пр компиляции

Во многих гуидах написано, что лямбда выражения в с++ это всего лишь синтаксический сахар для анонимных функторовНо при обработке, скажем,...

107
jquery keypress не видит 1 символ

jquery keypress не видит 1 символ

Подскажите, почему выводит -1 символ?

77
Делегирование событий

Делегирование событий

у меня есть несколько элементов, события на которые нужно обрабатывать похожим образом, как поставить единый обработчик на их общего предкаТ

86