4 using System.Runtime.CompilerServices;
5 using System.Security.Cryptography;
18 using var aes = Aes.Create();
23 var decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
25 using var memStream =
new MemoryStream(bytes);
26 using var cryptoStream =
new CryptoStream(memStream, decryptor, CryptoStreamMode.Read);
27 using var sReader =
new StreamReader(cryptoStream);
29 return sReader.ReadToEnd();
38 using var aes = Aes.Create();
43 var decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
45 using var memStream =
new MemoryStream(bytes);
46 using var cryptoStream =
new CryptoStream(memStream, decryptor, CryptoStreamMode.Read);
47 using var sReader =
new StreamReader(cryptoStream);
49 return await sReader.ReadToEndAsync();
58 using var aes = Aes.Create();
63 var encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
65 using var memStream =
new MemoryStream();
66 using var cryptoStream =
new CryptoStream(memStream, encryptor, CryptoStreamMode.Write);
67 using var swriter =
new StreamWriter(cryptoStream);
69 swriter.Write(plaintext);
71 return memStream.ToArray();
80 using var aes = Aes.Create();
85 var encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
87 using var memStream =
new MemoryStream();
88 using var cryptoStream =
new CryptoStream(memStream, encryptor, CryptoStreamMode.Write);
89 using var swriter =
new StreamWriter(cryptoStream);
91 await swriter.WriteAsync(plaintext);
93 return memStream.ToArray();
102 using var aes = Aes.Create();
A DatabaseConnector which "connects" to an encrypted JSON file containing all domain and user informa...
async Task< byte[]> EncryptStringAsync(string plaintext)
Asynchronously encrypts a given string.
async Task DumpJsonAsync()
async Task< string > DecryptStringAsync(byte[] bytes)
Asynchronously decrypts a cipher text to a string.
byte[] EncryptString(string plaintext)
Encrypts a string.
string DecryptString(byte[] bytes)
Decrypts a cipher text to a string.
async Task DisposeAsync()
Asynchronously ensures all data is dumped to the JSON before the resources are freed.
static void GenerateNewAesKey(out byte[] key, out byte[] initVector)
Generates a new AES encryption key with init vector.
override void Dispose()
Ensures all data is dumped to the JSON before the resources are freed.