使用c#

时间:2017-03-14 12:25:23

标签: c# encryption openssl-net

我有一个加密的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 - 老实说,我完全感到沮丧。我添加了对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中的私钥解密吗? TY ...

----------------------------------------------- --------------------------------

找到了gost89的这个实现: https://github.com/embedthis/packages/blob/master/openssl/openssl-1.0.1c/engines/ccgost/gost89.c

然而,它也没有提供用密钥解密文件的功能......

0 个答案:

没有答案