public static async Task <String> GetPasswords(CryptographicKey AesKey) { CryptographicKey k = await GetRasKey(AesKey); String R = ""; try { int a = int.Parse(await StorageInterface.ReadFromRoamingFolder("PWM/INDEX")); for (int i = 0; i < a; i++) { IBuffer crypitic = await StorageInterface.ReadBufferFromRoamingFolder("PWM/Passwords" + i); IBuffer plain = DecryptRsa(k, crypitic); String X = CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, plain); if (X == null) { X = ""; } R += X; } } catch (Exception e) { e.PrintStackTrace(); return(""); } return(R); }
private async Task Logon() { Key = CryptoInterface.GestAesKey(LoginPasswordBox.Password); LoginPasswordBox.Password = ""; IBuffer A = await StorageInterface.ReadBufferFromRoamingFolder("PWM/A"); IBuffer B = await StorageInterface.ReadBufferFromRoamingFolder("PWM/B"); //Debug.WriteLine("Up to here I believe this to be OK"); //Debug.WriteLine(LoginPasswordBox.Password.GetHexString()); //Debug.WriteLine(Key); IBuffer EA = CryptoInterface.EncryptAes(Key, A); //Debug.WriteLine("Now this could be unreachable code"); if (!CryptographicBuffer.Compare(B, EA))//Falsches Passwort, da die testfiles nicht zampassen { Debug.WriteLine("FALSCHES PASSWORT"); await UserInteraction.ShowDialogAsync("INFORMATION", "Falsches Passwort!"); return; } Debug.WriteLine("HAVE DONE SETUP WITH PASSWORD"); MODE_REGULAR.Visibility = MODE_REGULAR_BAR.Visibility = Visibility.Visible; MODE_LOGIN.Visibility = MODE_SETUP.Visibility = Visibility.Collapsed; await Refresh(); }
private static async Task <CryptographicKey> GetRasKey(CryptographicKey AesKey) { return(AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1).ImportKeyPair(DecryptAes(AesKey, await StorageInterface.ReadBufferFromRoamingFolder("PWM/RsaKey")))); }