建议和反馈

请填写你的反馈内容

问答 > 密码学 > 问答详情
已解决

如何在Java中原生地读取OpenSSH或OpenSSL私钥?10LK

我想在Java中原生地阅读OpenSSL私钥,而不使用BouncyCastle。

我为此搜索了很多,但我找不到答案。 当你看到一个像这样的键:

-----BEGIN EC PRIVATE KEY-----
...base64 here....
-----END EC PRIVATE KEY-----

那是什么格式的? 它看起来与OpenSSH键的编码相同(我认为)。 它不是 pkcs8 ,虽然OpenSSL允许您使用带有-topk8参数的pkcs8命令将其密钥格式转换为pkcs8 。

我当然不能成为遇到这个问题的唯一人,但尽管进行了广泛的搜索,但我找不到答案。 谢谢!

编辑:没有任何建议的副本谈论使用纯java解决方案(没有openssl)和没有Bouncy城堡。 除非提出了这个确切的问题,否则请不要将其标记为重复。

西方开发商很容易忽视亚洲国家的商业运作方式。 举例来说,中国有一整套EC曲线,这些曲线在OpenSSL和Bouncycastle中是闻所未闻的,用于商业间商业,因此两个工具:OpenSSL和Bouncycastle都是非常旧版本或者不适用于所有。 像“只使用openssl”这样的答案既没有帮助,也没有建设性。


2019-06-12
0
请先登陆或注册

BTC2019-06-12

https://tools.ietf.org/html/rfc5915

  1. 椭圆曲线私钥格式

    本节提供EC私钥的语法。 在计算上,EC私钥是无符号整数,但为了表示,EC私钥信息应具有ASN.1类型ECPrivateKey:

ECPrivateKey ::= SEQUENCE {
 version        INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
 privateKey     OCTET STRING,
 parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
 publicKey  [1] BIT STRING OPTIONAL
}


投一票
评论(0)
赞赏(0)
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励