首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Botan:序列化ECDH私钥

Botan:序列化ECDH私钥
EN

Stack Overflow用户
提问于 2016-08-30 10:16:41
回答 1查看 858关注 0票数 1

我创建了一个新的密钥对

代码语言:javascript
复制
  Botan::EC_Group ecgroup("brainpool512r1");
  Botan::ECDH_PrivateKey privKey(CBotanInitEx::RNG(), ecgroup);

(与RSA相比,速度更快!)

尝试使用PKCS#8序列化它,按照这里的建议:https://botan.randombit.net/manual/pubkey.html#serializing-public-keys

代码语言:javascript
复制
  datPubKey  = Botan::X509::BER_encode(privKey);
  txtPubKey  = Botan::X509::PEM_encode(privKey);

  datPrivKey = Botan::PKCS8::BER_encode(privKey, CBotanInitEx::RNG(), pwd);
  txtPrivKey = Botan::PKCS8::PEM_encode(privKey, CBotanInitEx::RNG(), pwd);

我有个例外:

代码语言:javascript
复制
PK algo ECDH has no defined OIDs

尽管僵尸初始化确实通过了这一行:

代码语言:javascript
复制
add_oid(config, "1.3.36.3.3.2.8.1.1.13", "brainpool512r1");

如何序列化ECDH_PrivateKey?

EN

回答 1

Stack Overflow用户

发布于 2016-08-31 08:21:20

RSA --您以前的算法--用于身份验证/签名,因此我在这里假设ECDSA。在这种情况下,您应该使用ECDSA_PrivateKey而不是ECDH_PrivateKey。ECDSA可用于身份验证和签名,ECDH用于密钥协议。

Diffie-Hellman密钥协议通常是在没有静态密钥对的情况下执行的( ECDHE中的E和SSL/TLS加密套件中的DHE代表短暂性)。因此,不应该为密钥协议序列化/存储私钥。

从某种意义上说,您确实需要提前思考,并质疑自己是否需要序列化。如果不需要序列化,则不应该序列化键--特别是私钥。相反,您可以传递对象句柄。

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

https://stackoverflow.com/questions/39224753

复制
相关文章

相似问题

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