我有一个加密base64
文件"PersonalCodes.txt"
和一个私钥"private.key"
。密钥在.pem (---begin private key -- etc.)
并用 加密-gost89
。我需要为此使用 OpenSSL.NET(显然System.Security.Cryptography
不支持.pem
密钥)对于简单的 openssl 客户端,命令将是:
base64 -d -in "PersonalCodes.txt" -out "PersonalCodesOUT.txt"
smime -decrypt -in "PersonalCodesOUT.txt" -inform der -inkey "private.key" -out "DecryptedCodes.txt"
第一个是从 base64 -ok 解密。简单的。下一个是使用 gost89 密钥解密。
至于.NET
- 老实说,我完全感到沮丧。我添加了对 an 的引用openssl wrapper
,并找到了一个如何从文件中获取密钥的示例:
byte[] b = System.IO.File.ReadAllBytes(@"D:\private.key");
OpenSSL.Core.BIO bio = new OpenSSL.Core.BIO(b);
OpenSSL.Crypto.CryptoKey key = OpenSSL.Crypto.CryptoKey.FromPrivateKey(bio, "");
但这给了我一个例外:unsupported private key algorithm
根据谷歌 - 我需要帮助 openssl 看看gost89
我应该如何做到这一点c#
?
此外,任何人都可以帮助我使用最后一个命令 - 用私钥解密openssl.net
吗?泰...
-------------------------------------------------- -----------------------------------------
找到了 gost89 的这个实现: https ://github.com/embedthis/packages/blob/master/openssl/openssl-1.0.1c/engines/ccgost/gost89.c
然而,它也没有提供用密钥解密文件的功能......