需要C#中的BouncyCastle PGP文件加密示例

Dan*_*ink 6 .net c# bouncycastle pgp

我正在尝试使用我的私钥(ascii格式)和任何其他公钥(也是ascii格式)加密文件.BouncyCastle库看起来是正确的用法,但我找不到C#的文档.有谁可以帮我一个例子.谢谢.

Emm*_*uel 14

这是BouncyCastle示例中的一些代码.您应该获取源代码并查看单元测试,它们包含示例.我发现Java资源也很有用.该示例可以在crypto\test\src\openpgp\examples\PbeFileProcessor.cs下的源代码中找到

private static void EncryptFile(
        Stream  outputStream,
        string  fileName,
        char[]  passPhrase,
        bool    armor,
        bool    withIntegrityCheck)
    {
        if (armor)
        {
            outputStream = new ArmoredOutputStream(outputStream);
        }

        MemoryStream bOut = new MemoryStream();

        PgpCompressedDataGenerator comData = new PgpCompressedDataGenerator(
            CompressionAlgorithmTag.Zip);

        PgpUtilities.WriteFileToLiteralData(
            comData.Open(bOut),
            PgpLiteralData.Binary,
            new FileInfo(fileName));

        comData.Close();

        byte[] bytes = bOut.ToArray();

        PgpEncryptedDataGenerator cPk = new PgpEncryptedDataGenerator(
            SymmetricKeyAlgorithmTag.Cast5, withIntegrityCheck, new SecureRandom());

        cPk.AddMethod(passPhrase);

        Stream cOut = cPk.Open(outputStream, bytes.Length);

        cOut.Write(bytes, 0, bytes.Length);

        cOut.Close();

        if (armor)
        {
            outputStream.Close();
        }
    }
Run Code Online (Sandbox Code Playgroud)