我正在尝试使用OpenSSL.net库生成用于加密的公钥/公钥对。我将ManagedOpenSsl.dll添加到引用中,并将libeay32.dll和ssleay32.dll放入我的工作目录中(如所述here)
不幸的是,在运行代码时,我遇到了一个令人讨厌的异常(它构建正常)。我在这做错了什么?
EDIT代码已修改:
public void GetKeys ()
{
using( OpenSSL.Crypto.RSA test = new OpenSSL.Crypto.RSA() )
{
test.GenerateKeys( 1024, 65537, null, null );
string privKey = test.PrivateKeyAsPEM;
string pubKey = test.PublicKeyAsPEM;
MessageBox.Show( privKey, "Private Key" );
MessageBox.Show( pubKey, "Public Key" );
}
}
这是我得到的异常错误" SystemTypeInitializationException"。
答案 0 :(得分:0)
在构建后,输出文件夹中似乎没有libeay32.dll和ssleay32.dll文件。请检查该文件的属性,并确保将“复制到输出目录”标记为“始终复制”。构建过程完成后,文件必须位于x86或x64子文件夹中,具体取决于您所使用的库的版本。