我有一个看起来像这样的OpenSSL CMS容器:
-----BEGIN CMS-----
MIIB8wYJKoZIhvcNAQcDoIIB5DCCAeACAQIxggFbMIIBVwIBAoAULnkcmzlVKA2n
...
VHlK2XDa0mvNQBn3dbwKTuENUizo1kg=
-----END CMS-----
可以使用如下所示的私钥来解密此CMS容器:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQItDyAwApAzCkCAggA
...
cZwaM/68l8G0qc4B6EyqgCIF0A==
-----END ENCRYPTED PRIVATE KEY-----
我还可以使用OpenSSL命令行对其进行解密:
openssl cms -decrypt -in cms-container.txt -inkey private-key.pem -inform PEM
现在我将在Go中实现它,但是目前我只有一个主意:通过exec.Command()
:
cmd.Command("openssl", "cms -decrypt -in cms-container.txt -inkey private-key.pem -inform PEM")
这是一种非常肮脏的方式,宁愿使用库。
让任何人知道哪个库对此有用或如何实现?
谢谢大家!