Как мне сделать эквивалент следующего кода C++ в go?
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(). Но я не вижу, как создать объект PrivateKey, кроме как с помощью GenerateKey(), который (можно подтвердить, просмотрев источник) генерирует его, используя случайные простые числа.
Нужно ли мне выяснять, как декодировать файл PEM, чтобы вытащить значения полей PrivateKey?
Обновление. Эквивалент приведенного выше кода C++ в Python:
from M2Crypto import RSA
rsa_private_key = RSA.load_key('privkey.pem')
encrypted = rsa_private_key.private_encrypt(digest, RSA.pkcs1_padding)
Существует ли эквивалент в Go?