Пример #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();
          }
        }
      }
    }
Пример #2
0
        public void CopyToTest()
        {
            var key2 = new PGPKeyStorage();

            m_PGPKeyStorage.CopyTo(key2);
            Assert.IsTrue(key2.Equals(m_PGPKeyStorage));
        }
Пример #3
0
        public static void SetApplicationSetting()
        {
            PGPKeyStorage pGPKeyStorage = ApplicationSetting.ToolSetting.PGPInformation;

            pGPKeyStorage.EncryptedPassphase = "UGotMe".Encrypt();
            pGPKeyStorage.AddPrivateKey(PRIVATE);
            pGPKeyStorage.AddPublicKey(PUBLIC);
        }
Пример #4
0
        public void EqualsTest()
        {
            var key2 = new PGPKeyStorage();

            Assert.IsTrue(m_PGPKeyStorage.Equals(m_PGPKeyStorage));
            Assert.IsFalse(m_PGPKeyStorage.Equals(null));
            key2.EncryptedPassphase = m_PGPKeyStorage.EncryptedPassphase;
            Assert.IsFalse(key2.Equals(m_PGPKeyStorage));
            Assert.IsFalse(m_PGPKeyStorage.Equals("Test"));
        }
Пример #5
0
        public void IsValidKeyRingBundleTest()
        {
            Assert.IsFalse(PGPKeyStorage.IsValidKeyRingBundle("Hello Test", true, out _));
            Assert.IsFalse(PGPKeyStorage.IsValidKeyRingBundle("", false, out _));

            Assert.IsTrue(PGPKeyStorage.IsValidKeyRingBundle(@"-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v2

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
=Bz2c
-----END PGP PRIVATE KEY BLOCK-----", true, out _));

            Assert.IsTrue(PGPKeyStorage.IsValidKeyRingBundle(@"-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

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
0l3kIPkMvSVx+8lp3UqCnS5etOA=
=g7cd
-----END PGP PUBLIC KEY BLOCK-----", false, out _));
        }