private string EncryptPgpStringData(string inputFile, string publicKeyData, bool armor, bool withIntegrityCheck) { using (Stream publicKeyStream = IoHelper.GetStream(publicKeyData)) { PgpPublicKey pubKey = ReadPublicKey(publicKeyStream); using (MemoryStream outputBytes = new MemoryStream()) { PgpCompressedDataGenerator dataCompressor = new PgpCompressedDataGenerator(CompressionAlgorithmTag.Zip); PgpUtilities.WriteFileToLiteralData(dataCompressor.Open(outputBytes), PgpLiteralData.Binary, new FileInfo(inputFile)); dataCompressor.Close(); PgpEncryptedDataGenerator dataGenerator = new PgpEncryptedDataGenerator(SymmetricKeyAlgorithmTag.Cast5, withIntegrityCheck, new SecureRandom()); dataGenerator.AddMethod(pubKey); byte[] dataBytes = outputBytes.ToArray(); using (Stream outputStream = File.Create(TempEncryptedPath)) { if (armor) { using (ArmoredOutputStream armoredStream = new ArmoredOutputStream(outputStream)) { IoHelper.WriteStream(dataGenerator.Open(armoredStream, dataBytes.Length), ref dataBytes); } } else { IoHelper.WriteStream(dataGenerator.Open(outputStream, dataBytes.Length), ref dataBytes); } } return(File.ReadAllText(TempEncryptedPath)); } } }
private string DecryptPgpData(string inputData) { string output; using (Stream inputStream = IoHelper.GetStream(inputData)) { using (Stream keyIn = IoHelper.GetStream(PrivateKeyData)) { output = DecryptPgpData(inputStream, keyIn, Password); } } return(output); }