ошибка LNK2001: неразрешенный внешний символ _H_get0_pqg при использовании Shining Light Productions - PullRequest
0 голосов
/ 09 июля 2019

Я использую openssl Shining Light Productions !. Я правильно настроил свой проект, и мой код можно скомпилировать. когда я добавляю другой код строки:

H_get0_pqg(dh1,&p,&q,&g);

Не соблюдается и выдает ошибку:

1> ------ Начата сборка: Проект: dh, Конфигурация: Выпуск Win32 ------ 1> Создание библиотеки F: \ Using_OpenSSL \ Release \ dh.lib и объекта F: \ Using_OpenSSL \ Release \ dh.exp 1> dh.obj: ошибка LNK2001: неразрешенный внешний символ _H_get0_pqg 1> F: \ Using_OpenSSL \ Release \ dh.exe: фатальная ошибка LNK1120: 1 неразрешенный внешний код ========== Построение: 0 выполнено, 1 не выполнено, 0 обновлено, 0 пропущено ==========

Я пытаюсь каким-то способом, например, добавить новый файл lib, но все не удалось.

ошибка LNK2001: неразрешенный внешний символ _H_get0_pqg

Код все в моей программе ниже:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<openssl\dh.h>
#include<openssl\applink.c>

int main()
{
    DH *dh1, *dh2;

    dh1 = DH_new(); 
    dh2 = DH_new();

    int ret;
    ret = DH_generate_parameters_ex(dh1, 128, DH_GENERATOR_2, NULL);

    printf("generating DH param success!...\n");

    DHparams_print_fp(stdout, dh1); 

    if (ret != 1)
    {
        printf("generating DH param failed!\n");
        goto lab1;
    }

    int err_code;
    ret = DH_check(dh1, &err_code);

    if (ret != 1)
    {
        if (err_code & DH_CHECK_P_NOT_PRIME)
            printf("p is not prime!\n");

        if (err_code & DH_CHECK_P_NOT_SAFE_PRIME)
            printf("p is not safe prime!\n");

        if (err_code & DH_UNABLE_TO_CHECK_GENERATOR)
            printf("is not checking generator's value!\n");

        if (err_code & DH_NOT_SUITABLE_GENERATOR)
            printf("is not generator!\n");

        goto lab1;
    }

    printf("DH param checking...\n");

    int param_len;
    param_len = DH_size(dh1);
    printf("DH param size(byte) %d\n", param_len);
    printf("DH param size(bit) %d\n", DH_bits(dh1));

    ret = DH_generate_key(dh1);
    if (ret != 1) 
    {
        printf("DH_generate_key error!\n");

        goto lab1;
    }

    DHparams_print_fp(stdout, dh1); 

    BIGNUM *p = BN_new();
    BIGNUM *q = BN_new();
    BIGNUM *g = BN_new();

    H_get0_pqg(dh1,&p,&q,&g); 

    DHparams_print_fp(stdout, dh2); 

    BN_free(p);
    BN_free(q);
    BN_free(g);
lab1:
    DH_free(dh1); 
    DH_free(dh2);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...