У меня есть контейнер 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это очень грязный способ и лучше использовать библиотеку.
У кого-нибудь есть идеи, какая библиотека для этого полезна или как я могу ее реализовать?
Спасибо всем вам!