private void UpdateFolderKey(TreeNode node) { // alleen keys ophalen als het nog niet eerder is gedaan en het op een map op het rootniveau is. if (!node.CheckedForKeys && node.Path.Count(e => e == '/') == 1 && node.Path.Length > 1) { var explorer = new RemoteExplorer(); AesKeyResponse response; if (explorer.GetAesKey(node.Path, out response)) { if (response != null && response.IV != null && response.Key != null) { var encryptedIV = Convert.FromBase64String(response.IV); var encryptedKey = Convert.FromBase64String(response.Key); var box = GetSelectedOrDefaultBox(); node.Key = CryptoHelper.DecryptPgp(encryptedKey, box.PrivateKey, box.PassPhrase); node.IV = CryptoHelper.DecryptPgp(encryptedIV, box.PrivateKey, box.PassPhrase); } node.CheckedForKeys = true; database.Update(node); } } }