Need example for BouncyCastle PGP File encryption in C#

前端 未结 1 632
难免孤独
难免孤独 2020-12-29 16:00

I\'m trying to encrypt files using my private key (in ascii format) and any other public key (also in ascii format). The BouncyCastle library looks like the correct thing to

相关标签:
1条回答
  • 2020-12-29 16:19

    Here's some code from the BouncyCastle example. You should grab the source code and look in the unit tests, they contain examples. I've found that Java resources are also useful. The example can be found in the source under 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();
            }
        }
    
    0 讨论(0)
提交回复
热议问题