小编典典

如何使用Go编程语言使用从PEM文件读取的RSA私钥进行加密?

go

我该如何等效于以下c ++代码?

RSA *key = PEM_read_RSAPrivateKey(f, NULL, NULL, NULL);
std::vector<CK_BYTE> out(128);
RSA_private_encrypt(in.size(), &in[0], &out[0], key, RSA_PKCS1_PADDING)

我看过Go
rsa软件包
。看起来EncryptPKCS1v15()可能等同于RSA_private_encrypt()。但是除了GenerateKey()之外,我看不到如何创建一个PrivateKey对象,该对象(可以通过查看源代码来确认)使用随机质数生成一个。

我是否需要弄清楚如何解码PEM文件,以便提取出PrivateKey字段的值?

更新: 与上述Python中的C ++代码等效:

from M2Crypto import RSA
rsa_private_key = RSA.load_key('privkey.pem')
encrypted = rsa_private_key.private_encrypt(digest, RSA.pkcs1_padding)

Go中是否存在现有的等效项?


阅读 292

收藏
2020-07-02

共1个答案

小编典典

等效功能似乎是SignPKCS1v15。该功能ParsePKCS1PrivateKey加密/
X509
包似乎是最接近你需要在现有的私有密钥读什么,但我不知道该PEM格式是完全兼容的,它必须是此工作。

2020-07-02