示例#1
0
    private void TestFile(string fileName, Encoding encoding, bool bom)
    {
      PGPKeyStorage pGPKeyStorage = ApplicationSetting.ToolSetting.PGPInformation;
      var line1 = $"1\tTest\t{fileName}";
      var line2 = $"2\tTest\t{fileName}";
      var line3 = $"3\tTest\t{fileName}";

      FileSystemUtils.FileDelete(fileName);

      var encryptionKey = pGPKeyStorage.GetEncryptionKey("*****@*****.**");

      using (var encryptor = new PgpEncryptedDataGenerator(SymmetricKeyAlgorithmTag.TripleDes, false, new SecureRandom()))
      {
        encryptor.AddMethod(encryptionKey);
        using (encryptedStream = encryptor.Open(new FileStream(fileName, FileMode.Create), new byte[16384]))
        { }

        var compressedStream = new PgpCompressedDataGenerator(CompressionAlgorithmTag.Zip).Open(encryptedStream);
        using (var stream = new PgpLiteralDataGenerator().Open(compressedStream, PgpLiteralDataGenerator.Utf8, "PGPStream", DateTime.Now, new byte[4096]))
        {
          if (bom)
            stream.WriteByteOrderMark(encoding);
          using (var writer2 = new StreamWriter(stream))
          {
            writer2.WriteLine(line1);
            writer2.WriteLine(line2);
            writer2.WriteLine(line3);
            writer2.Flush();
          }
        }
      }
    }