LINUX.ORG.RU

Bitrad.io при компиляции dereferencing pointer to incomplete type «ECDSA_SIG {aka struct ECDSA_SIG_st}»

 , ,


0

1

в общем имеется арч,libsecp256k1, libgmp, Boost1.57, Openssl1.0.1p, Berkeley DB 4.8, QT5

необходимо собрать сие чудо

при компиляции выдает ошибку (указывает на ->):

src/tests.c: В функции «test_ecdsa_der_parse»:
src/tests.c:3561:52: ошибка: dereferencing pointer to incomplete type «ECDSA_SIG {aka struct ECDSA_SIG_st}»
         valid_openssl = !BN_is_negative(sig_openssl->r) && !BN_is_negative(sig_openssl->s) && BN_num_bits(sig_openssl->r) > 0 && BN_num_bits(sig_openssl->r) <= 256 && BN_num_bits(sig_openssl->s) > 0 && BN_num_bits(sig_openssl->s) <= 256;

ошибка в файле src/secp256k1/src/tests.c

полный лог с русской локалюю

вроде все версии пакетов как в описании к сборке, редми обновлялся 3 месяца назад, так чо считаю его актуальным. Но чо не нравится в этих исходниках? вроде же верно там ссылка на класс делается, или я чото упустил в си? изучал его уже давно, но указание на метод или параметр именно через "->" делается... или там точка должна быть?

п.с. в хедерах openssl вроде все так же указано
typedef struct ECDSA_SIG_st {
    BIGNUM *r;
    BIGNUM *s;
} ECDSA_SIG;

/** Allocates and initialize a ECDSA_SIG structure
 *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
 */
ECDSA_SIG *ECDSA_SIG_new(void);

/** frees a ECDSA_SIG structure
 *  \param  sig  pointer to the ECDSA_SIG structure
 */
void ECDSA_SIG_free(ECDSA_SIG *sig);

/** DER encode content of ECDSA_SIG object (note: this function modifies *pp
 *  (*pp += length of the DER encoded signature)).
 *  \param  sig  pointer to the ECDSA_SIG object
 *  \param  pp   pointer to a unsigned char pointer for the output or NULL
 *  \return the length of the DER encoded ECDSA_SIG object or 0
типа r и s есть ссылки на класс BIGNUM.

★★

Доброго времени, та же ошибка, удалось решить?

Parkle_Sub ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.