private static byte[] LoadFileAndDecrypt(string filePath) { try { if (File.Exists(filePath)) { var cipherBytes = File.ReadAllBytes(filePath); return(DecryptBytes(cipherBytes)); } } catch (Exception ex) { UiMessages.Error($"Decryption error:\n\n{ex}"); } //default return(null); }
public static byte[] DecryptBytes(byte[] cipherBytes, bool dumpTarGz = true) { try { var decryptedBytes = CryptoHandler.Decrypt(cipherBytes, Password); if (dumpTarGz) { File.WriteAllBytes(@"config.tar.gz", decryptedBytes); } return(decryptedBytes); } catch (Exception ex) { UiMessages.Error($"Decryption error:\n\n{ex}"); } //default return(null); }
private static bool IsEncrypted(this byte[] data) { try { //OpenSSL-encrypted files usually include this text prefix before the encrypted buffer const string prefix = @"Salted__"; var prefixLength = prefix.Length; var relevantBytes = new byte[prefixLength]; Buffer.BlockCopy(data, 0, relevantBytes, 0, prefixLength); var prefixData = Encoding.Default.GetString(relevantBytes); return(prefixData == prefix); } catch (Exception ex) { UiMessages.Error($"Determination error:\n\n{ex}"); } //default return(false); }
private static byte[] DecompressGzBytes(byte[] gzBytes) { try { byte[] decompressedBytes; using (var rawStream = new MemoryStream(gzBytes)) { using (var decompressionStream = new GZipStream(rawStream, CompressionMode.Decompress)) { var ms = new MemoryStream(); decompressionStream.CopyTo(ms); decompressedBytes = ms.ToArray(); } } return(decompressedBytes); } catch (Exception ex) { UiMessages.Error($"Decompression failed!\n\n{ex}"); return(null); } }