我曾尝试在 Go 中解密 CMS 文件,但无法这样做。我用来通过 openssl 解密它的命令是openssl cms -decrypt -inform DER -recip X -inkey Y. 这很好用并且文件被正确解密。目前我在 Go 中使用 os/exec 使用相同的命令对其进行解密,但我希望有一些库可以执行相同的功能。但是,我已经能够弄清楚这是如何完成的。
我曾尝试使用 pkcs7 解密,但没有成功,尽管我怀疑这个包是正确的。我目前的尝试:
pkey, _ := ioutil.ReadFile(privKeyLoc)
//decrypt attempt 1
pk_obj, _ := pkcs7.Parse(data)
_, err := pk_obj.DecryptUsingPSK(pkey)
//err = "pkcs7: content data is a decryptable data type"
//attempt 2
rs, _ := ssh.ParseRawPrivateKey(pkey)
crt, _ := tls.LoadX509KeyPair(pubKeyLoc, privKeyLoc)
x509cert, _ := x509.ParseCertificate(crt.Certificate[0])
_, err = pk_obj.Decrypt(x509cert, rs.(crypto.PrivateKey))
//err = "crypto/rsa: decryption error"
慕工程0101907
相关分类