2

次の 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() と同等のようです。しかし、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に既存の同等物はありますか?

4

2 に答える 2

2

crypto/rsa ではなく、crypto/tls を探しているのではないかと思います。

ここで何をしようとしているのかは 100% わかりませんが、tls パッケージには PEM ファイルを読み取るための機能がいくつかあります。

于 2010-06-24T14:52:37.720 に答える
1

同等の関数は のようSignPKCS1v15です。crypto/x509パッケージの関数ParsePKCS1PrivateKeyは、既存の秘密鍵で読み取る必要があるものに最も近いように見えますが、PEM 形式が完全に互換性があるかどうかはわかりません。これが機能するために必要です。

于 2010-06-24T23:36:54.200 に答える