首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSSL中的ECDH

OpenSSL中的ECDH
EN

Stack Overflow用户
提问于 2016-02-22 17:12:37
回答 1查看 603关注 0票数 1

我在OpenSSL库中有一个关于ECDH的问题。

在159行的文件“ecdhtest.c”中,我们可以确定私钥的值如下:

BN_print(out, a->priv_key);

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

代码语言:javascript
复制
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

我想确认一下私钥的价值。

如果你有什么主意,请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-22 18:35:39

根据意图,struct ec_key_st的定义是不透明的。它是从openssl发行版在ec_lcl.h中定义的,它不是公共接口的一部分。在1.0.1k版本中,如下所示:

代码语言:javascript
复制
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 */;

但从一个版本到另一个版本,它可能并不稳定。

但是,您可以使用访问器函数获得私钥。

代码语言:javascript
复制
const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);

这将是一种干净的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35559715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档