gpt4 book ai didi

c - 头文件 dh.h 中缺少定义(openssl 1.1.0f)

转载 作者:行者123 更新时间:2023-12-02 23:40:05 25 4
gpt4 key购买 nike

出于某种原因,我找不到“struct dh_st”的定义+成员。它应该在 openssl/dh.h 中,但事实并非如此。然而,在openssl的早期版本(openssl-1.0/openssl/dh.h)中,有一个定义(尽管我需要使用1.1.0f)。

相关部分的代码片段:

DH *dh_obj;
// [...]
BIGNUM *temp_p = dh_obj->p; // p is not accessible/visible here!
// [...]

在 gcc 7.1.1 中编译时出现错误消息:

gcc -o dh dh.c -L/usr/lib -lssl -lcrypto && ./dh

dh.c: In function ‘main’: dh.c:57:26: error: dereferencing pointer to incomplete type ‘DH {aka struct dh_st}’ BIGNUM *temp_p = dh_obj->p;

这就是结构的样子(在 openssl-1.0 中!!不是在我当前的版本中,因为没有这样的定义)

struct dh_st {
/*
* This first argument is used to pick up errors when a DH is passed
* instead of a EVP_PKEY
*/
int pad;
int version;
BIGNUM *p;
BIGNUM *g;
long length; /* optional */
BIGNUM *pub_key; /* g^x % p */
BIGNUM *priv_key; /* x */
int flags;
BN_MONT_CTX *method_mont_p;
/* Place holders if we want to do X9.42 DH */
BIGNUM *q;
BIGNUM *j;
unsigned char *seed;
int seedlen;
BIGNUM *counter;
int references;
CRYPTO_EX_DATA ex_data;
const DH_METHOD *meth;
ENGINE *engine;

};

感谢任何帮助!

最佳答案

任何值 p、q、g、priv_key 和 pub_key 也可以通过相应的函数 DH_get0_p()、DH_get0_q()、DH_get0_g()、DH_get0_priv_key() 和 DH_get0_pub_key() 从 DH* 结构中单独检索,分别

原型(prototype):

const BIGNUM *DH_get0_p(const DH *dh);


const BIGNUM *DH_get0_q(const DH *dh);


const BIGNUM *DH_get0_g(const DH *dh);

const BIGNUM *DH_get0_priv_key(const DH *dh);


const BIGNUM *DH_get0_pub_key(const DH *dh);

关于c - 头文件 dh.h 中缺少定义(openssl 1.1.0f),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45416806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com