Расшифровка контейнера OpenSSL CMS в Go - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть контейнер 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")

Thisэто очень грязный способ и лучше использовать библиотеку.

У кого-нибудь есть идеи, какая библиотека для этого полезна или как я могу ее реализовать?

Спасибо всем вам!

...