如何从PEM格式的DH密钥中提取DH参数

问题描述 投票:1回答:1

我已经使用某些gp参数生成了Diffie-Hellman密钥,如下所示:

$ cat dhparam.pem
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEAnc5+uXl2K09Nrp1oxN/KbIcIYLg8HXCu9UNW7gFknkHil7OVAKHR
Km0Dc8IjqhJpDfoNKFoDo2Vd0KB9moSkDmhFmidcXO7Q8zSq0Z4BXFTO61OMukdd
dul1ovbleqfH4DcbCjH4LiZGICFUyGseiBakt3e2BORyjSA3IEg4hm9WvdCevWPW
Njc9reFgL6Vua8HkOGkLB+EvRP1YT4v5hGGP/6A7WxRevx5EjF9VgojyDLMPN26C
3c17KY2jNV0W1GEcKEciWS61QInUDBDPYNuQzTl0LucbOpJyV3BFr6pokRBaO3bI
ZYUPhjA2WSxJUeeJboJfisr+CQa9kc1dYwIBAg==
-----END DH PARAMETERS-----
$ openssl genpkey -paramfile dhparam.pem -out dh.pem
$ cat dh.pem
-----BEGIN PRIVATE KEY-----
MIICJgIBADCCARcGCSqGSIb3DQEDATCCAQgCggEBAJ3Ofrl5ditPTa6daMTfymyH
CGC4PB1wrvVDVu4BZJ5B4pezlQCh0SptA3PCI6oSaQ36DShaA6NlXdCgfZqEpA5o
RZonXFzu0PM0qtGeAVxUzutTjLpHXXbpdaL25Xqnx+A3Gwox+C4mRiAhVMhrHogW
pLd3tgTkco0gNyBIOIZvVr3Qnr1j1jY3Pa3hYC+lbmvB5DhpCwfhL0T9WE+L+YRh
j/+gO1sUXr8eRIxfVYKI8gyzDzdugt3NeymNozVdFtRhHChHIlkutUCJ1AwQz2Db
kM05dC7nGzqScldwRa+qaJEQWjt2yGWFD4YwNlksSVHniW6CX4rK/gkGvZHNXWMC
AQIEggEEAoIBAGJBY5qzXPRi62hzho+ebCeZMdVqGQrlc9h/1hmrlzXlna8Mu8WF
0hp/ol8s3AAvuG2w8sMHH/D0kHj2Ptf92khH2WObWAzyybf3IubpVumw6d2KSe1j
LhW0cJum/lbyhyGJNgdNrVlwyNcId2Z53K9TK1BQnb3/gJjM+cRZ1yyoPDTXZpLl
1dmLz3lw+kmowyNXtl/wgzDclR16/w7JSvM+tOFCs4X1ZZF9TbQi7czc0ov101gP
bJjbUaYNOLUQrI/vVEDmCzYIL3PDLV07gQu0FeLHnRChgdjal3xVIsp0oV+2cN7K
/UX4xqCSBXp8ieAoJ+r7zZD44JqhMVF+d5A=
-----END PRIVATE KEY-----

我的理解是,密钥文件dh.pem不仅包括密钥的秘密部分,还包括与其一起生成的非秘密gp parameters,即[C0 ]是dh.pem的超集。

给定[[only dhparam.pem,我想重构dhparam.pem。也就是说,给定DH密钥文件,以PEM格式转储其参数。

似乎dh.pem本身可能不直接支持此功能,但是也许有一些不太糟糕的方法可以使用Shell脚本或其他方法来提取信息? openssl说:

此程序处理DH参数而不是键。BUGS:应该有一种生成和操作DH密钥的方法。

相关:The man page for openssl dhparam —但在这个问题上,它们是以

证书

而不是私钥开头的。 (而且我不知道将我的钥匙变成证书的咒语。)
openssl pem diffie-hellman
1个回答
0
投票
openssl dhparam文件是具有页眉和页脚防护的base64编码的OpenSSL: Display DH Parameters序列化PEM文件。具有正确架构的ASN.1解析器可以对其进行解码。碰巧DER内置了此功能:

ASN.1


0
投票
openssl
© www.soinside.com 2019 - 2024. All rights reserved.