gpt4 book ai didi

c - OpenSSL 中的 ECDH

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:07 26 4
gpt4 key购买 nike

我对 OpenSSL 库中的 ECDH 有疑问。

在文件'ecdhtest.c'的第159行,我们可以确认私钥的值如下:

BN_print(out, a->priv_key);

但是,当我使用 Makefile 构建时发生了错误。

ecdsatest.c:221:22: error: incomplete definition of type 'struct ec_key_st'
BN_print(out, key->priv_key);
~~~^
../include/openssl/evp.h:147:16: note: forward declaration of 'struct ec_key_st'
struct ec_key_st *ec; /* ECC */
^
1 error generated.

我认为 key->priv_key 的类型是 BIGNUM

我想确认私钥的值(value)。

如果你有什么想法,请帮助我。

最佳答案

struct ec_key_st 的定义是故意不透明的。它在 openssl 发行版的 ec_lcl.h 中定义,它不是公共(public)接口(interface)的一部分。在 1.0.1k 版本中,它看起来像这样:

struct ec_key_st {
int version;
EC_GROUP *group;
EC_POINT *pub_key;
BIGNUM *priv_key;
unsigned int enc_flag;
point_conversion_form_t conv_form;
int references;
int flags;
EC_EXTRA_DATA *method_data;
} /* EC_KEY */;

但版本之间可能不稳定。

但是,您可以使用访问函数获取私钥

const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);

这将是做到这一点的干净方法。

关于c - OpenSSL 中的 ECDH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35559715/

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