【发布时间】:2017-01-06 13:50:48
【问题描述】:
我使用
创建了一个新的密钥对 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
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);
我得到一个例外:
PK algo ECDH has no defined OIDs
即使植物初始化确实通过了这一行:
add_oid(config, "1.3.36.3.3.2.8.1.1.13", "brainpool512r1");
如何序列化 ECDH_PrivateKey?
【问题讨论】:
-
曲线的OID与键类型的OID不同。为什么您需要序列化 ECDH 密钥?静态 DH 的使用并不多。还是您将其用于 ECDSA(不同的算法,相同的密钥类型)?
-
我想我需要了解一下我实际在做什么——所有的 TLA..FLA 都让我头晕目眩。我来自现有的 RSA 公钥“示例”,其中密钥被序列化以在端点之间进行交换。
标签: c++ cryptography botan